From f7a2aec6509634d69663fb3f6dd74aca38d3f392 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sun, 15 Aug 2021 05:57:16 -0700 Subject: tools: update markdown lint dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/39770 Reviewed-By: Tobias Nießen Reviewed-By: James M Snell Reviewed-By: Antoine du Hamel --- tools/lint-md.js | 48809 +++++++++++++--------- tools/node-lint-md-cli-rollup/package-lock.json | 11569 ++--- tools/node-lint-md-cli-rollup/package.json | 9 +- 3 files changed, 31651 insertions(+), 28736 deletions(-) diff --git a/tools/lint-md.js b/tools/lint-md.js index 23c4c03954..44e2149d10 100644 --- a/tools/lint-md.js +++ b/tools/lint-md.js @@ -3,33 +3,76 @@ // Don't change this file manually, // it is generated from tools/node-lint-md-cli-rollup -var require$$0$3 = require('stream'); -var path$2 = require('path'); -var Module = require('module'); -var util$2 = require('util'); -var os = require('os'); -var tty = require('tty'); -var fs$1 = require('fs'); -var events = require('events'); -var assert = require('assert'); +var require$$0$a = require('stream'); +var require$$0$7 = require('path'); +var require$$0$5 = require('util'); +var require$$0$6 = require('os'); +var require$$1 = require('tty'); +var require$$0$8 = require('fs'); +var require$$1$1 = require('module'); +var require$$0$9 = require('events'); +var require$$6$1 = require('assert'); var url = require('url'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } -var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$3); -var path__default = /*#__PURE__*/_interopDefaultLegacy(path$2); -var Module__default = /*#__PURE__*/_interopDefaultLegacy(Module); -var util__default = /*#__PURE__*/_interopDefaultLegacy(util$2); -var os__default = /*#__PURE__*/_interopDefaultLegacy(os); -var tty__default = /*#__PURE__*/_interopDefaultLegacy(tty); -var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$1); -var events__default = /*#__PURE__*/_interopDefaultLegacy(events); -var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); +function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { + return e[k]; + } + }); + } + }); + } + n['default'] = e; + return Object.freeze(n); +} + +var require$$0__default$5 = /*#__PURE__*/_interopDefaultLegacy(require$$0$a); +var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$7); +var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$5); +var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$6); +var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1); +var require$$0__default$3 = /*#__PURE__*/_interopDefaultLegacy(require$$0$8); +var require$$1__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$1$1); +var require$$0__default$4 = /*#__PURE__*/_interopDefaultLegacy(require$$0$9); +var require$$6__default = /*#__PURE__*/_interopDefaultLegacy(require$$6$1); + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function getAugmentedNamespace(n) { + if (n.__esModule) return n; + var a = Object.defineProperty({}, '__esModule', {value: true}); + Object.keys(n).forEach(function (k) { + var d = Object.getOwnPropertyDescriptor(n, k); + Object.defineProperty(a, k, d.get ? d : { + enumerable: true, + get: function () { + return n[k]; + } + }); + }); + return a; +} + +function commonjsRequire (path) { + throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); +} + +var cliEntry = {}; -var vfileStatistics = statistics; +var vfileStatistics = statistics$2; // Get stats for a file, list of files, or list of messages. -function statistics(files) { +function statistics$2(files) { var result = {true: 0, false: 0, null: 0}; count(files); @@ -75,20 +118,20 @@ function statistics(files) { } } -var slice = [].slice; +var slice$6 = [].slice; -var wrap_1 = wrap; +var wrap_1$1 = wrap$5; // Wrap `fn`. // Can be sync or async; return a promise, receive a completion handler, return // new values and errors. -function wrap(fn, callback) { +function wrap$5(fn, callback) { var invoked; return wrapped function wrapped() { - var params = slice.call(arguments, 0); + var params = slice$6.call(arguments, 0); var callback = fn.length > params.length; var result; @@ -138,14 +181,16 @@ function wrap(fn, callback) { } } -var trough_1 = trough; +var wrap$4 = wrap_1$1; -trough.wrap = wrap_1; +var trough_1$1 = trough$5; -var slice$1 = [].slice; +trough$5.wrap = wrap$4; + +var slice$5 = [].slice; // Create new middleware. -function trough() { +function trough$5() { var fns = []; var middleware = {}; @@ -157,7 +202,7 @@ function trough() { // Run `fns`. Last argument must be a completion handler. function run() { var index = -1; - var input = slice$1.call(arguments, 0, -1); + var input = slice$5.call(arguments, 0, -1); var done = arguments[arguments.length - 1]; if (typeof done !== 'function') { @@ -169,7 +214,7 @@ function trough() { // Run the next `fn`, if any. function next(err) { var fn = fns[++index]; - var params = slice$1.call(arguments, 0); + var params = slice$5.call(arguments, 0); var values = params.slice(1); var length = input.length; var pos = -1; @@ -190,7 +235,7 @@ function trough() { // Next or done. if (fn) { - wrap_1(fn, next).apply(null, input); + wrap$4(fn, next).apply(null, input); } else { done.apply(null, [null].concat(input)); } @@ -209,51 +254,31 @@ function trough() { } } -var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; +var jsYaml$2 = {}; -function getAugmentedNamespace(n) { - if (n.__esModule) return n; - var a = Object.defineProperty({}, '__esModule', {value: true}); - Object.keys(n).forEach(function (k) { - var d = Object.getOwnPropertyDescriptor(n, k); - Object.defineProperty(a, k, d.get ? d : { - enumerable: true, - get: function () { - return n[k]; - } - }); - }); - return a; -} +var loader$2 = {}; -function createCommonjsModule(fn) { - var module = { exports: {} }; - return fn(module, module.exports), module.exports; -} - -function commonjsRequire (target) { - throw new Error('Could not dynamically require "' + target + '". Please configure the dynamicRequireTargets option of @rollup/plugin-commonjs appropriately for this require call to behave properly.'); -} +var common$b = {}; -function isNothing(subject) { +function isNothing$1(subject) { return (typeof subject === 'undefined') || (subject === null); } -function isObject(subject) { +function isObject$4(subject) { return (typeof subject === 'object') && (subject !== null); } -function toArray(sequence) { +function toArray$1(sequence) { if (Array.isArray(sequence)) return sequence; - else if (isNothing(sequence)) return []; + else if (isNothing$1(sequence)) return []; return [ sequence ]; } -function extend(target, source) { +function extend$4(target, source) { var index, length, key, sourceKeys; if (source) { @@ -269,7 +294,7 @@ function extend(target, source) { } -function repeat(string, count) { +function repeat$8(string, count) { var result = '', cycle; for (cycle = 0; cycle < count; cycle += 1) { @@ -280,30 +305,19 @@ function repeat(string, count) { } -function isNegativeZero(number) { +function isNegativeZero$1(number) { return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); } -var isNothing_1 = isNothing; -var isObject_1 = isObject; -var toArray_1 = toArray; -var repeat_1 = repeat; -var isNegativeZero_1 = isNegativeZero; -var extend_1 = extend; +common$b.isNothing = isNothing$1; +common$b.isObject = isObject$4; +common$b.toArray = toArray$1; +common$b.repeat = repeat$8; +common$b.isNegativeZero = isNegativeZero$1; +common$b.extend = extend$4; -var common = { - isNothing: isNothing_1, - isObject: isObject_1, - toArray: toArray_1, - repeat: repeat_1, - isNegativeZero: isNegativeZero_1, - extend: extend_1 -}; - -// YAML error class. http://stackoverflow.com/questions/8458984 - -function YAMLException(reason, mark) { +function YAMLException$6(reason, mark) { // Super constructor Error.call(this); @@ -324,11 +338,11 @@ function YAMLException(reason, mark) { // Inherit from Error -YAMLException.prototype = Object.create(Error.prototype); -YAMLException.prototype.constructor = YAMLException; +YAMLException$6.prototype = Object.create(Error.prototype); +YAMLException$6.prototype.constructor = YAMLException$6; -YAMLException.prototype.toString = function toString(compact) { +YAMLException$6.prototype.toString = function toString(compact) { var result = this.name + ': '; result += this.reason || '(unknown reason)'; @@ -341,9 +355,12 @@ YAMLException.prototype.toString = function toString(compact) { }; -var exception = YAMLException; +var exception$1 = YAMLException$6; + +var common$a = common$b; -function Mark(name, buffer, position, line, column) { + +function Mark$1(name, buffer, position, line, column) { this.name = name; this.buffer = buffer; this.position = position; @@ -352,7 +369,7 @@ function Mark(name, buffer, position, line, column) { } -Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { +Mark$1.prototype.getSnippet = function getSnippet(indent, maxLength) { var head, start, tail, end, snippet; if (!this.buffer) return null; @@ -386,12 +403,12 @@ Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { snippet = this.buffer.slice(start, end); - return common.repeat(' ', indent) + head + snippet + tail + '\n' + - common.repeat(' ', indent + this.position - start + head.length) + '^'; + return common$a.repeat(' ', indent) + head + snippet + tail + '\n' + + common$a.repeat(' ', indent + this.position - start + head.length) + '^'; }; -Mark.prototype.toString = function toString(compact) { +Mark$1.prototype.toString = function toString(compact) { var snippet, where = ''; if (this.name) { @@ -412,9 +429,11 @@ Mark.prototype.toString = function toString(compact) { }; -var mark = Mark; +var mark$1 = Mark$1; -var TYPE_CONSTRUCTOR_OPTIONS = [ +var YAMLException$5 = exception$1; + +var TYPE_CONSTRUCTOR_OPTIONS$1 = [ 'kind', 'resolve', 'construct', @@ -425,13 +444,13 @@ var TYPE_CONSTRUCTOR_OPTIONS = [ 'styleAliases' ]; -var YAML_NODE_KINDS = [ +var YAML_NODE_KINDS$1 = [ 'scalar', 'sequence', 'mapping' ]; -function compileStyleAliases(map) { +function compileStyleAliases$1(map) { var result = {}; if (map !== null) { @@ -445,12 +464,12 @@ function compileStyleAliases(map) { return result; } -function Type(tag, options) { +function Type$j(tag, options) { options = options || {}; Object.keys(options).forEach(function (name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + if (TYPE_CONSTRUCTOR_OPTIONS$1.indexOf(name) === -1) { + throw new YAMLException$5('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); } }); @@ -463,27 +482,27 @@ function Type(tag, options) { this.predicate = options['predicate'] || null; this.represent = options['represent'] || null; this.defaultStyle = options['defaultStyle'] || null; - this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + this.styleAliases = compileStyleAliases$1(options['styleAliases'] || null); - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + if (YAML_NODE_KINDS$1.indexOf(this.kind) === -1) { + throw new YAMLException$5('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); } } -var type = Type; +var type$1 = Type$j; /*eslint-disable max-len*/ +var common$9 = common$b; +var YAMLException$4 = exception$1; +var Type$i = type$1; - - - -function compileList(schema, name, result) { +function compileList$1(schema, name, result) { var exclude = []; schema.include.forEach(function (includedSchema) { - result = compileList(includedSchema, name, result); + result = compileList$1(includedSchema, name, result); }); schema[name].forEach(function (currentType) { @@ -502,7 +521,7 @@ function compileList(schema, name, result) { } -function compileMap(/* lists... */) { +function compileMap$1(/* lists... */) { var result = { scalar: {}, sequence: {}, @@ -521,32 +540,32 @@ function compileMap(/* lists... */) { } -function Schema(definition) { +function Schema$7(definition) { this.include = definition.include || []; this.implicit = definition.implicit || []; this.explicit = definition.explicit || []; this.implicit.forEach(function (type) { if (type.loadKind && type.loadKind !== 'scalar') { - throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + throw new YAMLException$4('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); } }); - this.compiledImplicit = compileList(this, 'implicit', []); - this.compiledExplicit = compileList(this, 'explicit', []); - this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); + this.compiledImplicit = compileList$1(this, 'implicit', []); + this.compiledExplicit = compileList$1(this, 'explicit', []); + this.compiledTypeMap = compileMap$1(this.compiledImplicit, this.compiledExplicit); } -Schema.DEFAULT = null; +Schema$7.DEFAULT = null; -Schema.create = function createSchema() { +Schema$7.create = function createSchema() { var schemas, types; switch (arguments.length) { case 1: - schemas = Schema.DEFAULT; + schemas = Schema$7.DEFAULT; types = arguments[0]; break; @@ -556,53 +575,64 @@ Schema.create = function createSchema() { break; default: - throw new exception('Wrong number of arguments for Schema.create function'); + throw new YAMLException$4('Wrong number of arguments for Schema.create function'); } - schemas = common.toArray(schemas); - types = common.toArray(types); + schemas = common$9.toArray(schemas); + types = common$9.toArray(types); - if (!schemas.every(function (schema) { return schema instanceof Schema; })) { - throw new exception('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); + if (!schemas.every(function (schema) { return schema instanceof Schema$7; })) { + throw new YAMLException$4('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); } - if (!types.every(function (type$1) { return type$1 instanceof type; })) { - throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + if (!types.every(function (type) { return type instanceof Type$i; })) { + throw new YAMLException$4('Specified list of YAML types (or a single Type object) contains a non-Type object.'); } - return new Schema({ + return new Schema$7({ include: schemas, explicit: types }); }; -var schema = Schema; +var schema$2 = Schema$7; -var str = new type('tag:yaml.org,2002:str', { +var Type$h = type$1; + +var str$1 = new Type$h('tag:yaml.org,2002:str', { kind: 'scalar', construct: function (data) { return data !== null ? data : ''; } }); -var seq = new type('tag:yaml.org,2002:seq', { +var Type$g = type$1; + +var seq$1 = new Type$g('tag:yaml.org,2002:seq', { kind: 'sequence', construct: function (data) { return data !== null ? data : []; } }); -var map = new type('tag:yaml.org,2002:map', { +var Type$f = type$1; + +var map$7 = new Type$f('tag:yaml.org,2002:map', { kind: 'mapping', construct: function (data) { return data !== null ? data : {}; } }); -var failsafe = new schema({ +var Schema$6 = schema$2; + + +var failsafe$1 = new Schema$6({ explicit: [ - str, - seq, - map + str$1, + seq$1, + map$7 ] }); -function resolveYamlNull(data) { +var Type$e = type$1; + +function resolveYamlNull$1(data) { if (data === null) return true; var max = data.length; @@ -611,19 +641,19 @@ function resolveYamlNull(data) { (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); } -function constructYamlNull() { +function constructYamlNull$1() { return null; } -function isNull(object) { +function isNull$1(object) { return object === null; } -var _null = new type('tag:yaml.org,2002:null', { +var _null$1 = new Type$e('tag:yaml.org,2002:null', { kind: 'scalar', - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, + resolve: resolveYamlNull$1, + construct: constructYamlNull$1, + predicate: isNull$1, represent: { canonical: function () { return '~'; }, lowercase: function () { return 'null'; }, @@ -633,7 +663,9 @@ var _null = new type('tag:yaml.org,2002:null', { defaultStyle: 'lowercase' }); -function resolveYamlBoolean(data) { +var Type$d = type$1; + +function resolveYamlBoolean$1(data) { if (data === null) return false; var max = data.length; @@ -642,21 +674,21 @@ function resolveYamlBoolean(data) { (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); } -function constructYamlBoolean(data) { +function constructYamlBoolean$1(data) { return data === 'true' || data === 'True' || data === 'TRUE'; } -function isBoolean(object) { +function isBoolean$1(object) { return Object.prototype.toString.call(object) === '[object Boolean]'; } -var bool = new type('tag:yaml.org,2002:bool', { +var bool$1 = new Type$d('tag:yaml.org,2002:bool', { kind: 'scalar', - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, + resolve: resolveYamlBoolean$1, + construct: constructYamlBoolean$1, + predicate: isBoolean$1, represent: { lowercase: function (object) { return object ? 'true' : 'false'; }, uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, @@ -665,21 +697,24 @@ var bool = new type('tag:yaml.org,2002:bool', { defaultStyle: 'lowercase' }); -function isHexCode(c) { +var common$8 = common$b; +var Type$c = type$1; + +function isHexCode$1(c) { return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || ((0x61/* a */ <= c) && (c <= 0x66/* f */)); } -function isOctCode(c) { +function isOctCode$1(c) { return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); } -function isDecCode(c) { +function isDecCode$1(c) { return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); } -function resolveYamlInteger(data) { +function resolveYamlInteger$1(data) { if (data === null) return false; var max = data.length, @@ -724,7 +759,7 @@ function resolveYamlInteger(data) { for (; index < max; index++) { ch = data[index]; if (ch === '_') continue; - if (!isHexCode(data.charCodeAt(index))) return false; + if (!isHexCode$1(data.charCodeAt(index))) return false; hasDigits = true; } return hasDigits && ch !== '_'; @@ -734,7 +769,7 @@ function resolveYamlInteger(data) { for (; index < max; index++) { ch = data[index]; if (ch === '_') continue; - if (!isOctCode(data.charCodeAt(index))) return false; + if (!isOctCode$1(data.charCodeAt(index))) return false; hasDigits = true; } return hasDigits && ch !== '_'; @@ -749,7 +784,7 @@ function resolveYamlInteger(data) { ch = data[index]; if (ch === '_') continue; if (ch === ':') break; - if (!isDecCode(data.charCodeAt(index))) { + if (!isDecCode$1(data.charCodeAt(index))) { return false; } hasDigits = true; @@ -765,7 +800,7 @@ function resolveYamlInteger(data) { return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); } -function constructYamlInteger(data) { +function constructYamlInteger$1(data) { var value = data, sign = 1, ch, base, digits = []; if (value.indexOf('_') !== -1) { @@ -808,16 +843,16 @@ function constructYamlInteger(data) { return sign * parseInt(value, 10); } -function isInteger(object) { +function isInteger$1(object) { return (Object.prototype.toString.call(object)) === '[object Number]' && - (object % 1 === 0 && !common.isNegativeZero(object)); + (object % 1 === 0 && !common$8.isNegativeZero(object)); } -var int = new type('tag:yaml.org,2002:int', { +var int$4 = new Type$c('tag:yaml.org,2002:int', { kind: 'scalar', - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, + resolve: resolveYamlInteger$1, + construct: constructYamlInteger$1, + predicate: isInteger$1, represent: { binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); }, @@ -834,7 +869,10 @@ var int = new type('tag:yaml.org,2002:int', { } }); -var YAML_FLOAT_PATTERN = new RegExp( +var common$7 = common$b; +var Type$b = type$1; + +var YAML_FLOAT_PATTERN$1 = new RegExp( // 2.5e4, 2.5 and integers '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + // .2e4, .2 @@ -847,10 +885,10 @@ var YAML_FLOAT_PATTERN = new RegExp( // .nan '|\\.(?:nan|NaN|NAN))$'); -function resolveYamlFloat(data) { +function resolveYamlFloat$1(data) { if (data === null) return false; - if (!YAML_FLOAT_PATTERN.test(data) || + if (!YAML_FLOAT_PATTERN$1.test(data) || // Quick hack to not allow integers end with `_` // Probably should update regexp & check speed data[data.length - 1] === '_') { @@ -860,7 +898,7 @@ function resolveYamlFloat(data) { return true; } -function constructYamlFloat(data) { +function constructYamlFloat$1(data) { var value, sign, base, digits; value = data.replace(/_/g, '').toLowerCase(); @@ -897,9 +935,9 @@ function constructYamlFloat(data) { } -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; +var SCIENTIFIC_WITHOUT_DOT$1 = /^[-+]?[0-9]+e/; -function representYamlFloat(object, style) { +function representYamlFloat$1(object, style) { var res; if (isNaN(object)) { @@ -920,7 +958,7 @@ function representYamlFloat(object, style) { case 'uppercase': return '-.INF'; case 'camelcase': return '-.Inf'; } - } else if (common.isNegativeZero(object)) { + } else if (common$7.isNegativeZero(object)) { return '-0.0'; } @@ -929,47 +967,55 @@ function representYamlFloat(object, style) { // JS stringifier can build scientific format without dots: 5e-100, // while YAML requres dot: 5.e-100. Fix it with simple hack - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; + return SCIENTIFIC_WITHOUT_DOT$1.test(res) ? res.replace('e', '.e') : res; } -function isFloat(object) { +function isFloat$1(object) { return (Object.prototype.toString.call(object) === '[object Number]') && - (object % 1 !== 0 || common.isNegativeZero(object)); + (object % 1 !== 0 || common$7.isNegativeZero(object)); } -var float = new type('tag:yaml.org,2002:float', { +var float$1 = new Type$b('tag:yaml.org,2002:float', { kind: 'scalar', - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, + resolve: resolveYamlFloat$1, + construct: constructYamlFloat$1, + predicate: isFloat$1, + represent: representYamlFloat$1, defaultStyle: 'lowercase' }); -var json = new schema({ +var Schema$5 = schema$2; + + +var json$3 = new Schema$5({ include: [ - failsafe + failsafe$1 ], implicit: [ - _null, - bool, - int, - float + _null$1, + bool$1, + int$4, + float$1 ] }); -var core = new schema({ +var Schema$4 = schema$2; + + +var core$4 = new Schema$4({ include: [ - json + json$3 ] }); -var YAML_DATE_REGEXP = new RegExp( +var Type$a = type$1; + +var YAML_DATE_REGEXP$1 = new RegExp( '^([0-9][0-9][0-9][0-9])' + // [1] year '-([0-9][0-9])' + // [2] month '-([0-9][0-9])$'); // [3] day -var YAML_TIMESTAMP_REGEXP = new RegExp( +var YAML_TIMESTAMP_REGEXP$1 = new RegExp( '^([0-9][0-9][0-9][0-9])' + // [1] year '-([0-9][0-9]?)' + // [2] month '-([0-9][0-9]?)' + // [3] day @@ -981,19 +1027,19 @@ var YAML_TIMESTAMP_REGEXP = new RegExp( '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour '(?::([0-9][0-9]))?))?$'); // [11] tz_minute -function resolveYamlTimestamp(data) { +function resolveYamlTimestamp$1(data) { if (data === null) return false; - if (YAML_DATE_REGEXP.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; + if (YAML_DATE_REGEXP$1.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP$1.exec(data) !== null) return true; return false; } -function constructYamlTimestamp(data) { +function constructYamlTimestamp$1(data) { var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; - match = YAML_DATE_REGEXP.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + match = YAML_DATE_REGEXP$1.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP$1.exec(data); if (match === null) throw new Error('Date resolve error'); @@ -1037,25 +1083,27 @@ function constructYamlTimestamp(data) { return date; } -function representYamlTimestamp(object /*, style*/) { +function representYamlTimestamp$1(object /*, style*/) { return object.toISOString(); } -var timestamp = new type('tag:yaml.org,2002:timestamp', { +var timestamp$1 = new Type$a('tag:yaml.org,2002:timestamp', { kind: 'scalar', - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, + resolve: resolveYamlTimestamp$1, + construct: constructYamlTimestamp$1, instanceOf: Date, - represent: representYamlTimestamp + represent: representYamlTimestamp$1 }); -function resolveYamlMerge(data) { +var Type$9 = type$1; + +function resolveYamlMerge$1(data) { return data === '<<' || data === null; } -var merge = new type('tag:yaml.org,2002:merge', { +var merge$2 = new Type$9('tag:yaml.org,2002:merge', { kind: 'scalar', - resolve: resolveYamlMerge + resolve: resolveYamlMerge$1 }); /*eslint-disable no-bitwise*/ @@ -1064,21 +1112,21 @@ var NodeBuffer; try { // A trick for browserified version, to not include `Buffer` shim - var _require = commonjsRequire; - NodeBuffer = _require('buffer').Buffer; + var _require$1 = commonjsRequire; + NodeBuffer = _require$1('buffer').Buffer; } catch (__) {} - +var Type$8 = type$1; // [ 64, 65, 66 ] -> [ padding, CR, LF ] -var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; +var BASE64_MAP$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; -function resolveYamlBinary(data) { +function resolveYamlBinary$1(data) { if (data === null) return false; - var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP$1; // Convert one by one. for (idx = 0; idx < max; idx++) { @@ -1097,11 +1145,11 @@ function resolveYamlBinary(data) { return (bitlen % 8) === 0; } -function constructYamlBinary(data) { +function constructYamlBinary$1(data) { var idx, tailbits, input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan max = input.length, - map = BASE64_MAP, + map = BASE64_MAP$1, bits = 0, result = []; @@ -1141,10 +1189,10 @@ function constructYamlBinary(data) { return result; } -function representYamlBinary(object /*, style*/) { +function representYamlBinary$1(object /*, style*/) { var result = '', bits = 0, idx, tail, max = object.length, - map = BASE64_MAP; + map = BASE64_MAP$1; // Convert every three bytes to 4 ASCII characters. @@ -1183,22 +1231,24 @@ function representYamlBinary(object /*, style*/) { return result; } -function isBinary(object) { +function isBinary$1(object) { return NodeBuffer && NodeBuffer.isBuffer(object); } -var binary = new type('tag:yaml.org,2002:binary', { +var binary$1 = new Type$8('tag:yaml.org,2002:binary', { kind: 'scalar', - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary + resolve: resolveYamlBinary$1, + construct: constructYamlBinary$1, + predicate: isBinary$1, + represent: representYamlBinary$1 }); -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var _toString = Object.prototype.toString; +var Type$7 = type$1; -function resolveYamlOmap(data) { +var _hasOwnProperty$7 = Object.prototype.hasOwnProperty; +var _toString$5 = Object.prototype.toString; + +function resolveYamlOmap$1(data) { if (data === null) return true; var objectKeys = [], index, length, pair, pairKey, pairHasKey, @@ -1208,10 +1258,10 @@ function resolveYamlOmap(data) { pair = object[index]; pairHasKey = false; - if (_toString.call(pair) !== '[object Object]') return false; + if (_toString$5.call(pair) !== '[object Object]') return false; for (pairKey in pair) { - if (_hasOwnProperty.call(pair, pairKey)) { + if (_hasOwnProperty$7.call(pair, pairKey)) { if (!pairHasKey) pairHasKey = true; else return false; } @@ -1226,19 +1276,21 @@ function resolveYamlOmap(data) { return true; } -function constructYamlOmap(data) { +function constructYamlOmap$1(data) { return data !== null ? data : []; } -var omap = new type('tag:yaml.org,2002:omap', { +var omap$1 = new Type$7('tag:yaml.org,2002:omap', { kind: 'sequence', - resolve: resolveYamlOmap, - construct: constructYamlOmap + resolve: resolveYamlOmap$1, + construct: constructYamlOmap$1 }); -var _toString$1 = Object.prototype.toString; +var Type$6 = type$1; -function resolveYamlPairs(data) { +var _toString$4 = Object.prototype.toString; + +function resolveYamlPairs$1(data) { if (data === null) return true; var index, length, pair, keys, result, @@ -1249,7 +1301,7 @@ function resolveYamlPairs(data) { for (index = 0, length = object.length; index < length; index += 1) { pair = object[index]; - if (_toString$1.call(pair) !== '[object Object]') return false; + if (_toString$4.call(pair) !== '[object Object]') return false; keys = Object.keys(pair); @@ -1261,7 +1313,7 @@ function resolveYamlPairs(data) { return true; } -function constructYamlPairs(data) { +function constructYamlPairs$1(data) { if (data === null) return []; var index, length, pair, keys, result, @@ -1280,21 +1332,23 @@ function constructYamlPairs(data) { return result; } -var pairs = new type('tag:yaml.org,2002:pairs', { +var pairs$1 = new Type$6('tag:yaml.org,2002:pairs', { kind: 'sequence', - resolve: resolveYamlPairs, - construct: constructYamlPairs + resolve: resolveYamlPairs$1, + construct: constructYamlPairs$1 }); -var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; +var Type$5 = type$1; -function resolveYamlSet(data) { +var _hasOwnProperty$6 = Object.prototype.hasOwnProperty; + +function resolveYamlSet$1(data) { if (data === null) return true; var key, object = data; for (key in object) { - if (_hasOwnProperty$1.call(object, key)) { + if (_hasOwnProperty$6.call(object, key)) { if (object[key] !== null) return false; } } @@ -1302,32 +1356,37 @@ function resolveYamlSet(data) { return true; } -function constructYamlSet(data) { +function constructYamlSet$1(data) { return data !== null ? data : {}; } -var set = new type('tag:yaml.org,2002:set', { +var set$1 = new Type$5('tag:yaml.org,2002:set', { kind: 'mapping', - resolve: resolveYamlSet, - construct: constructYamlSet + resolve: resolveYamlSet$1, + construct: constructYamlSet$1 }); -var default_safe = new schema({ +var Schema$3 = schema$2; + + +var default_safe = new Schema$3({ include: [ - core + core$4 ], implicit: [ - timestamp, - merge + timestamp$1, + merge$2 ], explicit: [ - binary, - omap, - pairs, - set + binary$1, + omap$1, + pairs$1, + set$1 ] }); +var Type$4 = type$1; + function resolveJavascriptUndefined() { return true; } @@ -1345,7 +1404,7 @@ function isUndefined(object) { return typeof object === 'undefined'; } -var _undefined = new type('tag:yaml.org,2002:js/undefined', { +var _undefined = new Type$4('tag:yaml.org,2002:js/undefined', { kind: 'scalar', resolve: resolveJavascriptUndefined, construct: constructJavascriptUndefined, @@ -1353,6 +1412,8 @@ var _undefined = new type('tag:yaml.org,2002:js/undefined', { represent: representJavascriptUndefined }); +var Type$3 = type$1; + function resolveJavascriptRegExp(data) { if (data === null) return false; if (data.length === 0) return false; @@ -1402,7 +1463,7 @@ function isRegExp(object) { return Object.prototype.toString.call(object) === '[object RegExp]'; } -var regexp = new type('tag:yaml.org,2002:js/regexp', { +var regexp = new Type$3('tag:yaml.org,2002:js/regexp', { kind: 'scalar', resolve: resolveJavascriptRegExp, construct: constructJavascriptRegExp, @@ -1421,15 +1482,15 @@ var esprima; // try { // workaround to exclude package from browserify list. - var _require$1 = commonjsRequire; - esprima = _require$1('esprima'); + var _require = commonjsRequire; + esprima = _require('esprima'); } catch (_) { /* eslint-disable no-redeclare */ /* global window */ if (typeof window !== 'undefined') esprima = window.esprima; } - +var Type$2 = type$1; function resolveJavascriptFunction(data) { if (data === null) return false; @@ -1494,7 +1555,7 @@ function isFunction(object) { return Object.prototype.toString.call(object) === '[object Function]'; } -var _function = new type('tag:yaml.org,2002:js/function', { +var _function = new Type$2('tag:yaml.org,2002:js/function', { kind: 'scalar', resolve: resolveJavascriptFunction, construct: constructJavascriptFunction, @@ -1502,7 +1563,10 @@ var _function = new type('tag:yaml.org,2002:js/function', { represent: representJavascriptFunction }); -var default_full = schema.DEFAULT = new schema({ +var Schema$2 = schema$2; + + +var default_full = Schema$2.DEFAULT = new Schema$2({ include: [ default_safe ], @@ -1515,52 +1579,52 @@ var default_full = schema.DEFAULT = new schema({ /*eslint-disable max-len,no-use-before-define*/ +var common$6 = common$b; +var YAMLException$3 = exception$1; +var Mark = mark$1; +var DEFAULT_SAFE_SCHEMA$1 = default_safe; +var DEFAULT_FULL_SCHEMA$1 = default_full; +var _hasOwnProperty$5 = Object.prototype.hasOwnProperty; +var CONTEXT_FLOW_IN$1 = 1; +var CONTEXT_FLOW_OUT$1 = 2; +var CONTEXT_BLOCK_IN$1 = 3; +var CONTEXT_BLOCK_OUT$1 = 4; - -var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; - - -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; - - -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; +var CHOMPING_CLIP$1 = 1; +var CHOMPING_STRIP$1 = 2; +var CHOMPING_KEEP$1 = 3; -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; +var PATTERN_NON_PRINTABLE$1 = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS$1 = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS$1 = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE$1 = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI$1 = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; -function _class(obj) { return Object.prototype.toString.call(obj); } +function _class$1(obj) { return Object.prototype.toString.call(obj); } -function is_EOL(c) { +function is_EOL$1(c) { return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); } -function is_WHITE_SPACE(c) { +function is_WHITE_SPACE$1(c) { return (c === 0x09/* Tab */) || (c === 0x20/* Space */); } -function is_WS_OR_EOL(c) { +function is_WS_OR_EOL$1(c) { return (c === 0x09/* Tab */) || (c === 0x20/* Space */) || (c === 0x0A/* LF */) || (c === 0x0D/* CR */); } -function is_FLOW_INDICATOR(c) { +function is_FLOW_INDICATOR$1(c) { return c === 0x2C/* , */ || c === 0x5B/* [ */ || c === 0x5D/* ] */ || @@ -1568,7 +1632,7 @@ function is_FLOW_INDICATOR(c) { c === 0x7D/* } */; } -function fromHexCode(c) { +function fromHexCode$1(c) { var lc; if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { @@ -1585,14 +1649,14 @@ function fromHexCode(c) { return -1; } -function escapedHexLen(c) { +function escapedHexLen$1(c) { if (c === 0x78/* x */) { return 2; } if (c === 0x75/* u */) { return 4; } if (c === 0x55/* U */) { return 8; } return 0; } -function fromDecimalCode(c) { +function fromDecimalCode$1(c) { if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { return c - 0x30; } @@ -1600,7 +1664,7 @@ function fromDecimalCode(c) { return -1; } -function simpleEscapeSequence(c) { +function simpleEscapeSequence$1(c) { /* eslint-disable indent */ return (c === 0x30/* 0 */) ? '\x00' : (c === 0x61/* a */) ? '\x07' : @@ -1622,7 +1686,7 @@ function simpleEscapeSequence(c) { (c === 0x50/* P */) ? '\u2029' : ''; } -function charFromCodepoint(c) { +function charFromCodepoint$1(c) { if (c <= 0xFFFF) { return String.fromCharCode(c); } @@ -1634,19 +1698,19 @@ function charFromCodepoint(c) { ); } -var simpleEscapeCheck = new Array(256); // integer, for fast access -var simpleEscapeMap = new Array(256); -for (var i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); +var simpleEscapeCheck$1 = new Array(256); // integer, for fast access +var simpleEscapeMap$1 = new Array(256); +for (var i$1 = 0; i$1 < 256; i$1++) { + simpleEscapeCheck$1[i$1] = simpleEscapeSequence$1(i$1) ? 1 : 0; + simpleEscapeMap$1[i$1] = simpleEscapeSequence$1(i$1); } -function State(input, options) { +function State$3(input, options) { this.input = input; this.filename = options['filename'] || null; - this.schema = options['schema'] || default_full; + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA$1; this.onWarning = options['onWarning'] || null; this.legacy = options['legacy'] || false; this.json = options['json'] || false; @@ -1676,55 +1740,55 @@ function State(input, options) { } -function generateError(state, message) { - return new exception( +function generateError$1(state, message) { + return new YAMLException$3( message, - new mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); + new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); } -function throwError(state, message) { - throw generateError(state, message); +function throwError$2(state, message) { + throw generateError$1(state, message); } -function throwWarning(state, message) { +function throwWarning$1(state, message) { if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); + state.onWarning.call(null, generateError$1(state, message)); } } -var directiveHandlers = { +var directiveHandlers$1 = { YAML: function handleYamlDirective(state, name, args) { var match, major, minor; if (state.version !== null) { - throwError(state, 'duplication of %YAML directive'); + throwError$2(state, 'duplication of %YAML directive'); } if (args.length !== 1) { - throwError(state, 'YAML directive accepts exactly one argument'); + throwError$2(state, 'YAML directive accepts exactly one argument'); } match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); if (match === null) { - throwError(state, 'ill-formed argument of the YAML directive'); + throwError$2(state, 'ill-formed argument of the YAML directive'); } major = parseInt(match[1], 10); minor = parseInt(match[2], 10); if (major !== 1) { - throwError(state, 'unacceptable YAML version of the document'); + throwError$2(state, 'unacceptable YAML version of the document'); } state.version = args[0]; state.checkLineBreaks = (minor < 2); if (minor !== 1 && minor !== 2) { - throwWarning(state, 'unsupported YAML version of the document'); + throwWarning$1(state, 'unsupported YAML version of the document'); } }, @@ -1733,22 +1797,22 @@ var directiveHandlers = { var handle, prefix; if (args.length !== 2) { - throwError(state, 'TAG directive accepts exactly two arguments'); + throwError$2(state, 'TAG directive accepts exactly two arguments'); } handle = args[0]; prefix = args[1]; - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + if (!PATTERN_TAG_HANDLE$1.test(handle)) { + throwError$2(state, 'ill-formed tag handle (first argument) of the TAG directive'); } - if (_hasOwnProperty$2.call(state.tagMap, handle)) { - throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + if (_hasOwnProperty$5.call(state.tagMap, handle)) { + throwError$2(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); } - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + if (!PATTERN_TAG_URI$1.test(prefix)) { + throwError$2(state, 'ill-formed tag prefix (second argument) of the TAG directive'); } state.tagMap[handle] = prefix; @@ -1756,7 +1820,7 @@ var directiveHandlers = { }; -function captureSegment(state, start, end, checkJson) { +function captureSegment$1(state, start, end, checkJson) { var _position, _length, _character, _result; if (start < end) { @@ -1767,22 +1831,22 @@ function captureSegment(state, start, end, checkJson) { _character = _result.charCodeAt(_position); if (!(_character === 0x09 || (0x20 <= _character && _character <= 0x10FFFF))) { - throwError(state, 'expected valid JSON character'); + throwError$2(state, 'expected valid JSON character'); } } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state, 'the stream contains non-printable characters'); + } else if (PATTERN_NON_PRINTABLE$1.test(_result)) { + throwError$2(state, 'the stream contains non-printable characters'); } state.result += _result; } } -function mergeMappings(state, destination, source, overridableKeys) { +function mergeMappings$1(state, destination, source, overridableKeys) { var sourceKeys, key, index, quantity; - if (!common.isObject(source)) { - throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + if (!common$6.isObject(source)) { + throwError$2(state, 'cannot merge mappings; the provided source object is unacceptable'); } sourceKeys = Object.keys(source); @@ -1790,14 +1854,14 @@ function mergeMappings(state, destination, source, overridableKeys) { for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { key = sourceKeys[index]; - if (!_hasOwnProperty$2.call(destination, key)) { + if (!_hasOwnProperty$5.call(destination, key)) { destination[key] = source[key]; overridableKeys[key] = true; } } } -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { +function storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { var index, quantity; // The output is a plain object here, so keys can only be strings. @@ -1808,10 +1872,10 @@ function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valu for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { if (Array.isArray(keyNode[index])) { - throwError(state, 'nested arrays are not supported inside keys'); + throwError$2(state, 'nested arrays are not supported inside keys'); } - if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + if (typeof keyNode === 'object' && _class$1(keyNode[index]) === '[object Object]') { keyNode[index] = '[object Object]'; } } @@ -1820,7 +1884,7 @@ function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valu // Avoid code execution in load() via toString property // (still use its own toString for arrays, timestamps, // and whatever user schema extensions happen to have @@toStringTag) - if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + if (typeof keyNode === 'object' && _class$1(keyNode) === '[object Object]') { keyNode = '[object Object]'; } @@ -1834,18 +1898,18 @@ function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valu if (keyTag === 'tag:yaml.org,2002:merge') { if (Array.isArray(valueNode)) { for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state, _result, valueNode[index], overridableKeys); + mergeMappings$1(state, _result, valueNode[index], overridableKeys); } } else { - mergeMappings(state, _result, valueNode, overridableKeys); + mergeMappings$1(state, _result, valueNode, overridableKeys); } } else { if (!state.json && - !_hasOwnProperty$2.call(overridableKeys, keyNode) && - _hasOwnProperty$2.call(_result, keyNode)) { + !_hasOwnProperty$5.call(overridableKeys, keyNode) && + _hasOwnProperty$5.call(_result, keyNode)) { state.line = startLine || state.line; state.position = startPos || state.position; - throwError(state, 'duplicated mapping key'); + throwError$2(state, 'duplicated mapping key'); } _result[keyNode] = valueNode; delete overridableKeys[keyNode]; @@ -1854,7 +1918,7 @@ function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valu return _result; } -function readLineBreak(state) { +function readLineBreak$1(state) { var ch; ch = state.input.charCodeAt(state.position); @@ -1867,19 +1931,19 @@ function readLineBreak(state) { state.position++; } } else { - throwError(state, 'a line break is expected'); + throwError$2(state, 'a line break is expected'); } state.line += 1; state.lineStart = state.position; } -function skipSeparationSpace(state, allowComments, checkIndent) { +function skipSeparationSpace$1(state, allowComments, checkIndent) { var lineBreaks = 0, ch = state.input.charCodeAt(state.position); while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { + while (is_WHITE_SPACE$1(ch)) { ch = state.input.charCodeAt(++state.position); } @@ -1889,8 +1953,8 @@ function skipSeparationSpace(state, allowComments, checkIndent) { } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); } - if (is_EOL(ch)) { - readLineBreak(state); + if (is_EOL$1(ch)) { + readLineBreak$1(state); ch = state.input.charCodeAt(state.position); lineBreaks++; @@ -1906,13 +1970,13 @@ function skipSeparationSpace(state, allowComments, checkIndent) { } if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, 'deficient indentation'); + throwWarning$1(state, 'deficient indentation'); } return lineBreaks; } -function testDocumentSeparator(state) { +function testDocumentSeparator$1(state) { var _position = state.position, ch; @@ -1928,7 +1992,7 @@ function testDocumentSeparator(state) { ch = state.input.charCodeAt(_position); - if (ch === 0 || is_WS_OR_EOL(ch)) { + if (ch === 0 || is_WS_OR_EOL$1(ch)) { return true; } } @@ -1936,16 +2000,16 @@ function testDocumentSeparator(state) { return false; } -function writeFoldedLines(state, count) { +function writeFoldedLines$1(state, count) { if (count === 1) { state.result += ' '; } else if (count > 1) { - state.result += common.repeat('\n', count - 1); + state.result += common$6.repeat('\n', count - 1); } } -function readPlainScalar(state, nodeIndent, withinFlowCollection) { +function readPlainScalar$1(state, nodeIndent, withinFlowCollection) { var preceding, following, captureStart, @@ -1960,8 +2024,8 @@ function readPlainScalar(state, nodeIndent, withinFlowCollection) { ch = state.input.charCodeAt(state.position); - if (is_WS_OR_EOL(ch) || - is_FLOW_INDICATOR(ch) || + if (is_WS_OR_EOL$1(ch) || + is_FLOW_INDICATOR$1(ch) || ch === 0x23/* # */ || ch === 0x26/* & */ || ch === 0x2A/* * */ || @@ -1979,8 +2043,8 @@ function readPlainScalar(state, nodeIndent, withinFlowCollection) { if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { + if (is_WS_OR_EOL$1(following) || + withinFlowCollection && is_FLOW_INDICATOR$1(following)) { return false; } } @@ -1994,27 +2058,27 @@ function readPlainScalar(state, nodeIndent, withinFlowCollection) { if (ch === 0x3A/* : */) { following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { + if (is_WS_OR_EOL$1(following) || + withinFlowCollection && is_FLOW_INDICATOR$1(following)) { break; } } else if (ch === 0x23/* # */) { preceding = state.input.charCodeAt(state.position - 1); - if (is_WS_OR_EOL(preceding)) { + if (is_WS_OR_EOL$1(preceding)) { break; } - } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || - withinFlowCollection && is_FLOW_INDICATOR(ch)) { + } else if ((state.position === state.lineStart && testDocumentSeparator$1(state)) || + withinFlowCollection && is_FLOW_INDICATOR$1(ch)) { break; - } else if (is_EOL(ch)) { + } else if (is_EOL$1(ch)) { _line = state.line; _lineStart = state.lineStart; _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); + skipSeparationSpace$1(state, false, -1); if (state.lineIndent >= nodeIndent) { hasPendingContent = true; @@ -2030,20 +2094,20 @@ function readPlainScalar(state, nodeIndent, withinFlowCollection) { } if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); + captureSegment$1(state, captureStart, captureEnd, false); + writeFoldedLines$1(state, state.line - _line); captureStart = captureEnd = state.position; hasPendingContent = false; } - if (!is_WHITE_SPACE(ch)) { + if (!is_WHITE_SPACE$1(ch)) { captureEnd = state.position + 1; } ch = state.input.charCodeAt(++state.position); } - captureSegment(state, captureStart, captureEnd, false); + captureSegment$1(state, captureStart, captureEnd, false); if (state.result) { return true; @@ -2054,7 +2118,7 @@ function readPlainScalar(state, nodeIndent, withinFlowCollection) { return false; } -function readSingleQuotedScalar(state, nodeIndent) { +function readSingleQuotedScalar$1(state, nodeIndent) { var ch, captureStart, captureEnd; @@ -2071,7 +2135,7 @@ function readSingleQuotedScalar(state, nodeIndent) { while ((ch = state.input.charCodeAt(state.position)) !== 0) { if (ch === 0x27/* ' */) { - captureSegment(state, captureStart, state.position, true); + captureSegment$1(state, captureStart, state.position, true); ch = state.input.charCodeAt(++state.position); if (ch === 0x27/* ' */) { @@ -2082,13 +2146,13 @@ function readSingleQuotedScalar(state, nodeIndent) { return true; } - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + } else if (is_EOL$1(ch)) { + captureSegment$1(state, captureStart, captureEnd, true); + writeFoldedLines$1(state, skipSeparationSpace$1(state, false, nodeIndent)); captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a single quoted scalar'); + } else if (state.position === state.lineStart && testDocumentSeparator$1(state)) { + throwError$2(state, 'unexpected end of the document within a single quoted scalar'); } else { state.position++; @@ -2096,10 +2160,10 @@ function readSingleQuotedScalar(state, nodeIndent) { } } - throwError(state, 'unexpected end of the stream within a single quoted scalar'); + throwError$2(state, 'unexpected end of the stream within a single quoted scalar'); } -function readDoubleQuotedScalar(state, nodeIndent) { +function readDoubleQuotedScalar$1(state, nodeIndent) { var captureStart, captureEnd, hexLength, @@ -2120,54 +2184,54 @@ function readDoubleQuotedScalar(state, nodeIndent) { while ((ch = state.input.charCodeAt(state.position)) !== 0) { if (ch === 0x22/* " */) { - captureSegment(state, captureStart, state.position, true); + captureSegment$1(state, captureStart, state.position, true); state.position++; return true; } else if (ch === 0x5C/* \ */) { - captureSegment(state, captureStart, state.position, true); + captureSegment$1(state, captureStart, state.position, true); ch = state.input.charCodeAt(++state.position); - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); + if (is_EOL$1(ch)) { + skipSeparationSpace$1(state, false, nodeIndent); // TODO: rework to inline fn with no type cast? - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; + } else if (ch < 256 && simpleEscapeCheck$1[ch]) { + state.result += simpleEscapeMap$1[ch]; state.position++; - } else if ((tmp = escapedHexLen(ch)) > 0) { + } else if ((tmp = escapedHexLen$1(ch)) > 0) { hexLength = tmp; hexResult = 0; for (; hexLength > 0; hexLength--) { ch = state.input.charCodeAt(++state.position); - if ((tmp = fromHexCode(ch)) >= 0) { + if ((tmp = fromHexCode$1(ch)) >= 0) { hexResult = (hexResult << 4) + tmp; } else { - throwError(state, 'expected hexadecimal character'); + throwError$2(state, 'expected hexadecimal character'); } } - state.result += charFromCodepoint(hexResult); + state.result += charFromCodepoint$1(hexResult); state.position++; } else { - throwError(state, 'unknown escape sequence'); + throwError$2(state, 'unknown escape sequence'); } captureStart = captureEnd = state.position; - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + } else if (is_EOL$1(ch)) { + captureSegment$1(state, captureStart, captureEnd, true); + writeFoldedLines$1(state, skipSeparationSpace$1(state, false, nodeIndent)); captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a double quoted scalar'); + } else if (state.position === state.lineStart && testDocumentSeparator$1(state)) { + throwError$2(state, 'unexpected end of the document within a double quoted scalar'); } else { state.position++; @@ -2175,10 +2239,10 @@ function readDoubleQuotedScalar(state, nodeIndent) { } } - throwError(state, 'unexpected end of the stream within a double quoted scalar'); + throwError$2(state, 'unexpected end of the stream within a double quoted scalar'); } -function readFlowCollection(state, nodeIndent) { +function readFlowCollection$1(state, nodeIndent) { var readNext = true, _line, _tag = state.tag, @@ -2216,7 +2280,7 @@ function readFlowCollection(state, nodeIndent) { ch = state.input.charCodeAt(++state.position); while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); + skipSeparationSpace$1(state, true, nodeIndent); ch = state.input.charCodeAt(state.position); @@ -2228,7 +2292,7 @@ function readFlowCollection(state, nodeIndent) { state.result = _result; return true; } else if (!readNext) { - throwError(state, 'missed comma between flow collection entries'); + throwError$2(state, 'missed comma between flow collection entries'); } keyTag = keyNode = valueNode = null; @@ -2237,38 +2301,38 @@ function readFlowCollection(state, nodeIndent) { if (ch === 0x3F/* ? */) { following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following)) { + if (is_WS_OR_EOL$1(following)) { isPair = isExplicitPair = true; state.position++; - skipSeparationSpace(state, true, nodeIndent); + skipSeparationSpace$1(state, true, nodeIndent); } } _line = state.line; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + composeNode$1(state, nodeIndent, CONTEXT_FLOW_IN$1, false, true); keyTag = state.tag; keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); + skipSeparationSpace$1(state, true, nodeIndent); ch = state.input.charCodeAt(state.position); if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { isPair = true; ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + skipSeparationSpace$1(state, true, nodeIndent); + composeNode$1(state, nodeIndent, CONTEXT_FLOW_IN$1, false, true); valueNode = state.result; } if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode); + storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, valueNode); } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode)); + _result.push(storeMappingPair$1(state, null, overridableKeys, keyTag, keyNode, valueNode)); } else { _result.push(keyNode); } - skipSeparationSpace(state, true, nodeIndent); + skipSeparationSpace$1(state, true, nodeIndent); ch = state.input.charCodeAt(state.position); @@ -2280,13 +2344,13 @@ function readFlowCollection(state, nodeIndent) { } } - throwError(state, 'unexpected end of the stream within a flow collection'); + throwError$2(state, 'unexpected end of the stream within a flow collection'); } -function readBlockScalar(state, nodeIndent) { +function readBlockScalar$1(state, nodeIndent) { var captureStart, folding, - chomping = CHOMPING_CLIP, + chomping = CHOMPING_CLIP$1, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, @@ -2312,20 +2376,20 @@ function readBlockScalar(state, nodeIndent) { ch = state.input.charCodeAt(++state.position); if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { - if (CHOMPING_CLIP === chomping) { - chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + if (CHOMPING_CLIP$1 === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP$1 : CHOMPING_STRIP$1; } else { - throwError(state, 'repeat of a chomping mode identifier'); + throwError$2(state, 'repeat of a chomping mode identifier'); } - } else if ((tmp = fromDecimalCode(ch)) >= 0) { + } else if ((tmp = fromDecimalCode$1(ch)) >= 0) { if (tmp === 0) { - throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + throwError$2(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); } else if (!detectedIndent) { textIndent = nodeIndent + tmp - 1; detectedIndent = true; } else { - throwError(state, 'repeat of an indentation width identifier'); + throwError$2(state, 'repeat of an indentation width identifier'); } } else { @@ -2333,18 +2397,18 @@ function readBlockScalar(state, nodeIndent) { } } - if (is_WHITE_SPACE(ch)) { + if (is_WHITE_SPACE$1(ch)) { do { ch = state.input.charCodeAt(++state.position); } - while (is_WHITE_SPACE(ch)); + while (is_WHITE_SPACE$1(ch)); if (ch === 0x23/* # */) { do { ch = state.input.charCodeAt(++state.position); } - while (!is_EOL(ch) && (ch !== 0)); + while (!is_EOL$1(ch) && (ch !== 0)); } } while (ch !== 0) { - readLineBreak(state); + readLineBreak$1(state); state.lineIndent = 0; ch = state.input.charCodeAt(state.position); @@ -2359,7 +2423,7 @@ function readBlockScalar(state, nodeIndent) { textIndent = state.lineIndent; } - if (is_EOL(ch)) { + if (is_EOL$1(ch)) { emptyLines++; continue; } @@ -2368,9 +2432,9 @@ function readBlockScalar(state, nodeIndent) { if (state.lineIndent < textIndent) { // Perform the chomping. - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { + if (chomping === CHOMPING_KEEP$1) { + state.result += common$6.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP$1) { if (didReadContent) { // i.e. only if the scalar is not empty. state.result += '\n'; } @@ -2384,15 +2448,15 @@ function readBlockScalar(state, nodeIndent) { if (folding) { // Lines starting with white space characters (more-indented lines) are not folded. - if (is_WHITE_SPACE(ch)) { + if (is_WHITE_SPACE$1(ch)) { atMoreIndented = true; // except for the first content line (cf. Example 8.1) - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + state.result += common$6.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); // End of more-indented block. } else if (atMoreIndented) { atMoreIndented = false; - state.result += common.repeat('\n', emptyLines + 1); + state.result += common$6.repeat('\n', emptyLines + 1); // Just one line break - perceive as the same line. } else if (emptyLines === 0) { @@ -2402,13 +2466,13 @@ function readBlockScalar(state, nodeIndent) { // Several line breaks - perceive as different lines. } else { - state.result += common.repeat('\n', emptyLines); + state.result += common$6.repeat('\n', emptyLines); } // Literal style: just add exact number of line breaks between content lines. } else { // Keep all line breaks except the header line break. - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + state.result += common$6.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); } didReadContent = true; @@ -2416,17 +2480,17 @@ function readBlockScalar(state, nodeIndent) { emptyLines = 0; captureStart = state.position; - while (!is_EOL(ch) && (ch !== 0)) { + while (!is_EOL$1(ch) && (ch !== 0)) { ch = state.input.charCodeAt(++state.position); } - captureSegment(state, captureStart, state.position, false); + captureSegment$1(state, captureStart, state.position, false); } return true; } -function readBlockSequence(state, nodeIndent) { +function readBlockSequence$1(state, nodeIndent) { var _line, _tag = state.tag, _anchor = state.anchor, @@ -2449,14 +2513,14 @@ function readBlockSequence(state, nodeIndent) { following = state.input.charCodeAt(state.position + 1); - if (!is_WS_OR_EOL(following)) { + if (!is_WS_OR_EOL$1(following)) { break; } detected = true; state.position++; - if (skipSeparationSpace(state, true, -1)) { + if (skipSeparationSpace$1(state, true, -1)) { if (state.lineIndent <= nodeIndent) { _result.push(null); ch = state.input.charCodeAt(state.position); @@ -2465,14 +2529,14 @@ function readBlockSequence(state, nodeIndent) { } _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + composeNode$1(state, nodeIndent, CONTEXT_BLOCK_IN$1, false, true); _result.push(state.result); - skipSeparationSpace(state, true, -1); + skipSeparationSpace$1(state, true, -1); ch = state.input.charCodeAt(state.position); if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError(state, 'bad indentation of a sequence entry'); + throwError$2(state, 'bad indentation of a sequence entry'); } else if (state.lineIndent < nodeIndent) { break; } @@ -2488,7 +2552,7 @@ function readBlockSequence(state, nodeIndent) { return false; } -function readBlockMapping(state, nodeIndent, flowIndent) { +function readBlockMapping$1(state, nodeIndent, flowIndent) { var following, allowCompact, _line, @@ -2519,11 +2583,11 @@ function readBlockMapping(state, nodeIndent, flowIndent) { // Explicit notation case. There are two separate blocks: // first for the key (denoted by "?") and second for the value (denoted by ":") // - if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL$1(following)) { if (ch === 0x3F/* ? */) { if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, null); keyTag = keyNode = valueNode = null; } @@ -2537,7 +2601,7 @@ function readBlockMapping(state, nodeIndent, flowIndent) { allowCompact = true; } else { - throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + throwError$2(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); } state.position += 1; @@ -2546,24 +2610,24 @@ function readBlockMapping(state, nodeIndent, flowIndent) { // // Implicit notation case. Flow-style node as the key first, then ":", and the value. // - } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + } else if (composeNode$1(state, flowIndent, CONTEXT_FLOW_OUT$1, false, true)) { if (state.line === _line) { ch = state.input.charCodeAt(state.position); - while (is_WHITE_SPACE(ch)) { + while (is_WHITE_SPACE$1(ch)) { ch = state.input.charCodeAt(++state.position); } if (ch === 0x3A/* : */) { ch = state.input.charCodeAt(++state.position); - if (!is_WS_OR_EOL(ch)) { - throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + if (!is_WS_OR_EOL$1(ch)) { + throwError$2(state, 'a whitespace character is expected after the key-value separator within a block mapping'); } if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, null); keyTag = keyNode = valueNode = null; } @@ -2574,7 +2638,7 @@ function readBlockMapping(state, nodeIndent, flowIndent) { keyNode = state.result; } else if (detected) { - throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + throwError$2(state, 'can not read an implicit mapping pair; a colon is missed'); } else { state.tag = _tag; @@ -2583,7 +2647,7 @@ function readBlockMapping(state, nodeIndent, flowIndent) { } } else if (detected) { - throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + throwError$2(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); } else { state.tag = _tag; @@ -2599,7 +2663,7 @@ function readBlockMapping(state, nodeIndent, flowIndent) { // Common reading code for both explicit and implicit notations. // if (state.line === _line || state.lineIndent > nodeIndent) { - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (composeNode$1(state, nodeIndent, CONTEXT_BLOCK_OUT$1, true, allowCompact)) { if (atExplicitKey) { keyNode = state.result; } else { @@ -2608,16 +2672,16 @@ function readBlockMapping(state, nodeIndent, flowIndent) { } if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); + storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); keyTag = keyNode = valueNode = null; } - skipSeparationSpace(state, true, -1); + skipSeparationSpace$1(state, true, -1); ch = state.input.charCodeAt(state.position); } if (state.lineIndent > nodeIndent && (ch !== 0)) { - throwError(state, 'bad indentation of a mapping entry'); + throwError$2(state, 'bad indentation of a mapping entry'); } else if (state.lineIndent < nodeIndent) { break; } @@ -2629,7 +2693,7 @@ function readBlockMapping(state, nodeIndent, flowIndent) { // Special case: last mapping's node contains only the key in explicit notation. if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, null); } // Expose the resulting mapping. @@ -2643,7 +2707,7 @@ function readBlockMapping(state, nodeIndent, flowIndent) { return detected; } -function readTagProperty(state) { +function readTagProperty$1(state) { var _position, isVerbatim = false, isNamed = false, @@ -2656,7 +2720,7 @@ function readTagProperty(state) { if (ch !== 0x21/* ! */) return false; if (state.tag !== null) { - throwError(state, 'duplication of a tag property'); + throwError$2(state, 'duplication of a tag property'); } ch = state.input.charCodeAt(++state.position); @@ -2684,23 +2748,23 @@ function readTagProperty(state) { tagName = state.input.slice(_position, state.position); ch = state.input.charCodeAt(++state.position); } else { - throwError(state, 'unexpected end of the stream within a verbatim tag'); + throwError$2(state, 'unexpected end of the stream within a verbatim tag'); } } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { + while (ch !== 0 && !is_WS_OR_EOL$1(ch)) { if (ch === 0x21/* ! */) { if (!isNamed) { tagHandle = state.input.slice(_position - 1, state.position + 1); - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state, 'named tag handle cannot contain such characters'); + if (!PATTERN_TAG_HANDLE$1.test(tagHandle)) { + throwError$2(state, 'named tag handle cannot contain such characters'); } isNamed = true; _position = state.position + 1; } else { - throwError(state, 'tag suffix cannot contain exclamation marks'); + throwError$2(state, 'tag suffix cannot contain exclamation marks'); } } @@ -2709,19 +2773,19 @@ function readTagProperty(state) { tagName = state.input.slice(_position, state.position); - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state, 'tag suffix cannot contain flow indicator characters'); + if (PATTERN_FLOW_INDICATORS$1.test(tagName)) { + throwError$2(state, 'tag suffix cannot contain flow indicator characters'); } } - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state, 'tag name cannot contain such characters: ' + tagName); + if (tagName && !PATTERN_TAG_URI$1.test(tagName)) { + throwError$2(state, 'tag name cannot contain such characters: ' + tagName); } if (isVerbatim) { state.tag = tagName; - } else if (_hasOwnProperty$2.call(state.tagMap, tagHandle)) { + } else if (_hasOwnProperty$5.call(state.tagMap, tagHandle)) { state.tag = state.tagMap[tagHandle] + tagName; } else if (tagHandle === '!') { @@ -2731,13 +2795,13 @@ function readTagProperty(state) { state.tag = 'tag:yaml.org,2002:' + tagName; } else { - throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + throwError$2(state, 'undeclared tag handle "' + tagHandle + '"'); } return true; } -function readAnchorProperty(state) { +function readAnchorProperty$1(state) { var _position, ch; @@ -2746,25 +2810,25 @@ function readAnchorProperty(state) { if (ch !== 0x26/* & */) return false; if (state.anchor !== null) { - throwError(state, 'duplication of an anchor property'); + throwError$2(state, 'duplication of an anchor property'); } ch = state.input.charCodeAt(++state.position); _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + while (ch !== 0 && !is_WS_OR_EOL$1(ch) && !is_FLOW_INDICATOR$1(ch)) { ch = state.input.charCodeAt(++state.position); } if (state.position === _position) { - throwError(state, 'name of an anchor node must contain at least one character'); + throwError$2(state, 'name of an anchor node must contain at least one character'); } state.anchor = state.input.slice(_position, state.position); return true; } -function readAlias(state) { +function readAlias$1(state) { var _position, alias, ch; @@ -2775,26 +2839,26 @@ function readAlias(state) { ch = state.input.charCodeAt(++state.position); _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + while (ch !== 0 && !is_WS_OR_EOL$1(ch) && !is_FLOW_INDICATOR$1(ch)) { ch = state.input.charCodeAt(++state.position); } if (state.position === _position) { - throwError(state, 'name of an alias node must contain at least one character'); + throwError$2(state, 'name of an alias node must contain at least one character'); } alias = state.input.slice(_position, state.position); - if (!_hasOwnProperty$2.call(state.anchorMap, alias)) { - throwError(state, 'unidentified alias "' + alias + '"'); + if (!_hasOwnProperty$5.call(state.anchorMap, alias)) { + throwError$2(state, 'unidentified alias "' + alias + '"'); } state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); + skipSeparationSpace$1(state, true, -1); return true; } -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { +function composeNode$1(state, parentIndent, nodeContext, allowToSeek, allowCompact) { var allowBlockStyles, allowBlockScalars, allowBlockCollections, @@ -2817,11 +2881,11 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact state.result = null; allowBlockStyles = allowBlockScalars = allowBlockCollections = - CONTEXT_BLOCK_OUT === nodeContext || - CONTEXT_BLOCK_IN === nodeContext; + CONTEXT_BLOCK_OUT$1 === nodeContext || + CONTEXT_BLOCK_IN$1 === nodeContext; if (allowToSeek) { - if (skipSeparationSpace(state, true, -1)) { + if (skipSeparationSpace$1(state, true, -1)) { atNewLine = true; if (state.lineIndent > parentIndent) { @@ -2835,8 +2899,8 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact } if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { + while (readTagProperty$1(state) || readAnchorProperty$1(state)) { + if (skipSeparationSpace$1(state, true, -1)) { atNewLine = true; allowBlockCollections = allowBlockStyles; @@ -2857,8 +2921,8 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact allowBlockCollections = atNewLine || allowCompact; } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + if (indentStatus === 1 || CONTEXT_BLOCK_OUT$1 === nodeContext) { + if (CONTEXT_FLOW_IN$1 === nodeContext || CONTEXT_FLOW_OUT$1 === nodeContext) { flowIndent = parentIndent; } else { flowIndent = parentIndent + 1; @@ -2868,24 +2932,24 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact if (indentStatus === 1) { if (allowBlockCollections && - (readBlockSequence(state, blockIndent) || - readBlockMapping(state, blockIndent, flowIndent)) || - readFlowCollection(state, flowIndent)) { + (readBlockSequence$1(state, blockIndent) || + readBlockMapping$1(state, blockIndent, flowIndent)) || + readFlowCollection$1(state, flowIndent)) { hasContent = true; } else { - if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || - readSingleQuotedScalar(state, flowIndent) || - readDoubleQuotedScalar(state, flowIndent)) { + if ((allowBlockScalars && readBlockScalar$1(state, flowIndent)) || + readSingleQuotedScalar$1(state, flowIndent) || + readDoubleQuotedScalar$1(state, flowIndent)) { hasContent = true; - } else if (readAlias(state)) { + } else if (readAlias$1(state)) { hasContent = true; if (state.tag !== null || state.anchor !== null) { - throwError(state, 'alias node should not have any properties'); + throwError$2(state, 'alias node should not have any properties'); } - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + } else if (readPlainScalar$1(state, flowIndent, CONTEXT_FLOW_IN$1 === nodeContext)) { hasContent = true; if (state.tag === null) { @@ -2900,7 +2964,7 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact } else if (indentStatus === 0) { // Special case: block sequences are allowed to have same indentation level as the parent. // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + hasContent = allowBlockCollections && readBlockSequence$1(state, blockIndent); } } @@ -2913,7 +2977,7 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact // tag, for example like this: "! [0]" // if (state.result !== null && state.kind !== 'scalar') { - throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + throwError$2(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); } for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { @@ -2928,15 +2992,15 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact break; } } - } else if (_hasOwnProperty$2.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + } else if (_hasOwnProperty$5.call(state.typeMap[state.kind || 'fallback'], state.tag)) { type = state.typeMap[state.kind || 'fallback'][state.tag]; if (state.result !== null && type.kind !== state.kind) { - throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + throwError$2(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); } if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched - throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + throwError$2(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); } else { state.result = type.construct(state.result); if (state.anchor !== null) { @@ -2944,7 +3008,7 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact } } } else { - throwError(state, 'unknown tag !<' + state.tag + '>'); + throwError$2(state, 'unknown tag !<' + state.tag + '>'); } } @@ -2954,7 +3018,7 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact return state.tag !== null || state.anchor !== null || hasContent; } -function readDocument(state) { +function readDocument$1(state) { var documentStart = state.position, _position, directiveName, @@ -2968,7 +3032,7 @@ function readDocument(state) { state.anchorMap = {}; while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); + skipSeparationSpace$1(state, true, -1); ch = state.input.charCodeAt(state.position); @@ -2980,7 +3044,7 @@ function readDocument(state) { ch = state.input.charCodeAt(++state.position); _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { + while (ch !== 0 && !is_WS_OR_EOL$1(ch)) { ch = state.input.charCodeAt(++state.position); } @@ -2988,81 +3052,81 @@ function readDocument(state) { directiveArgs = []; if (directiveName.length < 1) { - throwError(state, 'directive name must not be less than one character in length'); + throwError$2(state, 'directive name must not be less than one character in length'); } while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { + while (is_WHITE_SPACE$1(ch)) { ch = state.input.charCodeAt(++state.position); } if (ch === 0x23/* # */) { do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && !is_EOL(ch)); + while (ch !== 0 && !is_EOL$1(ch)); break; } - if (is_EOL(ch)) break; + if (is_EOL$1(ch)) break; _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { + while (ch !== 0 && !is_WS_OR_EOL$1(ch)) { ch = state.input.charCodeAt(++state.position); } directiveArgs.push(state.input.slice(_position, state.position)); } - if (ch !== 0) readLineBreak(state); + if (ch !== 0) readLineBreak$1(state); - if (_hasOwnProperty$2.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); + if (_hasOwnProperty$5.call(directiveHandlers$1, directiveName)) { + directiveHandlers$1[directiveName](state, directiveName, directiveArgs); } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); + throwWarning$1(state, 'unknown document directive "' + directiveName + '"'); } } - skipSeparationSpace(state, true, -1); + skipSeparationSpace$1(state, true, -1); if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 0x2D/* - */ && state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { state.position += 3; - skipSeparationSpace(state, true, -1); + skipSeparationSpace$1(state, true, -1); } else if (hasDirectives) { - throwError(state, 'directives end mark is expected'); + throwError$2(state, 'directives end mark is expected'); } - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); + composeNode$1(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT$1, false, true); + skipSeparationSpace$1(state, true, -1); if (state.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + PATTERN_NON_ASCII_LINE_BREAKS$1.test(state.input.slice(documentStart, state.position))) { + throwWarning$1(state, 'non-ASCII line breaks are interpreted as content'); } state.documents.push(state.result); - if (state.position === state.lineStart && testDocumentSeparator(state)) { + if (state.position === state.lineStart && testDocumentSeparator$1(state)) { if (state.input.charCodeAt(state.position) === 0x2E/* . */) { state.position += 3; - skipSeparationSpace(state, true, -1); + skipSeparationSpace$1(state, true, -1); } return; } if (state.position < (state.length - 1)) { - throwError(state, 'end of the stream or a document separator is expected'); + throwError$2(state, 'end of the stream or a document separator is expected'); } else { return; } } -function loadDocuments(input, options) { +function loadDocuments$1(input, options) { input = String(input); options = options || {}; @@ -3080,13 +3144,13 @@ function loadDocuments(input, options) { } } - var state = new State(input, options); + var state = new State$3(input, options); var nullpos = input.indexOf('\0'); if (nullpos !== -1) { state.position = nullpos; - throwError(state, 'null byte is not allowed in input'); + throwError$2(state, 'null byte is not allowed in input'); } // Use 0 as string terminator. That significantly simplifies bounds check. @@ -3098,20 +3162,20 @@ function loadDocuments(input, options) { } while (state.position < (state.length - 1)) { - readDocument(state); + readDocument$1(state); } return state.documents; } -function loadAll(input, iterator, options) { +function loadAll$2(input, iterator, options) { if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { options = iterator; iterator = null; } - var documents = loadDocuments(input, options); + var documents = loadDocuments$1(input, options); if (typeof iterator !== 'function') { return documents; @@ -3123,8 +3187,8 @@ function loadAll(input, iterator, options) { } -function load(input, options) { - var documents = loadDocuments(input, options); +function load$5(input, options) { + var documents = loadDocuments$1(input, options); if (documents.length === 0) { /*eslint-disable no-undefined*/ @@ -3132,96 +3196,91 @@ function load(input, options) { } else if (documents.length === 1) { return documents[0]; } - throw new exception('expected a single document in the stream, but found more'); + throw new YAMLException$3('expected a single document in the stream, but found more'); } -function safeLoadAll(input, iterator, options) { +function safeLoadAll$1(input, iterator, options) { if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') { options = iterator; iterator = null; } - return loadAll(input, iterator, common.extend({ schema: default_safe }, options)); + return loadAll$2(input, iterator, common$6.extend({ schema: DEFAULT_SAFE_SCHEMA$1 }, options)); } -function safeLoad(input, options) { - return load(input, common.extend({ schema: default_safe }, options)); +function safeLoad$1(input, options) { + return load$5(input, common$6.extend({ schema: DEFAULT_SAFE_SCHEMA$1 }, options)); } -var loadAll_1 = loadAll; -var load_1 = load; -var safeLoadAll_1 = safeLoadAll; -var safeLoad_1 = safeLoad; +loader$2.loadAll = loadAll$2; +loader$2.load = load$5; +loader$2.safeLoadAll = safeLoadAll$1; +loader$2.safeLoad = safeLoad$1; -var loader = { - loadAll: loadAll_1, - load: load_1, - safeLoadAll: safeLoadAll_1, - safeLoad: safeLoad_1 -}; +var dumper$2 = {}; /*eslint-disable no-use-before-define*/ +var common$5 = common$b; +var YAMLException$2 = exception$1; +var DEFAULT_FULL_SCHEMA = default_full; +var DEFAULT_SAFE_SCHEMA = default_safe; +var _toString$3 = Object.prototype.toString; +var _hasOwnProperty$4 = Object.prototype.hasOwnProperty; +var CHAR_TAB$1 = 0x09; /* Tab */ +var CHAR_LINE_FEED$1 = 0x0A; /* LF */ +var CHAR_CARRIAGE_RETURN$1 = 0x0D; /* CR */ +var CHAR_SPACE$1 = 0x20; /* Space */ +var CHAR_EXCLAMATION$1 = 0x21; /* ! */ +var CHAR_DOUBLE_QUOTE$2 = 0x22; /* " */ +var CHAR_SHARP$1 = 0x23; /* # */ +var CHAR_PERCENT$1 = 0x25; /* % */ +var CHAR_AMPERSAND$1 = 0x26; /* & */ +var CHAR_SINGLE_QUOTE$2 = 0x27; /* ' */ +var CHAR_ASTERISK$2 = 0x2A; /* * */ +var CHAR_COMMA$3 = 0x2C; /* , */ +var CHAR_MINUS$1 = 0x2D; /* - */ +var CHAR_COLON$1 = 0x3A; /* : */ +var CHAR_EQUALS$1 = 0x3D; /* = */ +var CHAR_GREATER_THAN$1 = 0x3E; /* > */ +var CHAR_QUESTION$1 = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT$1 = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET$3 = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET$3 = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT$1 = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET$1 = 0x7B; /* { */ +var CHAR_VERTICAL_LINE$1 = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET$1 = 0x7D; /* } */ +var ESCAPE_SEQUENCES$1 = {}; +ESCAPE_SEQUENCES$1[0x00] = '\\0'; +ESCAPE_SEQUENCES$1[0x07] = '\\a'; +ESCAPE_SEQUENCES$1[0x08] = '\\b'; +ESCAPE_SEQUENCES$1[0x09] = '\\t'; +ESCAPE_SEQUENCES$1[0x0A] = '\\n'; +ESCAPE_SEQUENCES$1[0x0B] = '\\v'; +ESCAPE_SEQUENCES$1[0x0C] = '\\f'; +ESCAPE_SEQUENCES$1[0x0D] = '\\r'; +ESCAPE_SEQUENCES$1[0x1B] = '\\e'; +ESCAPE_SEQUENCES$1[0x22] = '\\"'; +ESCAPE_SEQUENCES$1[0x5C] = '\\\\'; +ESCAPE_SEQUENCES$1[0x85] = '\\N'; +ESCAPE_SEQUENCES$1[0xA0] = '\\_'; +ESCAPE_SEQUENCES$1[0x2028] = '\\L'; +ESCAPE_SEQUENCES$1[0x2029] = '\\P'; -var _toString$2 = Object.prototype.toString; -var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; - -var CHAR_TAB = 0x09; /* Tab */ -var CHAR_LINE_FEED = 0x0A; /* LF */ -var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ -var CHAR_SPACE = 0x20; /* Space */ -var CHAR_EXCLAMATION = 0x21; /* ! */ -var CHAR_DOUBLE_QUOTE = 0x22; /* " */ -var CHAR_SHARP = 0x23; /* # */ -var CHAR_PERCENT = 0x25; /* % */ -var CHAR_AMPERSAND = 0x26; /* & */ -var CHAR_SINGLE_QUOTE = 0x27; /* ' */ -var CHAR_ASTERISK = 0x2A; /* * */ -var CHAR_COMMA = 0x2C; /* , */ -var CHAR_MINUS = 0x2D; /* - */ -var CHAR_COLON = 0x3A; /* : */ -var CHAR_EQUALS = 0x3D; /* = */ -var CHAR_GREATER_THAN = 0x3E; /* > */ -var CHAR_QUESTION = 0x3F; /* ? */ -var CHAR_COMMERCIAL_AT = 0x40; /* @ */ -var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ -var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ -var CHAR_GRAVE_ACCENT = 0x60; /* ` */ -var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ -var CHAR_VERTICAL_LINE = 0x7C; /* | */ -var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ - -var ESCAPE_SEQUENCES = {}; - -ESCAPE_SEQUENCES[0x00] = '\\0'; -ESCAPE_SEQUENCES[0x07] = '\\a'; -ESCAPE_SEQUENCES[0x08] = '\\b'; -ESCAPE_SEQUENCES[0x09] = '\\t'; -ESCAPE_SEQUENCES[0x0A] = '\\n'; -ESCAPE_SEQUENCES[0x0B] = '\\v'; -ESCAPE_SEQUENCES[0x0C] = '\\f'; -ESCAPE_SEQUENCES[0x0D] = '\\r'; -ESCAPE_SEQUENCES[0x1B] = '\\e'; -ESCAPE_SEQUENCES[0x22] = '\\"'; -ESCAPE_SEQUENCES[0x5C] = '\\\\'; -ESCAPE_SEQUENCES[0x85] = '\\N'; -ESCAPE_SEQUENCES[0xA0] = '\\_'; -ESCAPE_SEQUENCES[0x2028] = '\\L'; -ESCAPE_SEQUENCES[0x2029] = '\\P'; - -var DEPRECATED_BOOLEANS_SYNTAX = [ +var DEPRECATED_BOOLEANS_SYNTAX$1 = [ 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' ]; -function compileStyleMap(schema, map) { +function compileStyleMap$1(schema, map) { var result, keys, index, length, tag, style, type; if (map === null) return {}; @@ -3238,7 +3297,7 @@ function compileStyleMap(schema, map) { } type = schema.compiledTypeMap['fallback'][tag]; - if (type && _hasOwnProperty$3.call(type.styleAliases, style)) { + if (type && _hasOwnProperty$4.call(type.styleAliases, style)) { style = type.styleAliases[style]; } @@ -3248,7 +3307,7 @@ function compileStyleMap(schema, map) { return result; } -function encodeHex(character) { +function encodeHex$1(character) { var string, handle, length; string = character.toString(16).toUpperCase(); @@ -3263,19 +3322,19 @@ function encodeHex(character) { handle = 'U'; length = 8; } else { - throw new exception('code point within a string may not be greater than 0xFFFFFFFF'); + throw new YAMLException$2('code point within a string may not be greater than 0xFFFFFFFF'); } - return '\\' + handle + common.repeat('0', length - string.length) + string; + return '\\' + handle + common$5.repeat('0', length - string.length) + string; } -function State$1(options) { - this.schema = options['schema'] || default_full; +function State$2(options) { + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; this.indent = Math.max(1, (options['indent'] || 2)); this.noArrayIndent = options['noArrayIndent'] || false; this.skipInvalid = options['skipInvalid'] || false; - this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); - this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.flowLevel = (common$5.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap$1(this.schema, options['styles'] || null); this.sortKeys = options['sortKeys'] || false; this.lineWidth = options['lineWidth'] || 80; this.noRefs = options['noRefs'] || false; @@ -3293,8 +3352,8 @@ function State$1(options) { } // Indents every line in a string. Empty lines (\n only) are not indented. -function indentString(string, spaces) { - var ind = common.repeat(' ', spaces), +function indentString$1(string, spaces) { + var ind = common$5.repeat(' ', spaces), position = 0, next = -1, result = '', @@ -3319,11 +3378,11 @@ function indentString(string, spaces) { return result; } -function generateNextLine(state, level) { - return '\n' + common.repeat(' ', state.indent * level); +function generateNextLine$1(state, level) { + return '\n' + common$5.repeat(' ', state.indent * level); } -function testImplicitResolving(state, str) { +function testImplicitResolving$1(state, str) { var index, length, type; for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { @@ -3338,15 +3397,15 @@ function testImplicitResolving(state, str) { } // [33] s-white ::= s-space | s-tab -function isWhitespace(c) { - return c === CHAR_SPACE || c === CHAR_TAB; +function isWhitespace$1(c) { + return c === CHAR_SPACE$1 || c === CHAR_TAB$1; } // Returns true if the character can be printed without escaping. // From YAML 1.2: "any allowed characters known to be non-printable // should also be escaped. [However,] This isn’t mandatory" // Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. -function isPrintable(c) { +function isPrintable$1(c) { return (0x00020 <= c && c <= 0x00007E) || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */) @@ -3360,74 +3419,74 @@ function isPrintable(c) { // [25] b-carriage-return ::= #xD /* CR */ // [3] c-byte-order-mark ::= #xFEFF function isNsChar(c) { - return isPrintable(c) && !isWhitespace(c) + return isPrintable$1(c) && !isWhitespace$1(c) // byte-order-mark && c !== 0xFEFF // b-char - && c !== CHAR_CARRIAGE_RETURN - && c !== CHAR_LINE_FEED; + && c !== CHAR_CARRIAGE_RETURN$1 + && c !== CHAR_LINE_FEED$1; } // Simplified test for values allowed after the first character in plain style. -function isPlainSafe(c, prev) { +function isPlainSafe$1(c, prev) { // Uses a subset of nb-char - c-flow-indicator - ":" - "#" // where nb-char ::= c-printable - b-char - c-byte-order-mark. - return isPrintable(c) && c !== 0xFEFF + return isPrintable$1(c) && c !== 0xFEFF // - c-flow-indicator - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET + && c !== CHAR_COMMA$3 + && c !== CHAR_LEFT_SQUARE_BRACKET$3 + && c !== CHAR_RIGHT_SQUARE_BRACKET$3 + && c !== CHAR_LEFT_CURLY_BRACKET$1 + && c !== CHAR_RIGHT_CURLY_BRACKET$1 // - ":" - "#" // /* An ns-char preceding */ "#" - && c !== CHAR_COLON - && ((c !== CHAR_SHARP) || (prev && isNsChar(prev))); + && c !== CHAR_COLON$1 + && ((c !== CHAR_SHARP$1) || (prev && isNsChar(prev))); } // Simplified test for values allowed as the first character in plain style. -function isPlainSafeFirst(c) { +function isPlainSafeFirst$1(c) { // Uses a subset of ns-char - c-indicator // where ns-char = nb-char - s-white. - return isPrintable(c) && c !== 0xFEFF - && !isWhitespace(c) // - s-white + return isPrintable$1(c) && c !== 0xFEFF + && !isWhitespace$1(c) // - s-white // - (c-indicator ::= // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” - && c !== CHAR_MINUS - && c !== CHAR_QUESTION - && c !== CHAR_COLON - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET + && c !== CHAR_MINUS$1 + && c !== CHAR_QUESTION$1 + && c !== CHAR_COLON$1 + && c !== CHAR_COMMA$3 + && c !== CHAR_LEFT_SQUARE_BRACKET$3 + && c !== CHAR_RIGHT_SQUARE_BRACKET$3 + && c !== CHAR_LEFT_CURLY_BRACKET$1 + && c !== CHAR_RIGHT_CURLY_BRACKET$1 // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” - && c !== CHAR_SHARP - && c !== CHAR_AMPERSAND - && c !== CHAR_ASTERISK - && c !== CHAR_EXCLAMATION - && c !== CHAR_VERTICAL_LINE - && c !== CHAR_EQUALS - && c !== CHAR_GREATER_THAN - && c !== CHAR_SINGLE_QUOTE - && c !== CHAR_DOUBLE_QUOTE + && c !== CHAR_SHARP$1 + && c !== CHAR_AMPERSAND$1 + && c !== CHAR_ASTERISK$2 + && c !== CHAR_EXCLAMATION$1 + && c !== CHAR_VERTICAL_LINE$1 + && c !== CHAR_EQUALS$1 + && c !== CHAR_GREATER_THAN$1 + && c !== CHAR_SINGLE_QUOTE$2 + && c !== CHAR_DOUBLE_QUOTE$2 // | “%” | “@” | “`”) - && c !== CHAR_PERCENT - && c !== CHAR_COMMERCIAL_AT - && c !== CHAR_GRAVE_ACCENT; + && c !== CHAR_PERCENT$1 + && c !== CHAR_COMMERCIAL_AT$1 + && c !== CHAR_GRAVE_ACCENT$1; } // Determines whether block indentation indicator is required. -function needIndentIndicator(string) { +function needIndentIndicator$1(string) { var leadingSpaceRe = /^\n* /; return leadingSpaceRe.test(string); } -var STYLE_PLAIN = 1, - STYLE_SINGLE = 2, - STYLE_LITERAL = 3, - STYLE_FOLDED = 4, - STYLE_DOUBLE = 5; +var STYLE_PLAIN$1 = 1, + STYLE_SINGLE$1 = 2, + STYLE_LITERAL$1 = 3, + STYLE_FOLDED$1 = 4, + STYLE_DOUBLE$1 = 5; // Determines which scalar styles are possible and returns the preferred style. // lineWidth = -1 => no limit. @@ -3436,32 +3495,32 @@ var STYLE_PLAIN = 1, // STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. // STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). // STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { +function chooseScalarStyle$1(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { var i; var char, prev_char; var hasLineBreak = false; var hasFoldableLine = false; // only checked if shouldTrackWidth var shouldTrackWidth = lineWidth !== -1; var previousLineBreak = -1; // count the first line correctly - var plain = isPlainSafeFirst(string.charCodeAt(0)) - && !isWhitespace(string.charCodeAt(string.length - 1)); + var plain = isPlainSafeFirst$1(string.charCodeAt(0)) + && !isWhitespace$1(string.charCodeAt(string.length - 1)); if (singleLineOnly) { // Case: no block styles. // Check for disallowed characters to rule out plain and single. for (i = 0; i < string.length; i++) { char = string.charCodeAt(i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; + if (!isPrintable$1(char)) { + return STYLE_DOUBLE$1; } prev_char = i > 0 ? string.charCodeAt(i - 1) : null; - plain = plain && isPlainSafe(char, prev_char); + plain = plain && isPlainSafe$1(char, prev_char); } } else { // Case: block styles permitted. for (i = 0; i < string.length; i++) { char = string.charCodeAt(i); - if (char === CHAR_LINE_FEED) { + if (char === CHAR_LINE_FEED$1) { hasLineBreak = true; // Check if any line can be folded. if (shouldTrackWidth) { @@ -3471,11 +3530,11 @@ function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, te string[previousLineBreak + 1] !== ' '); previousLineBreak = i; } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; + } else if (!isPrintable$1(char)) { + return STYLE_DOUBLE$1; } prev_char = i > 0 ? string.charCodeAt(i - 1) : null; - plain = plain && isPlainSafe(char, prev_char); + plain = plain && isPlainSafe$1(char, prev_char); } // in case the end is missing a \n hasFoldableLine = hasFoldableLine || (shouldTrackWidth && @@ -3489,15 +3548,15 @@ function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, te // Strings interpretable as another type have to be quoted; // e.g. the string 'true' vs. the boolean true. return plain && !testAmbiguousType(string) - ? STYLE_PLAIN : STYLE_SINGLE; + ? STYLE_PLAIN$1 : STYLE_SINGLE$1; } // Edge case: block indentation indicator can only have one digit. - if (indentPerLevel > 9 && needIndentIndicator(string)) { - return STYLE_DOUBLE; + if (indentPerLevel > 9 && needIndentIndicator$1(string)) { + return STYLE_DOUBLE$1; } // At this point we know block styles are valid. // Prefer literal style unless we want to fold. - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + return hasFoldableLine ? STYLE_FOLDED$1 : STYLE_LITERAL$1; } // Note: line breaking/folding is implemented for only the folded style. @@ -3506,13 +3565,13 @@ function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, te // • No ending newline => unaffected; already using strip "-" chomping. // • Ending newline => removed then restored. // Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar(state, string, level, iskey) { +function writeScalar$1(state, string, level, iskey) { state.dump = (function () { if (string.length === 0) { return "''"; } if (!state.noCompatMode && - DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) { + DEPRECATED_BOOLEANS_SYNTAX$1.indexOf(string) !== -1) { return "'" + string + "'"; } @@ -3532,31 +3591,31 @@ function writeScalar(state, string, level, iskey) { // No block styles in flow mode. || (state.flowLevel > -1 && level >= state.flowLevel); function testAmbiguity(string) { - return testImplicitResolving(state, string); + return testImplicitResolving$1(state, string); } - switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { - case STYLE_PLAIN: + switch (chooseScalarStyle$1(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { + case STYLE_PLAIN$1: return string; - case STYLE_SINGLE: + case STYLE_SINGLE$1: return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return '|' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(string, indent)); - case STYLE_FOLDED: - return '>' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); - case STYLE_DOUBLE: - return '"' + escapeString(string) + '"'; + case STYLE_LITERAL$1: + return '|' + blockHeader$1(string, state.indent) + + dropEndingNewline$1(indentString$1(string, indent)); + case STYLE_FOLDED$1: + return '>' + blockHeader$1(string, state.indent) + + dropEndingNewline$1(indentString$1(foldString$1(string, lineWidth), indent)); + case STYLE_DOUBLE$1: + return '"' + escapeString$1(string) + '"'; default: - throw new exception('impossible error: invalid scalar style'); + throw new YAMLException$2('impossible error: invalid scalar style'); } }()); } // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader(string, indentPerLevel) { - var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; +function blockHeader$1(string, indentPerLevel) { + var indentIndicator = needIndentIndicator$1(string) ? String(indentPerLevel) : ''; // note the special case: the string '\n' counts as a "trailing" empty line. var clip = string[string.length - 1] === '\n'; @@ -3567,13 +3626,13 @@ function blockHeader(string, indentPerLevel) { } // (See the note for writeScalar.) -function dropEndingNewline(string) { +function dropEndingNewline$1(string) { return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; } // Note: a long line without a suitable break point will exceed the width limit. // Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString(string, width) { +function foldString$1(string, width) { // In folded style, $k$ consecutive newlines output as $k+1$ newlines— // unless they're before or after a more-indented line, or at the very // beginning or end, in which case $k$ maps to $k$. @@ -3585,7 +3644,7 @@ function foldString(string, width) { var nextLF = string.indexOf('\n'); nextLF = nextLF !== -1 ? nextLF : string.length; lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); + return foldLine$1(string.slice(0, nextLF), width); }()); // If we haven't reached the first content line yet, don't add an extra \n. var prevMoreIndented = string[0] === '\n' || string[0] === ' '; @@ -3599,7 +3658,7 @@ function foldString(string, width) { result += prefix + (!prevMoreIndented && !moreIndented && line !== '' ? '\n' : '') - + foldLine(line, width); + + foldLine$1(line, width); prevMoreIndented = moreIndented; } @@ -3610,7 +3669,7 @@ function foldString(string, width) { // Picks the longest line under the limit each time, // otherwise settles for the shortest line over the limit. // NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine(line, width) { +function foldLine$1(line, width) { if (line === '' || line[0] === ' ') return line; // Since a more-indented line adds a \n, breaks can't be followed by a space. @@ -3650,7 +3709,7 @@ function foldLine(line, width) { } // Escapes a double-quoted string. -function escapeString(string) { +function escapeString$1(string) { var result = ''; var char, nextChar; var escapeSeq; @@ -3662,21 +3721,21 @@ function escapeString(string) { nextChar = string.charCodeAt(i + 1); if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) { // Combine the surrogate pair and store it escaped. - result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000); + result += encodeHex$1((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000); // Advance index one extra since we already used that char here. i++; continue; } } - escapeSeq = ESCAPE_SEQUENCES[char]; - result += !escapeSeq && isPrintable(char) + escapeSeq = ESCAPE_SEQUENCES$1[char]; + result += !escapeSeq && isPrintable$1(char) ? string[i] - : escapeSeq || encodeHex(char); + : escapeSeq || encodeHex$1(char); } return result; } -function writeFlowSequence(state, level, object) { +function writeFlowSequence$1(state, level, object) { var _result = '', _tag = state.tag, index, @@ -3684,7 +3743,7 @@ function writeFlowSequence(state, level, object) { for (index = 0, length = object.length; index < length; index += 1) { // Write only valid elements. - if (writeNode(state, level, object[index], false, false)) { + if (writeNode$1(state, level, object[index], false, false)) { if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : ''); _result += state.dump; } @@ -3694,7 +3753,7 @@ function writeFlowSequence(state, level, object) { state.dump = '[' + _result + ']'; } -function writeBlockSequence(state, level, object, compact) { +function writeBlockSequence$1(state, level, object, compact) { var _result = '', _tag = state.tag, index, @@ -3702,12 +3761,12 @@ function writeBlockSequence(state, level, object, compact) { for (index = 0, length = object.length; index < length; index += 1) { // Write only valid elements. - if (writeNode(state, level + 1, object[index], true, true)) { + if (writeNode$1(state, level + 1, object[index], true, true)) { if (!compact || index !== 0) { - _result += generateNextLine(state, level); + _result += generateNextLine$1(state, level); } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + if (state.dump && CHAR_LINE_FEED$1 === state.dump.charCodeAt(0)) { _result += '-'; } else { _result += '- '; @@ -3721,7 +3780,7 @@ function writeBlockSequence(state, level, object, compact) { state.dump = _result || '[]'; // Empty sequence if no valid values. } -function writeFlowMapping(state, level, object) { +function writeFlowMapping$1(state, level, object) { var _result = '', _tag = state.tag, objectKeyList = Object.keys(object), @@ -3741,7 +3800,7 @@ function writeFlowMapping(state, level, object) { objectKey = objectKeyList[index]; objectValue = object[objectKey]; - if (!writeNode(state, level, objectKey, false, false)) { + if (!writeNode$1(state, level, objectKey, false, false)) { continue; // Skip this pair because of invalid key; } @@ -3749,7 +3808,7 @@ function writeFlowMapping(state, level, object) { pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); - if (!writeNode(state, level, objectValue, false, false)) { + if (!writeNode$1(state, level, objectValue, false, false)) { continue; // Skip this pair because of invalid value. } @@ -3763,7 +3822,7 @@ function writeFlowMapping(state, level, object) { state.dump = '{' + _result + '}'; } -function writeBlockMapping(state, level, object, compact) { +function writeBlockMapping$1(state, level, object, compact) { var _result = '', _tag = state.tag, objectKeyList = Object.keys(object), @@ -3783,20 +3842,20 @@ function writeBlockMapping(state, level, object, compact) { objectKeyList.sort(state.sortKeys); } else if (state.sortKeys) { // Something is wrong - throw new exception('sortKeys must be a boolean or a function'); + throw new YAMLException$2('sortKeys must be a boolean or a function'); } for (index = 0, length = objectKeyList.length; index < length; index += 1) { pairBuffer = ''; if (!compact || index !== 0) { - pairBuffer += generateNextLine(state, level); + pairBuffer += generateNextLine$1(state, level); } objectKey = objectKeyList[index]; objectValue = object[objectKey]; - if (!writeNode(state, level + 1, objectKey, true, true, true)) { + if (!writeNode$1(state, level + 1, objectKey, true, true, true)) { continue; // Skip this pair because of invalid key. } @@ -3804,7 +3863,7 @@ function writeBlockMapping(state, level, object, compact) { (state.dump && state.dump.length > 1024); if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + if (state.dump && CHAR_LINE_FEED$1 === state.dump.charCodeAt(0)) { pairBuffer += '?'; } else { pairBuffer += '? '; @@ -3814,14 +3873,14 @@ function writeBlockMapping(state, level, object, compact) { pairBuffer += state.dump; if (explicitPair) { - pairBuffer += generateNextLine(state, level); + pairBuffer += generateNextLine$1(state, level); } - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + if (!writeNode$1(state, level + 1, objectValue, true, explicitPair)) { continue; // Skip this pair because of invalid value. } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + if (state.dump && CHAR_LINE_FEED$1 === state.dump.charCodeAt(0)) { pairBuffer += ':'; } else { pairBuffer += ': '; @@ -3837,7 +3896,7 @@ function writeBlockMapping(state, level, object, compact) { state.dump = _result || '{}'; // Empty mapping if no valid pairs. } -function detectType(state, object, explicit) { +function detectType$1(state, object, explicit) { var _result, typeList, index, length, type, style; typeList = explicit ? state.explicitTypes : state.implicitTypes; @@ -3854,12 +3913,12 @@ function detectType(state, object, explicit) { if (type.represent) { style = state.styleMap[type.tag] || type.defaultStyle; - if (_toString$2.call(type.represent) === '[object Function]') { + if (_toString$3.call(type.represent) === '[object Function]') { _result = type.represent(object, style); - } else if (_hasOwnProperty$3.call(type.represent, style)) { + } else if (_hasOwnProperty$4.call(type.represent, style)) { _result = type.represent[style](object, style); } else { - throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + throw new YAMLException$2('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); } state.dump = _result; @@ -3875,15 +3934,15 @@ function detectType(state, object, explicit) { // Serializes `object` and writes it to global `result`. // Returns true on success, or false on invalid object. // -function writeNode(state, level, object, block, compact, iskey) { +function writeNode$1(state, level, object, block, compact, iskey) { state.tag = null; state.dump = object; - if (!detectType(state, object, false)) { - detectType(state, object, true); + if (!detectType$1(state, object, false)) { + detectType$1(state, object, true); } - var type = _toString$2.call(state.dump); + var type = _toString$3.call(state.dump); if (block) { block = (state.flowLevel < 0 || state.flowLevel > level); @@ -3910,12 +3969,12 @@ function writeNode(state, level, object, block, compact, iskey) { } if (type === '[object Object]') { if (block && (Object.keys(state.dump).length !== 0)) { - writeBlockMapping(state, level, state.dump, compact); + writeBlockMapping$1(state, level, state.dump, compact); if (duplicate) { state.dump = '&ref_' + duplicateIndex + state.dump; } } else { - writeFlowMapping(state, level, state.dump); + writeFlowMapping$1(state, level, state.dump); if (duplicate) { state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; } @@ -3923,23 +3982,23 @@ function writeNode(state, level, object, block, compact, iskey) { } else if (type === '[object Array]') { var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level; if (block && (state.dump.length !== 0)) { - writeBlockSequence(state, arrayLevel, state.dump, compact); + writeBlockSequence$1(state, arrayLevel, state.dump, compact); if (duplicate) { state.dump = '&ref_' + duplicateIndex + state.dump; } } else { - writeFlowSequence(state, arrayLevel, state.dump); + writeFlowSequence$1(state, arrayLevel, state.dump); if (duplicate) { state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; } } } else if (type === '[object String]') { if (state.tag !== '?') { - writeScalar(state, state.dump, level, iskey); + writeScalar$1(state, state.dump, level, iskey); } } else { if (state.skipInvalid) return false; - throw new exception('unacceptable kind of an object to dump ' + type); + throw new YAMLException$2('unacceptable kind of an object to dump ' + type); } if (state.tag !== null && state.tag !== '?') { @@ -3950,13 +4009,13 @@ function writeNode(state, level, object, block, compact, iskey) { return true; } -function getDuplicateReferences(object, state) { +function getDuplicateReferences$1(object, state) { var objects = [], duplicatesIndexes = [], index, length; - inspectNode(object, objects, duplicatesIndexes); + inspectNode$1(object, objects, duplicatesIndexes); for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { state.duplicates.push(objects[duplicatesIndexes[index]]); @@ -3964,7 +4023,7 @@ function getDuplicateReferences(object, state) { state.usedDuplicates = new Array(length); } -function inspectNode(object, objects, duplicatesIndexes) { +function inspectNode$1(object, objects, duplicatesIndexes) { var objectKeyList, index, length; @@ -3980,42 +4039,41 @@ function inspectNode(object, objects, duplicatesIndexes) { if (Array.isArray(object)) { for (index = 0, length = object.length; index < length; index += 1) { - inspectNode(object[index], objects, duplicatesIndexes); + inspectNode$1(object[index], objects, duplicatesIndexes); } } else { objectKeyList = Object.keys(object); for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + inspectNode$1(object[objectKeyList[index]], objects, duplicatesIndexes); } } } } } -function dump(input, options) { +function dump$2(input, options) { options = options || {}; - var state = new State$1(options); + var state = new State$2(options); - if (!state.noRefs) getDuplicateReferences(input, state); + if (!state.noRefs) getDuplicateReferences$1(input, state); - if (writeNode(state, 0, input, true, true)) return state.dump + '\n'; + if (writeNode$1(state, 0, input, true, true)) return state.dump + '\n'; return ''; } -function safeDump(input, options) { - return dump(input, common.extend({ schema: default_safe }, options)); +function safeDump$1(input, options) { + return dump$2(input, common$5.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); } -var dump_1 = dump; -var safeDump_1 = safeDump; +dumper$2.dump = dump$2; +dumper$2.safeDump = safeDump$1; + +var loader$1 = loader$2; +var dumper$1 = dumper$2; -var dumper = { - dump: dump_1, - safeDump: safeDump_1 -}; function deprecated(name) { return function () { @@ -4024,59 +4082,38 @@ function deprecated(name) { } -var Type$1 = type; -var Schema$1 = schema; -var FAILSAFE_SCHEMA = failsafe; -var JSON_SCHEMA = json; -var CORE_SCHEMA = core; -var DEFAULT_SAFE_SCHEMA = default_safe; -var DEFAULT_FULL_SCHEMA = default_full; -var load$1 = loader.load; -var loadAll$1 = loader.loadAll; -var safeLoad$1 = loader.safeLoad; -var safeLoadAll$1 = loader.safeLoadAll; -var dump$1 = dumper.dump; -var safeDump$1 = dumper.safeDump; -var YAMLException$1 = exception; +jsYaml$2.Type = type$1; +jsYaml$2.Schema = schema$2; +jsYaml$2.FAILSAFE_SCHEMA = failsafe$1; +jsYaml$2.JSON_SCHEMA = json$3; +jsYaml$2.CORE_SCHEMA = core$4; +jsYaml$2.DEFAULT_SAFE_SCHEMA = default_safe; +jsYaml$2.DEFAULT_FULL_SCHEMA = default_full; +jsYaml$2.load = loader$1.load; +jsYaml$2.loadAll = loader$1.loadAll; +jsYaml$2.safeLoad = loader$1.safeLoad; +jsYaml$2.safeLoadAll = loader$1.safeLoadAll; +jsYaml$2.dump = dumper$1.dump; +jsYaml$2.safeDump = dumper$1.safeDump; +jsYaml$2.YAMLException = exception$1; // Deprecated schema names from JS-YAML 2.0.x -var MINIMAL_SCHEMA = failsafe; -var SAFE_SCHEMA = default_safe; -var DEFAULT_SCHEMA = default_full; +jsYaml$2.MINIMAL_SCHEMA = failsafe$1; +jsYaml$2.SAFE_SCHEMA = default_safe; +jsYaml$2.DEFAULT_SCHEMA = default_full; // Deprecated functions from JS-YAML 1.x.x -var scan = deprecated('scan'); -var parse = deprecated('parse'); -var compose = deprecated('compose'); -var addConstructor = deprecated('addConstructor'); +jsYaml$2.scan = deprecated('scan'); +jsYaml$2.parse = deprecated('parse'); +jsYaml$2.compose = deprecated('compose'); +jsYaml$2.addConstructor = deprecated('addConstructor'); + +var yaml$1 = jsYaml$2; -var jsYaml = { - Type: Type$1, - Schema: Schema$1, - FAILSAFE_SCHEMA: FAILSAFE_SCHEMA, - JSON_SCHEMA: JSON_SCHEMA, - CORE_SCHEMA: CORE_SCHEMA, - DEFAULT_SAFE_SCHEMA: DEFAULT_SAFE_SCHEMA, - DEFAULT_FULL_SCHEMA: DEFAULT_FULL_SCHEMA, - load: load$1, - loadAll: loadAll$1, - safeLoad: safeLoad$1, - safeLoadAll: safeLoadAll$1, - dump: dump$1, - safeDump: safeDump$1, - YAMLException: YAMLException$1, - MINIMAL_SCHEMA: MINIMAL_SCHEMA, - SAFE_SCHEMA: SAFE_SCHEMA, - DEFAULT_SCHEMA: DEFAULT_SCHEMA, - scan: scan, - parse: parse, - compose: compose, - addConstructor: addConstructor -}; -var jsYaml$1 = jsYaml; +var jsYaml$1 = yaml$1; -var isArrayish = function isArrayish(obj) { +var isArrayish$2 = function isArrayish(obj) { if (!obj) { return false; } @@ -4085,7 +4122,10 @@ var isArrayish = function isArrayish(obj) { (obj.length >= 0 && obj.splice instanceof Function); }; -var errorEx = function errorEx(name, properties) { +var util$4 = require$$0__default['default']; +var isArrayish$1 = isArrayish$2; + +var errorEx$1 = function errorEx(name, properties) { if (!name || name.constructor !== String) { properties = name || {}; name = Error.name; @@ -4120,7 +4160,7 @@ var errorEx = function errorEx(name, properties) { if ('message' in modifier) { newMessage = modifier.message(this[key], newMessage) || newMessage; - if (!isArrayish(newMessage)) { + if (!isArrayish$1(newMessage)) { newMessage = [newMessage]; } } @@ -4186,13 +4226,13 @@ var errorEx = function errorEx(name, properties) { Object.setPrototypeOf(errorExError.prototype, Error.prototype); Object.setPrototypeOf(errorExError, Error); } else { - util__default['default'].inherits(errorExError, Error); + util$4.inherits(errorExError, Error); } return errorExError; }; -errorEx.append = function (str, def) { +errorEx$1.append = function (str, def) { return { message: function (v, message) { v = v || def; @@ -4206,7 +4246,7 @@ errorEx.append = function (str, def) { }; }; -errorEx.line = function (str, def) { +errorEx$1.line = function (str, def) { return { line: function (v) { v = v || def; @@ -4220,7 +4260,7 @@ errorEx.line = function (str, def) { }; }; -var errorEx_1 = errorEx; +var errorEx_1 = errorEx$1; const hexify = char => { const h = char.charCodeAt(0).toString(16).toUpperCase(); @@ -4293,7 +4333,7 @@ const kNewline = Symbol.for('newline'); const formatRE = /^\s*[{\[]((?:\r?\n)+)([\s\t]*)/; const emptyRE = /^(?:\{\}|\[\])((?:\r?\n)+)?$/; -const parseJson = (txt, reviver, context) => { +const parseJson$1 = (txt, reviver, context) => { const parseText = stripBOM(txt); context = context || 20; try { @@ -4324,7 +4364,7 @@ const parseJson = (txt, reviver, context) => { }) } - throw new JSONParseError(e, parseText, context, parseJson) + throw new JSONParseError(e, parseText, context, parseJson$1) } }; @@ -4333,10 +4373,10 @@ const parseJson = (txt, reviver, context) => { // translates it to FEFF, the UTF-16 BOM. const stripBOM = txt => String(txt).replace(/^\uFEFF/, ''); -var jsonParseEvenBetterErrors = parseJson; -parseJson.JSONParseError = JSONParseError; +var jsonParseEvenBetterErrors = parseJson$1; +parseJson$1.JSONParseError = JSONParseError; -parseJson.noExceptions = (txt, reviver) => { +parseJson$1.noExceptions = (txt, reviver) => { try { return JSON.parse(stripBOM(txt), reviver) } catch (e) {} @@ -4344,7 +4384,7 @@ parseJson.noExceptions = (txt, reviver) => { var LF = '\n'; var CR = '\r'; -var LinesAndColumns = (function () { +var LinesAndColumns$1 = (function () { function LinesAndColumns(string) { this.string = string; var offsets = [0]; @@ -4398,21 +4438,31 @@ var LinesAndColumns = (function () { return LinesAndColumns; }()); -var dist = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': LinesAndColumns +var dist$2 = /*#__PURE__*/Object.freeze({ + __proto__: null, + 'default': LinesAndColumns$1 }); +var require$$2 = /*@__PURE__*/getAugmentedNamespace(dist$2); + +var lib$9 = {}; + +var lib$8 = {}; + +var jsTokens = {}; + // Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell // License: MIT. (See LICENSE.) - +Object.defineProperty(jsTokens, "__esModule", { + value: true +}); // This regex comes from regex.coffee, and is inserted here by generate-index.js // (run `npm run build`). -var _default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; +jsTokens.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; -var matchToToken = function(match) { +jsTokens.matchToToken = function(match) { var token = {type: "invalid", value: match[0], closed: undefined}; if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]); else if (match[ 5]) token.type = "comment"; @@ -4425,14 +4475,16 @@ var matchToToken = function(match) { return token }; -var jsTokens = /*#__PURE__*/Object.defineProperty({ - default: _default, - matchToToken: matchToToken -}, '__esModule', {value: true}); +var lib$7 = {}; -var isIdentifierStart_1 = isIdentifierStart; -var isIdentifierChar_1 = isIdentifierChar; -var isIdentifierName_1 = isIdentifierName; +var identifier = {}; + +Object.defineProperty(identifier, "__esModule", { + value: true +}); +identifier.isIdentifierStart = isIdentifierStart; +identifier.isIdentifierChar = isIdentifierChar; +identifier.isIdentifierName = isIdentifierName; let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); @@ -4485,16 +4537,23 @@ function isIdentifierChar(code) { function isIdentifierName(name) { let isFirst = true; - for (let _i = 0, _Array$from = Array.from(name); _i < _Array$from.length; _i++) { - const char = _Array$from[_i]; - const cp = char.codePointAt(0); + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); + + if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); + + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } if (isFirst) { + isFirst = false; + if (!isIdentifierStart(cp)) { return false; } - - isFirst = false; } else if (!isIdentifierChar(cp)) { return false; } @@ -4503,23 +4562,22 @@ function isIdentifierName(name) { return !isFirst; } -var identifier = /*#__PURE__*/Object.defineProperty({ - isIdentifierStart: isIdentifierStart_1, - isIdentifierChar: isIdentifierChar_1, - isIdentifierName: isIdentifierName_1 -}, '__esModule', {value: true}); +var keyword = {}; -var isReservedWord_1 = isReservedWord; -var isStrictReservedWord_1 = isStrictReservedWord; -var isStrictBindOnlyReservedWord_1 = isStrictBindOnlyReservedWord; -var isStrictBindReservedWord_1 = isStrictBindReservedWord; -var isKeyword_1 = isKeyword; +Object.defineProperty(keyword, "__esModule", { + value: true +}); +keyword.isReservedWord = isReservedWord; +keyword.isStrictReservedWord = isStrictReservedWord; +keyword.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; +keyword.isStrictBindReservedWord = isStrictBindReservedWord; +keyword.isKeyword = isKeyword; const reservedWords = { keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], strictBind: ["eval", "arguments"] }; -const keywords = new Set(reservedWords.keyword); +const keywords$1 = new Set(reservedWords.keyword); const reservedWordsStrictSet = new Set(reservedWords.strict); const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); @@ -4540,18 +4598,10 @@ function isStrictBindReservedWord(word, inModule) { } function isKeyword(word) { - return keywords.has(word); + return keywords$1.has(word); } -var keyword = /*#__PURE__*/Object.defineProperty({ - isReservedWord: isReservedWord_1, - isStrictReservedWord: isStrictReservedWord_1, - isStrictBindOnlyReservedWord: isStrictBindOnlyReservedWord_1, - isStrictBindReservedWord: isStrictBindReservedWord_1, - isKeyword: isKeyword_1 -}, '__esModule', {value: true}); - -var lib = createCommonjsModule(function (module, exports) { +(function (exports) { Object.defineProperty(exports, "__esModule", { value: true @@ -4559,56 +4609,62 @@ Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, "isIdentifierName", { enumerable: true, get: function () { - return identifier.isIdentifierName; + return _identifier.isIdentifierName; } }); Object.defineProperty(exports, "isIdentifierChar", { enumerable: true, get: function () { - return identifier.isIdentifierChar; + return _identifier.isIdentifierChar; } }); Object.defineProperty(exports, "isIdentifierStart", { enumerable: true, get: function () { - return identifier.isIdentifierStart; + return _identifier.isIdentifierStart; } }); Object.defineProperty(exports, "isReservedWord", { enumerable: true, get: function () { - return keyword.isReservedWord; + return _keyword.isReservedWord; } }); Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { enumerable: true, get: function () { - return keyword.isStrictBindOnlyReservedWord; + return _keyword.isStrictBindOnlyReservedWord; } }); Object.defineProperty(exports, "isStrictBindReservedWord", { enumerable: true, get: function () { - return keyword.isStrictBindReservedWord; + return _keyword.isStrictBindReservedWord; } }); Object.defineProperty(exports, "isStrictReservedWord", { enumerable: true, get: function () { - return keyword.isStrictReservedWord; + return _keyword.isStrictReservedWord; } }); Object.defineProperty(exports, "isKeyword", { enumerable: true, get: function () { - return keyword.isKeyword; + return _keyword.isKeyword; } }); -}); + +var _identifier = identifier; + +var _keyword = keyword; +}(lib$7)); + +var chalk$2 = {exports: {}}; var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; -var escapeStringRegexp = function (str) { +var escapeStringRegexp$3 = function (str) { if (typeof str !== 'string') { throw new TypeError('Expected a string'); } @@ -4616,7 +4672,11 @@ var escapeStringRegexp = function (str) { return str.replace(matchOperatorsRe, '\\$&'); }; -var colorName = { +var ansiStyles$2 = {exports: {}}; + +var conversions$5 = {exports: {}}; + +var colorName$1 = { "aliceblue": [240, 248, 255], "antiquewhite": [250, 235, 215], "aqua": [0, 255, 255], @@ -4769,19 +4829,20 @@ var colorName = { /* MIT license */ -var conversions = createCommonjsModule(function (module) { +var cssKeywords$1 = colorName$1; + // NOTE: conversions should only return primitive values (i.e. arrays, or // values that give correct `typeof` results). // do not use box values types (i.e. Number(), String(), etc.) -var reverseKeywords = {}; -for (var key in colorName) { - if (colorName.hasOwnProperty(key)) { - reverseKeywords[colorName[key]] = key; +var reverseKeywords$1 = {}; +for (var key$1 in cssKeywords$1) { + if (cssKeywords$1.hasOwnProperty(key$1)) { + reverseKeywords$1[cssKeywords$1[key$1]] = key$1; } } -var convert = module.exports = { +var convert$H = conversions$5.exports = { rgb: {channels: 3, labels: 'rgb'}, hsl: {channels: 3, labels: 'hsl'}, hsv: {channels: 3, labels: 'hsv'}, @@ -4800,30 +4861,30 @@ var convert = module.exports = { }; // hide .channels and .labels properties -for (var model in convert) { - if (convert.hasOwnProperty(model)) { - if (!('channels' in convert[model])) { +for (var model in convert$H) { + if (convert$H.hasOwnProperty(model)) { + if (!('channels' in convert$H[model])) { throw new Error('missing channels property: ' + model); } - if (!('labels' in convert[model])) { + if (!('labels' in convert$H[model])) { throw new Error('missing channel labels property: ' + model); } - if (convert[model].labels.length !== convert[model].channels) { + if (convert$H[model].labels.length !== convert$H[model].channels) { throw new Error('channel and label counts mismatch: ' + model); } - var channels = convert[model].channels; - var labels = convert[model].labels; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], 'channels', {value: channels}); - Object.defineProperty(convert[model], 'labels', {value: labels}); + var channels = convert$H[model].channels; + var labels$1 = convert$H[model].labels; + delete convert$H[model].channels; + delete convert$H[model].labels; + Object.defineProperty(convert$H[model], 'channels', {value: channels}); + Object.defineProperty(convert$H[model], 'labels', {value: labels$1}); } } -convert.rgb.hsl = function (rgb) { +convert$H.rgb.hsl = function (rgb) { var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; @@ -4863,7 +4924,7 @@ convert.rgb.hsl = function (rgb) { return [h, s * 100, l * 100]; }; -convert.rgb.hsv = function (rgb) { +convert$H.rgb.hsv = function (rgb) { var rdif; var gdif; var bdif; @@ -4908,11 +4969,11 @@ convert.rgb.hsv = function (rgb) { ]; }; -convert.rgb.hwb = function (rgb) { +convert$H.rgb.hwb = function (rgb) { var r = rgb[0]; var g = rgb[1]; var b = rgb[2]; - var h = convert.rgb.hsl(rgb)[0]; + var h = convert$H.rgb.hsl(rgb)[0]; var w = 1 / 255 * Math.min(r, Math.min(g, b)); b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); @@ -4920,7 +4981,7 @@ convert.rgb.hwb = function (rgb) { return [h, w * 100, b * 100]; }; -convert.rgb.cmyk = function (rgb) { +convert$H.rgb.cmyk = function (rgb) { var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; @@ -4940,7 +5001,7 @@ convert.rgb.cmyk = function (rgb) { /** * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance * */ -function comparativeDistance(x, y) { +function comparativeDistance$1(x, y) { return ( Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + @@ -4948,8 +5009,8 @@ function comparativeDistance(x, y) { ); } -convert.rgb.keyword = function (rgb) { - var reversed = reverseKeywords[rgb]; +convert$H.rgb.keyword = function (rgb) { + var reversed = reverseKeywords$1[rgb]; if (reversed) { return reversed; } @@ -4957,12 +5018,12 @@ convert.rgb.keyword = function (rgb) { var currentClosestDistance = Infinity; var currentClosestKeyword; - for (var keyword in colorName) { - if (colorName.hasOwnProperty(keyword)) { - var value = colorName[keyword]; + for (var keyword in cssKeywords$1) { + if (cssKeywords$1.hasOwnProperty(keyword)) { + var value = cssKeywords$1[keyword]; // Compute comparative distance - var distance = comparativeDistance(rgb, value); + var distance = comparativeDistance$1(rgb, value); // Check if its less, if so set as closest if (distance < currentClosestDistance) { @@ -4975,11 +5036,11 @@ convert.rgb.keyword = function (rgb) { return currentClosestKeyword; }; -convert.keyword.rgb = function (keyword) { - return colorName[keyword]; +convert$H.keyword.rgb = function (keyword) { + return cssKeywords$1[keyword]; }; -convert.rgb.xyz = function (rgb) { +convert$H.rgb.xyz = function (rgb) { var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; @@ -4996,8 +5057,8 @@ convert.rgb.xyz = function (rgb) { return [x * 100, y * 100, z * 100]; }; -convert.rgb.lab = function (rgb) { - var xyz = convert.rgb.xyz(rgb); +convert$H.rgb.lab = function (rgb) { + var xyz = convert$H.rgb.xyz(rgb); var x = xyz[0]; var y = xyz[1]; var z = xyz[2]; @@ -5020,7 +5081,7 @@ convert.rgb.lab = function (rgb) { return [l, a, b]; }; -convert.hsl.rgb = function (hsl) { +convert$H.hsl.rgb = function (hsl) { var h = hsl[0] / 360; var s = hsl[1] / 100; var l = hsl[2] / 100; @@ -5069,7 +5130,7 @@ convert.hsl.rgb = function (hsl) { return rgb; }; -convert.hsl.hsv = function (hsl) { +convert$H.hsl.hsv = function (hsl) { var h = hsl[0]; var s = hsl[1] / 100; var l = hsl[2] / 100; @@ -5087,7 +5148,7 @@ convert.hsl.hsv = function (hsl) { return [h, sv * 100, v * 100]; }; -convert.hsv.rgb = function (hsv) { +convert$H.hsv.rgb = function (hsv) { var h = hsv[0] / 60; var s = hsv[1] / 100; var v = hsv[2] / 100; @@ -5115,7 +5176,7 @@ convert.hsv.rgb = function (hsv) { } }; -convert.hsv.hsl = function (hsv) { +convert$H.hsv.hsl = function (hsv) { var h = hsv[0]; var s = hsv[1] / 100; var v = hsv[2] / 100; @@ -5135,7 +5196,7 @@ convert.hsv.hsl = function (hsv) { }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb -convert.hwb.rgb = function (hwb) { +convert$H.hwb.rgb = function (hwb) { var h = hwb[0] / 360; var wh = hwb[1] / 100; var bl = hwb[2] / 100; @@ -5178,7 +5239,7 @@ convert.hwb.rgb = function (hwb) { return [r * 255, g * 255, b * 255]; }; -convert.cmyk.rgb = function (cmyk) { +convert$H.cmyk.rgb = function (cmyk) { var c = cmyk[0] / 100; var m = cmyk[1] / 100; var y = cmyk[2] / 100; @@ -5194,7 +5255,7 @@ convert.cmyk.rgb = function (cmyk) { return [r * 255, g * 255, b * 255]; }; -convert.xyz.rgb = function (xyz) { +convert$H.xyz.rgb = function (xyz) { var x = xyz[0] / 100; var y = xyz[1] / 100; var z = xyz[2] / 100; @@ -5226,7 +5287,7 @@ convert.xyz.rgb = function (xyz) { return [r * 255, g * 255, b * 255]; }; -convert.xyz.lab = function (xyz) { +convert$H.xyz.lab = function (xyz) { var x = xyz[0]; var y = xyz[1]; var z = xyz[2]; @@ -5249,7 +5310,7 @@ convert.xyz.lab = function (xyz) { return [l, a, b]; }; -convert.lab.xyz = function (lab) { +convert$H.lab.xyz = function (lab) { var l = lab[0]; var a = lab[1]; var b = lab[2]; @@ -5275,7 +5336,7 @@ convert.lab.xyz = function (lab) { return [x, y, z]; }; -convert.lab.lch = function (lab) { +convert$H.lab.lch = function (lab) { var l = lab[0]; var a = lab[1]; var b = lab[2]; @@ -5295,7 +5356,7 @@ convert.lab.lch = function (lab) { return [l, c, h]; }; -convert.lch.lab = function (lch) { +convert$H.lch.lab = function (lch) { var l = lch[0]; var c = lch[1]; var h = lch[2]; @@ -5310,11 +5371,11 @@ convert.lch.lab = function (lch) { return [l, a, b]; }; -convert.rgb.ansi16 = function (args) { +convert$H.rgb.ansi16 = function (args) { var r = args[0]; var g = args[1]; var b = args[2]; - var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization + var value = 1 in arguments ? arguments[1] : convert$H.rgb.hsv(args)[2]; // hsv -> ansi16 optimization value = Math.round(value / 50); @@ -5334,13 +5395,13 @@ convert.rgb.ansi16 = function (args) { return ansi; }; -convert.hsv.ansi16 = function (args) { +convert$H.hsv.ansi16 = function (args) { // optimization here; we already know the value and don't need to get // it converted for us. - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); + return convert$H.rgb.ansi16(convert$H.hsv.rgb(args), args[2]); }; -convert.rgb.ansi256 = function (args) { +convert$H.rgb.ansi256 = function (args) { var r = args[0]; var g = args[1]; var b = args[2]; @@ -5367,7 +5428,7 @@ convert.rgb.ansi256 = function (args) { return ansi; }; -convert.ansi16.rgb = function (args) { +convert$H.ansi16.rgb = function (args) { var color = args % 10; // handle greyscale @@ -5389,7 +5450,7 @@ convert.ansi16.rgb = function (args) { return [r, g, b]; }; -convert.ansi256.rgb = function (args) { +convert$H.ansi256.rgb = function (args) { // handle greyscale if (args >= 232) { var c = (args - 232) * 10 + 8; @@ -5406,7 +5467,7 @@ convert.ansi256.rgb = function (args) { return [r, g, b]; }; -convert.rgb.hex = function (args) { +convert$H.rgb.hex = function (args) { var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); @@ -5415,7 +5476,7 @@ convert.rgb.hex = function (args) { return '000000'.substring(string.length) + string; }; -convert.hex.rgb = function (args) { +convert$H.hex.rgb = function (args) { var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); if (!match) { return [0, 0, 0]; @@ -5437,7 +5498,7 @@ convert.hex.rgb = function (args) { return [r, g, b]; }; -convert.rgb.hcg = function (rgb) { +convert$H.rgb.hcg = function (rgb) { var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; @@ -5471,7 +5532,7 @@ convert.rgb.hcg = function (rgb) { return [hue * 360, chroma * 100, grayscale * 100]; }; -convert.hsl.hcg = function (hsl) { +convert$H.hsl.hcg = function (hsl) { var s = hsl[1] / 100; var l = hsl[2] / 100; var c = 1; @@ -5490,7 +5551,7 @@ convert.hsl.hcg = function (hsl) { return [hsl[0], c * 100, f * 100]; }; -convert.hsv.hcg = function (hsv) { +convert$H.hsv.hcg = function (hsv) { var s = hsv[1] / 100; var v = hsv[2] / 100; @@ -5504,7 +5565,7 @@ convert.hsv.hcg = function (hsv) { return [hsv[0], c * 100, f * 100]; }; -convert.hcg.rgb = function (hcg) { +convert$H.hcg.rgb = function (hcg) { var h = hcg[0] / 360; var c = hcg[1] / 100; var g = hcg[2] / 100; @@ -5543,7 +5604,7 @@ convert.hcg.rgb = function (hcg) { ]; }; -convert.hcg.hsv = function (hcg) { +convert$H.hcg.hsv = function (hcg) { var c = hcg[1] / 100; var g = hcg[2] / 100; @@ -5557,7 +5618,7 @@ convert.hcg.hsv = function (hcg) { return [hcg[0], f * 100, v * 100]; }; -convert.hcg.hsl = function (hcg) { +convert$H.hcg.hsl = function (hcg) { var c = hcg[1] / 100; var g = hcg[2] / 100; @@ -5574,14 +5635,14 @@ convert.hcg.hsl = function (hcg) { return [hcg[0], s * 100, l * 100]; }; -convert.hcg.hwb = function (hcg) { +convert$H.hcg.hwb = function (hcg) { var c = hcg[1] / 100; var g = hcg[2] / 100; var v = c + g * (1.0 - c); return [hcg[0], (v - c) * 100, (1 - v) * 100]; }; -convert.hwb.hcg = function (hwb) { +convert$H.hwb.hcg = function (hwb) { var w = hwb[1] / 100; var b = hwb[2] / 100; var v = 1 - b; @@ -5595,35 +5656,35 @@ convert.hwb.hcg = function (hwb) { return [hwb[0], c * 100, g * 100]; }; -convert.apple.rgb = function (apple) { +convert$H.apple.rgb = function (apple) { return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; }; -convert.rgb.apple = function (rgb) { +convert$H.rgb.apple = function (rgb) { return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; }; -convert.gray.rgb = function (args) { +convert$H.gray.rgb = function (args) { return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; }; -convert.gray.hsl = convert.gray.hsv = function (args) { +convert$H.gray.hsl = convert$H.gray.hsv = function (args) { return [0, 0, args[0]]; }; -convert.gray.hwb = function (gray) { +convert$H.gray.hwb = function (gray) { return [0, 100, gray[0]]; }; -convert.gray.cmyk = function (gray) { +convert$H.gray.cmyk = function (gray) { return [0, 0, 0, gray[0]]; }; -convert.gray.lab = function (gray) { +convert$H.gray.lab = function (gray) { return [gray[0], 0, 0]; }; -convert.gray.hex = function (gray) { +convert$H.gray.hex = function (gray) { var val = Math.round(gray[0] / 100 * 255) & 0xFF; var integer = (val << 16) + (val << 8) + val; @@ -5631,11 +5692,12 @@ convert.gray.hex = function (gray) { return '000000'.substring(string.length) + string; }; -convert.rgb.gray = function (rgb) { +convert$H.rgb.gray = function (rgb) { var val = (rgb[0] + rgb[1] + rgb[2]) / 3; return [val / 255 * 100]; }; -}); + +var conversions$4 = conversions$5.exports; /* this function routes a model to all other models. @@ -5648,10 +5710,10 @@ convert.rgb.gray = function (rgb) { conversions that are not possible simply are not included. */ -function buildGraph() { +function buildGraph$1() { var graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3 - var models = Object.keys(conversions); + var models = Object.keys(conversions$4); for (var len = models.length, i = 0; i < len; i++) { graph[models[i]] = { @@ -5666,15 +5728,15 @@ function buildGraph() { } // https://en.wikipedia.org/wiki/Breadth-first_search -function deriveBFS(fromModel) { - var graph = buildGraph(); +function deriveBFS$1(fromModel) { + var graph = buildGraph$1(); var queue = [fromModel]; // unshift -> queue -> pop graph[fromModel].distance = 0; while (queue.length) { var current = queue.pop(); - var adjacents = Object.keys(conversions[current]); + var adjacents = Object.keys(conversions$4[current]); for (var len = adjacents.length, i = 0; i < len; i++) { var adjacent = adjacents[i]; @@ -5691,20 +5753,20 @@ function deriveBFS(fromModel) { return graph; } -function link(from, to) { +function link$2(from, to) { return function (args) { return to(from(args)); }; } -function wrapConversion(toModel, graph) { +function wrapConversion$1(toModel, graph) { var path = [graph[toModel].parent, toModel]; - var fn = conversions[graph[toModel].parent][toModel]; + var fn = conversions$4[graph[toModel].parent][toModel]; var cur = graph[toModel].parent; while (graph[cur].parent) { path.unshift(graph[cur].parent); - fn = link(conversions[graph[cur].parent][cur], fn); + fn = link$2(conversions$4[graph[cur].parent][cur], fn); cur = graph[cur].parent; } @@ -5712,8 +5774,8 @@ function wrapConversion(toModel, graph) { return fn; } -var route = function (fromModel) { - var graph = deriveBFS(fromModel); +var route$3 = function (fromModel) { + var graph = deriveBFS$1(fromModel); var conversion = {}; var models = Object.keys(graph); @@ -5726,17 +5788,20 @@ var route = function (fromModel) { continue; } - conversion[toModel] = wrapConversion(toModel, graph); + conversion[toModel] = wrapConversion$1(toModel, graph); } return conversion; }; -var convert = {}; +var conversions$3 = conversions$5.exports; +var route$2 = route$3; -var models = Object.keys(conversions); +var convert$G = {}; -function wrapRaw(fn) { +var models$4 = Object.keys(conversions$3); + +function wrapRaw$1(fn) { var wrappedFn = function (args) { if (args === undefined || args === null) { return args; @@ -5757,7 +5822,7 @@ function wrapRaw(fn) { return wrappedFn; } -function wrapRounded(fn) { +function wrapRounded$1(fn) { var wrappedFn = function (args) { if (args === undefined || args === null) { return args; @@ -5789,27 +5854,27 @@ function wrapRounded(fn) { return wrappedFn; } -models.forEach(function (fromModel) { - convert[fromModel] = {}; +models$4.forEach(function (fromModel) { + convert$G[fromModel] = {}; - Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); - Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); + Object.defineProperty(convert$G[fromModel], 'channels', {value: conversions$3[fromModel].channels}); + Object.defineProperty(convert$G[fromModel], 'labels', {value: conversions$3[fromModel].labels}); - var routes = route(fromModel); + var routes = route$2(fromModel); var routeModels = Object.keys(routes); routeModels.forEach(function (toModel) { var fn = routes[toModel]; - convert[fromModel][toModel] = wrapRounded(fn); - convert[fromModel][toModel].raw = wrapRaw(fn); + convert$G[fromModel][toModel] = wrapRounded$1(fn); + convert$G[fromModel][toModel].raw = wrapRaw$1(fn); }); }); -var colorConvert = convert; - -var ansiStyles = createCommonjsModule(function (module) { +var colorConvert$1 = convert$G; +(function (module) { +const colorConvert = colorConvert$1; const wrapAnsi16 = (fn, offset) => function () { const code = fn.apply(colorConvert, arguments); @@ -5973,9 +6038,9 @@ Object.defineProperty(module, 'exports', { enumerable: true, get: assembleStyles }); -}); +}(ansiStyles$2)); -var hasFlag = (flag, argv) => { +var hasFlag$5 = (flag, argv) => { argv = argv || process.argv; const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); const pos = argv.indexOf(prefix + flag); @@ -5983,24 +6048,27 @@ var hasFlag = (flag, argv) => { return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); }; -const env = process.env; +const os$3 = require$$0__default$1['default']; +const hasFlag$4 = hasFlag$5; -let forceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false')) { - forceColor = false; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { - forceColor = true; +const env$2 = process.env; + +let forceColor$2; +if (hasFlag$4('no-color') || + hasFlag$4('no-colors') || + hasFlag$4('color=false')) { + forceColor$2 = false; +} else if (hasFlag$4('color') || + hasFlag$4('colors') || + hasFlag$4('color=true') || + hasFlag$4('color=always')) { + forceColor$2 = true; } -if ('FORCE_COLOR' in env) { - forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; +if ('FORCE_COLOR' in env$2) { + forceColor$2 = env$2.FORCE_COLOR.length === 0 || parseInt(env$2.FORCE_COLOR, 10) !== 0; } -function translateLevel(level) { +function translateLevel$2(level) { if (level === 0) { return false; } @@ -6013,26 +6081,26 @@ function translateLevel(level) { }; } -function supportsColor(stream) { - if (forceColor === false) { +function supportsColor$2(stream) { + if (forceColor$2 === false) { return 0; } - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { + if (hasFlag$4('color=16m') || + hasFlag$4('color=full') || + hasFlag$4('color=truecolor')) { return 3; } - if (hasFlag('color=256')) { + if (hasFlag$4('color=256')) { return 2; } - if (stream && !stream.isTTY && forceColor !== true) { + if (stream && !stream.isTTY && forceColor$2 !== true) { return 0; } - const min = forceColor ? 1 : 0; + const min = forceColor$2 ? 1 : 0; if (process.platform === 'win32') { // Node.js 7.5.0 is the first version of Node.js to include a patch to @@ -6041,7 +6109,7 @@ function supportsColor(stream) { // release, and Node.js 7 is not. 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__default['default'].release().split('.'); + const osRelease = os$3.release().split('.'); if ( Number(process.versions.node.split('.')[0]) >= 8 && Number(osRelease[0]) >= 10 && @@ -6053,26 +6121,26 @@ function supportsColor(stream) { return 1; } - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + if ('CI' in env$2) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env$2) || env$2.CI_NAME === 'codeship') { return 1; } return min; } - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + if ('TEAMCITY_VERSION' in env$2) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$2.TEAMCITY_VERSION) ? 1 : 0; } - if (env.COLORTERM === 'truecolor') { + if (env$2.COLORTERM === 'truecolor') { return 3; } - if ('TERM_PROGRAM' in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + if ('TERM_PROGRAM' in env$2) { + const version = parseInt((env$2.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - switch (env.TERM_PROGRAM) { + switch (env$2.TERM_PROGRAM) { case 'iTerm.app': return version >= 3 ? 3 : 2; case 'Apple_Terminal': @@ -6081,42 +6149,42 @@ function supportsColor(stream) { } } - if (/-256(color)?$/i.test(env.TERM)) { + if (/-256(color)?$/i.test(env$2.TERM)) { return 2; } - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$2.TERM)) { return 1; } - if ('COLORTERM' in env) { + if ('COLORTERM' in env$2) { return 1; } - if (env.TERM === 'dumb') { + if (env$2.TERM === 'dumb') { return min; } return min; } -function getSupportLevel(stream) { - const level = supportsColor(stream); - return translateLevel(level); +function getSupportLevel$2(stream) { + const level = supportsColor$2(stream); + return translateLevel$2(level); } -var supportsColor_1 = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) +var supportsColor_1$2 = { + supportsColor: getSupportLevel$2, + stdout: getSupportLevel$2(process.stdout), + stderr: getSupportLevel$2(process.stderr) }; -const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; -const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; -const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; +const TEMPLATE_REGEX$1 = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; +const STYLE_REGEX$1 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; +const STRING_REGEX$1 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; +const ESCAPE_REGEX$1 = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; -const ESCAPES = new Map([ +const ESCAPES$1 = new Map([ ['n', '\n'], ['r', '\r'], ['t', '\t'], @@ -6129,15 +6197,15 @@ const ESCAPES = new Map([ ['a', '\u0007'] ]); -function unescape(c) { +function unescape$1(c) { if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) { return String.fromCharCode(parseInt(c.slice(1), 16)); } - return ESCAPES.get(c) || c; + return ESCAPES$1.get(c) || c; } -function parseArguments(name, args) { +function parseArguments$1(name, args) { const results = []; const chunks = args.trim().split(/\s*,\s*/g); let matches; @@ -6145,8 +6213,8 @@ function parseArguments(name, args) { for (const chunk of chunks) { if (!isNaN(chunk)) { results.push(Number(chunk)); - } else if ((matches = chunk.match(STRING_REGEX))) { - results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); + } else if ((matches = chunk.match(STRING_REGEX$1))) { + results.push(matches[2].replace(ESCAPE_REGEX$1, (m, escape, chr) => escape ? unescape$1(escape) : chr)); } else { throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); } @@ -6155,17 +6223,17 @@ function parseArguments(name, args) { return results; } -function parseStyle(style) { - STYLE_REGEX.lastIndex = 0; +function parseStyle$1(style) { + STYLE_REGEX$1.lastIndex = 0; const results = []; let matches; - while ((matches = STYLE_REGEX.exec(style)) !== null) { + while ((matches = STYLE_REGEX$1.exec(style)) !== null) { const name = matches[1]; if (matches[2]) { - const args = parseArguments(name, matches[2]); + const args = parseArguments$1(name, matches[2]); results.push([name].concat(args)); } else { results.push([name]); @@ -6175,7 +6243,7 @@ function parseStyle(style) { return results; } -function buildStyle(chalk, styles) { +function buildStyle$1(chalk, styles) { const enabled = {}; for (const layer of styles) { @@ -6202,26 +6270,26 @@ function buildStyle(chalk, styles) { return current; } -var templates = (chalk, tmp) => { +var templates$1 = (chalk, tmp) => { const styles = []; const chunks = []; let chunk = []; // eslint-disable-next-line max-params - tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { + tmp.replace(TEMPLATE_REGEX$1, (m, escapeChar, inverse, style, close, chr) => { if (escapeChar) { - chunk.push(unescape(escapeChar)); + chunk.push(unescape$1(escapeChar)); } else if (style) { const str = chunk.join(''); chunk = []; - chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); - styles.push({inverse, styles: parseStyle(style)}); + chunks.push(styles.length === 0 ? str : buildStyle$1(chalk, styles)(str)); + styles.push({inverse, styles: parseStyle$1(style)}); } else if (close) { if (styles.length === 0) { throw new Error('Found extraneous } in Chalk template literal'); } - chunks.push(buildStyle(chalk, styles)(chunk.join(''))); + chunks.push(buildStyle$1(chalk, styles)(chunk.join(''))); chunk = []; styles.pop(); } else { @@ -6239,12 +6307,12 @@ var templates = (chalk, tmp) => { return chunks.join(''); }; -var chalk = createCommonjsModule(function (module) { - - -const stdoutColor = supportsColor_1.stdout; - +(function (module) { +const escapeStringRegexp = escapeStringRegexp$3; +const ansiStyles = ansiStyles$2.exports; +const stdoutColor = supportsColor_1$2.stdout; +const template = templates$1; const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); @@ -6459,7 +6527,7 @@ function chalkTag(chalk, strings) { parts.push(String(strings.raw[i])); } - return templates(chalk, parts.join('')); + return template(chalk, parts.join('')); } Object.defineProperties(Chalk.prototype, styles); @@ -6467,29 +6535,28 @@ Object.defineProperties(Chalk.prototype, styles); module.exports = Chalk(); // eslint-disable-line new-cap module.exports.supportsColor = stdoutColor; module.exports.default = module.exports; // For TypeScript -}); - -var shouldHighlight_1 = shouldHighlight; -var getChalk_1 = getChalk; -var _default$1 = highlight; - -var _jsTokens = _interopRequireWildcard(jsTokens); - +}(chalk$2)); +Object.defineProperty(lib$8, "__esModule", { + value: true +}); +lib$8.shouldHighlight = shouldHighlight; +lib$8.getChalk = getChalk; +lib$8.default = highlight; -var _chalk = _interopRequireDefault(chalk); +var _jsTokens = jsTokens; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _helperValidatorIdentifier = lib$7; -function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } +var _chalk = chalk$2.exports; -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); -function getDefs(chalk) { +function getDefs$1(chalk) { return { keyword: chalk.cyan, capitalized: chalk.yellow, - jsx_tag: chalk.yellow, + jsxIdentifier: chalk.yellow, punctuator: chalk.yellow, number: chalk.magenta, string: chalk.green, @@ -6499,97 +6566,103 @@ function getDefs(chalk) { }; } -const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; -const JSX_TAG = /^[a-z][\w-]*$/i; +const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; const BRACKET = /^[()[\]{}]$/; +let tokenize$3; +{ + const JSX_TAG = /^[a-z][\w-]*$/i; -function getTokenType(match) { - const [offset, text] = match.slice(-2); - const token = (0, _jsTokens.matchToToken)(match); + const getTokenType = function (token, offset, text) { + if (token.type === "name") { + if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { + return "keyword"; + } - if (token.type === "name") { - if ((0, lib.isKeyword)(token.value) || (0, lib.isReservedWord)(token.value)) { - return "keyword"; + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == " colorize(str)).join("\n"); + highlighted += value.split(NEWLINE$1).map(str => colorize(str)).join("\n"); } else { - return args[0]; + highlighted += value; } - }); + } + + return highlighted; } function shouldHighlight(options) { - return _chalk.default.supportsColor || options.forceColor; + return !!_chalk.supportsColor || options.forceColor; } function getChalk(options) { - let chalk = _chalk.default; - - if (options.forceColor) { - chalk = new _chalk.default.constructor({ - enabled: true, - level: 1 - }); - } - - return chalk; + return options.forceColor ? new _chalk.constructor({ + enabled: true, + level: 1 + }) : _chalk; } function highlight(code, options = {}) { if (shouldHighlight(options)) { const chalk = getChalk(options); - const defs = getDefs(chalk); + const defs = getDefs$1(chalk); return highlightTokens(defs, code); } else { return code; } } -var lib$1 = /*#__PURE__*/Object.defineProperty({ - shouldHighlight: shouldHighlight_1, - getChalk: getChalk_1, - default: _default$1 -}, '__esModule', {value: true}); - -var codeFrameColumns_1 = codeFrameColumns; -var default_1 = _default$2; - -var _highlight = _interopRequireWildcard$1(lib$1); - -function _getRequireWildcardCache$1() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache$1 = function () { return cache; }; return cache; } +Object.defineProperty(lib$9, "__esModule", { + value: true +}); +lib$9.codeFrameColumns = codeFrameColumns$1; +lib$9.default = _default$1; -function _interopRequireWildcard$1(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache$1(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +var _highlight = lib$8; let deprecationWarningShown = false; -function getDefs$1(chalk) { +function getDefs(chalk) { return { gutter: chalk.grey, marker: chalk.red.bold, @@ -6597,7 +6670,7 @@ function getDefs$1(chalk) { }; } -const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; function getMarkerLines(loc, source, opts) { const startLoc = Object.assign({ @@ -6662,16 +6735,16 @@ function getMarkerLines(loc, source, opts) { }; } -function codeFrameColumns(rawLines, loc, opts = {}) { +function codeFrameColumns$1(rawLines, loc, opts = {}) { const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); const chalk = (0, _highlight.getChalk)(opts); - const defs = getDefs$1(chalk); + const defs = getDefs(chalk); const maybeHighlight = (chalkFn, string) => { return highlighted ? chalkFn(string) : string; }; - const lines = rawLines.split(NEWLINE$1); + const lines = rawLines.split(NEWLINE); const { start, end, @@ -6680,10 +6753,10 @@ function codeFrameColumns(rawLines, loc, opts = {}) { const hasColumns = loc.start && typeof loc.start.column === "number"; const numberMaxWidth = String(end).length; const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; - let frame = highlightedLines.split(NEWLINE$1).slice(start, end).map((line, index) => { + let frame = highlightedLines.split(NEWLINE).slice(start, end).map((line, index) => { const number = start + 1 + index; const paddedNumber = ` ${number}`.slice(-numberMaxWidth); - const gutter = ` ${paddedNumber} | `; + const gutter = ` ${paddedNumber} |`; const hasMarker = markerLines[number]; const lastMarkerLine = !markerLines[number + 1]; @@ -6693,16 +6766,16 @@ function codeFrameColumns(rawLines, loc, opts = {}) { if (Array.isArray(hasMarker)) { const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); const numberOfMarkers = hasMarker[1] || 1; - markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); + markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); if (lastMarkerLine && opts.message) { markerLine += " " + maybeHighlight(defs.message, opts.message); } } - return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line, markerLine].join(""); + return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); } else { - return ` ${maybeHighlight(defs.gutter, gutter)}${line}`; + return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; } }).join("\n"); @@ -6717,7 +6790,7 @@ function codeFrameColumns(rawLines, loc, opts = {}) { } } -function _default$2(rawLines, lineNumber, colNumber, opts = {}) { +function _default$1(rawLines, lineNumber, colNumber, opts = {}) { if (!deprecationWarningShown) { deprecationWarningShown = true; const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; @@ -6738,25 +6811,20 @@ function _default$2(rawLines, lineNumber, colNumber, opts = {}) { line: lineNumber } }; - return codeFrameColumns(rawLines, location, opts); + return codeFrameColumns$1(rawLines, location, opts); } -var lib$2 = /*#__PURE__*/Object.defineProperty({ - codeFrameColumns: codeFrameColumns_1, - default: default_1 -}, '__esModule', {value: true}); - -var require$$0 = /*@__PURE__*/getAugmentedNamespace(dist); - -const {default: LinesAndColumns$1} = require$$0; -const {codeFrameColumns: codeFrameColumns$1} = lib$2; +const errorEx = errorEx_1; +const fallback = jsonParseEvenBetterErrors; +const {default: LinesAndColumns} = require$$2; +const {codeFrameColumns} = lib$9; -const JSONError = errorEx_1('JSONError', { - fileName: errorEx_1.append('in %s'), - codeFrame: errorEx_1.append('\n\n%s\n') +const JSONError = errorEx('JSONError', { + fileName: errorEx.append('in %s'), + codeFrame: errorEx.append('\n\n%s\n') }); -var parseJson$1 = (string, reviver, filename) => { +const parseJson = (string, reviver, filename) => { if (typeof reviver === 'string') { filename = reviver; reviver = null; @@ -6766,7 +6834,7 @@ var parseJson$1 = (string, reviver, filename) => { try { return JSON.parse(string, reviver); } catch (error) { - jsonParseEvenBetterErrors(string, reviver); + fallback(string, reviver); throw error; } } catch (error) { @@ -6779,11 +6847,11 @@ var parseJson$1 = (string, reviver, filename) => { } if (indexMatch && indexMatch.length > 0) { - const lines = new LinesAndColumns$1(string); + const lines = new LinesAndColumns(string); const index = Number(indexMatch[1]); const location = lines.locationForIndex(index); - const codeFrame = codeFrameColumns$1( + const codeFrame = codeFrameColumns( string, {start: {line: location.line + 1, column: location.column + 1}}, {highlightCode: true} @@ -6796,9 +6864,18 @@ var parseJson$1 = (string, reviver, filename) => { } }; +parseJson.JSONError = JSONError; + +var parseJson_1 = parseJson; + +var src = {exports: {}}; + +var browser = {exports: {}}; + /** * Helpers. */ + var s = 1000; var m = s * 60; var h = m * 60; @@ -6824,7 +6901,7 @@ var ms = function(val, options) { options = options || {}; var type = typeof val; if (type === 'string' && val.length > 0) { - return parse$1(val); + return parse$c(val); } else if (type === 'number' && isFinite(val)) { return options.long ? fmtLong(val) : fmtShort(val); } @@ -6842,7 +6919,7 @@ var ms = function(val, options) { * @api private */ -function parse$1(str) { +function parse$c(str) { str = String(str); if (str.length > 100) { return; @@ -6935,16 +7012,16 @@ function fmtShort(ms) { function fmtLong(ms) { var msAbs = Math.abs(ms); if (msAbs >= d) { - return plural(ms, msAbs, d, 'day'); + return plural$1(ms, msAbs, d, 'day'); } if (msAbs >= h) { - return plural(ms, msAbs, h, 'hour'); + return plural$1(ms, msAbs, h, 'hour'); } if (msAbs >= m) { - return plural(ms, msAbs, m, 'minute'); + return plural$1(ms, msAbs, m, 'minute'); } if (msAbs >= s) { - return plural(ms, msAbs, s, 'second'); + return plural$1(ms, msAbs, s, 'second'); } return ms + ' ms'; } @@ -6953,7 +7030,7 @@ function fmtLong(ms) { * Pluralization helper. */ -function plural(ms, msAbs, n, name) { +function plural$1(ms, msAbs, n, name) { var isPlural = msAbs >= n * 1.5; return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); } @@ -7019,6 +7096,8 @@ function setup(env) { function createDebug(namespace) { let prevTime; let enableOverride = null; + let namespacesCache; + let enabledCache; function debug(...args) { // Disabled? @@ -7079,7 +7158,17 @@ function setup(env) { Object.defineProperty(debug, 'enabled', { enumerable: true, configurable: false, - get: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, set: v => { enableOverride = v; } @@ -7108,6 +7197,7 @@ function setup(env) { */ function enable(namespaces) { createDebug.save(namespaces); + createDebug.namespaces = namespaces; createDebug.names = []; createDebug.skips = []; @@ -7217,11 +7307,11 @@ function setup(env) { return createDebug; } -var common$1 = setup; +var common$4 = setup; /* eslint-env browser */ -var browser = createCommonjsModule(function (module, exports) { +(function (module, exports) { /** * This is the web browser implementation of `debug()`. */ @@ -7474,7 +7564,7 @@ function localstorage() { } } -module.exports = common$1(exports); +module.exports = common$4(exports); const {formatters} = module.exports; @@ -7489,27 +7579,33 @@ formatters.j = function (v) { return '[UnexpectedJSONParseError]: ' + error.message; } }; -}); +}(browser, browser.exports)); -var hasFlag$1 = (flag, argv = process.argv) => { +var node = {exports: {}}; + +var hasFlag$3 = (flag, argv = process.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 os$2 = require$$0__default$1['default']; +const tty = require$$1__default['default']; +const hasFlag$2 = hasFlag$3; + const {env: env$1} = process; let forceColor$1; -if (hasFlag$1('no-color') || - hasFlag$1('no-colors') || - hasFlag$1('color=false') || - hasFlag$1('color=never')) { +if (hasFlag$2('no-color') || + hasFlag$2('no-colors') || + hasFlag$2('color=false') || + hasFlag$2('color=never')) { forceColor$1 = 0; -} else if (hasFlag$1('color') || - hasFlag$1('colors') || - hasFlag$1('color=true') || - hasFlag$1('color=always')) { +} else if (hasFlag$2('color') || + hasFlag$2('colors') || + hasFlag$2('color=true') || + hasFlag$2('color=always')) { forceColor$1 = 1; } @@ -7541,13 +7637,13 @@ function supportsColor$1(haveStream, streamIsTTY) { return 0; } - if (hasFlag$1('color=16m') || - hasFlag$1('color=full') || - hasFlag$1('color=truecolor')) { + if (hasFlag$2('color=16m') || + hasFlag$2('color=full') || + hasFlag$2('color=truecolor')) { return 3; } - if (hasFlag$1('color=256')) { + if (hasFlag$2('color=256')) { return 2; } @@ -7564,7 +7660,7 @@ function supportsColor$1(haveStream, streamIsTTY) { if (process.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__default['default'].release().split('.'); + const osRelease = os$2.release().split('.'); if ( Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586 @@ -7625,15 +7721,18 @@ function getSupportLevel$1(stream) { var supportsColor_1$1 = { supportsColor: getSupportLevel$1, - stdout: translateLevel$1(supportsColor$1(true, tty__default['default'].isatty(1))), - stderr: translateLevel$1(supportsColor$1(true, tty__default['default'].isatty(2))) + stdout: translateLevel$1(supportsColor$1(true, tty.isatty(1))), + stderr: translateLevel$1(supportsColor$1(true, tty.isatty(2))) }; /** * Module dependencies. */ -var node = createCommonjsModule(function (module, exports) { +(function (module, exports) { +const tty = require$$1__default['default']; +const util = require$$0__default['default']; + /** * This is the Node.js implementation of `debug()`. */ @@ -7644,7 +7743,7 @@ exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; -exports.destroy = util__default['default'].deprecate( +exports.destroy = util.deprecate( () => {}, 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' ); @@ -7784,7 +7883,7 @@ exports.inspectOpts = Object.keys(process.env).filter(key => { function useColors() { return 'colors' in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : - tty__default['default'].isatty(process.stderr.fd); + tty.isatty(process.stderr.fd); } /** @@ -7820,7 +7919,7 @@ function getDate() { */ function log(...args) { - return process.stderr.write(util__default['default'].format(...args) + '\n'); + return process.stderr.write(util.format(...args) + '\n'); } /** @@ -7866,7 +7965,7 @@ function init(debug) { } } -module.exports = common$1(exports); +module.exports = common$4(exports); const {formatters} = module.exports; @@ -7876,7 +7975,7 @@ const {formatters} = module.exports; formatters.o = function (v) { this.inspectOpts.colors = this.useColors; - return util__default['default'].inspect(v, this.inspectOpts) + return util.inspect(v, this.inspectOpts) .split('\n') .map(str => str.trim()) .join(' '); @@ -7888,22 +7987,26 @@ formatters.o = function (v) { formatters.O = function (v) { this.inspectOpts.colors = this.useColors; - return util__default['default'].inspect(v, this.inspectOpts); + return util.inspect(v, this.inspectOpts); }; -}); +}(node, node.exports)); /** * Detect Electron renderer / nwjs process, which is node, but we should * treat as a browser. */ -var src = createCommonjsModule(function (module) { if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = browser; + src.exports = browser.exports; } else { - module.exports = node; + src.exports = node.exports; } -}); + +var resolveFrom$1 = {exports: {}}; + +const path$l = require$$0__default$2['default']; +const Module = require$$1__default$1['default']; +const fs$j = require$$0__default$3['default']; const resolveFrom = (fromDirectory, moduleId, silent) => { if (typeof fromDirectory !== 'string') { @@ -7915,10 +8018,10 @@ const resolveFrom = (fromDirectory, moduleId, silent) => { } try { - fromDirectory = fs__default['default'].realpathSync(fromDirectory); + fromDirectory = fs$j.realpathSync(fromDirectory); } catch (error) { if (error.code === 'ENOENT') { - fromDirectory = path__default['default'].resolve(fromDirectory); + fromDirectory = path$l.resolve(fromDirectory); } else if (silent) { return; } else { @@ -7926,12 +8029,12 @@ const resolveFrom = (fromDirectory, moduleId, silent) => { } } - const fromFile = path__default['default'].join(fromDirectory, 'noop.js'); + const fromFile = path$l.join(fromDirectory, 'noop.js'); - const resolveFileName = () => Module__default['default']._resolveFilename(moduleId, { + const resolveFileName = () => Module._resolveFilename(moduleId, { id: fromFile, filename: fromFile, - paths: Module__default['default']._nodeModulePaths(fromDirectory) + paths: Module._nodeModulePaths(fromDirectory) }); if (silent) { @@ -7945,9 +8048,10 @@ const resolveFrom = (fromDirectory, moduleId, silent) => { return resolveFileName(); }; -var resolveFrom_1 = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId); -var silent = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId, true); -resolveFrom_1.silent = silent; +resolveFrom$1.exports = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId); +resolveFrom$1.exports.silent = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId, true); + +var libnpmconfig = {}; class FiggyPudding { constructor (specs, opts, providers) { @@ -8030,7 +8134,7 @@ class FiggyPudding { } } try { - const util = util__default['default']; + const util = require$$0__default['default']; FiggyPudding.prototype[util.inspect.custom] = function (depth, opts) { return ( this[Symbol.toStringTag] + ' ' @@ -8123,8 +8227,8 @@ const proxyHandler = { } }; -var figgyPudding_1 = figgyPudding; -function figgyPudding (specs, opts) { +var figgyPudding_1 = figgyPudding$1; +function figgyPudding$1 (specs, opts) { function factory (...providers) { return new Proxy(new FiggyPudding( specs, @@ -8145,32 +8249,44 @@ function entries (obj) { return Object.keys(obj).map(k => [k, obj[k]]) } -var pathExists = fp => new Promise(resolve => { - fs__default['default'].access(fp, err => { +var findUp$2 = {exports: {}}; + +var locatePath$1 = {exports: {}}; + +var pathExists$1 = {exports: {}}; + +const fs$i = require$$0__default$3['default']; + +pathExists$1.exports = fp => new Promise(resolve => { + fs$i.access(fp, err => { resolve(!err); }); }); -var sync = fp => { +pathExists$1.exports.sync = fp => { try { - fs__default['default'].accessSync(fp); + fs$i.accessSync(fp); return true; } catch (err) { return false; } }; -pathExists.sync = sync; -const pTry = (fn, ...arguments_) => new Promise(resolve => { +var pLimit$2 = {exports: {}}; + +var pTry$2 = {exports: {}}; + +const pTry$1 = (fn, ...arguments_) => new Promise(resolve => { resolve(fn(...arguments_)); }); -var pTry_1 = pTry; +pTry$2.exports = pTry$1; // TODO: remove this in the next major version -var _default$3 = pTry; -pTry_1.default = _default$3; +pTry$2.exports.default = pTry$1; + +const pTry = pTry$2.exports; -const pLimit = concurrency => { +const pLimit$1 = concurrency => { if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) { return Promise.reject(new TypeError('Expected `concurrency` to be a number from 1 and up')); } @@ -8189,7 +8305,7 @@ const pLimit = concurrency => { const run = (fn, resolve, ...args) => { activeCount++; - const result = pTry_1(fn, ...args); + const result = pTry(fn, ...args); resolve(result); @@ -8222,9 +8338,10 @@ const pLimit = concurrency => { return generator; }; -var pLimit_1 = pLimit; -var _default$4 = pLimit; -pLimit_1.default = _default$4; +pLimit$2.exports = pLimit$1; +pLimit$2.exports.default = pLimit$1; + +const pLimit = pLimit$2.exports; class EndError extends Error { constructor(value) { @@ -8237,51 +8354,57 @@ class EndError extends Error { const testElement = (el, tester) => Promise.resolve(el).then(tester); // The input can also be a promise, so we `Promise.all()` them both -const finder = el => Promise.all(el).then(val => val[1] === true && Promise.reject(new EndError(val[0]))); +const finder$1 = el => Promise.all(el).then(val => val[1] === true && Promise.reject(new EndError(val[0]))); -var pLocate = (iterable, tester, opts) => { +var pLocate$1 = (iterable, tester, opts) => { opts = Object.assign({ concurrency: Infinity, preserveOrder: true }, opts); - const limit = pLimit_1(opts.concurrency); + const limit = pLimit(opts.concurrency); // Start all the promises concurrently with optional limit const items = [...iterable].map(el => [el, limit(testElement, el, tester)]); // Check the promises either serially or concurrently - const checkLimit = pLimit_1(opts.preserveOrder ? 1 : Infinity); + const checkLimit = pLimit(opts.preserveOrder ? 1 : Infinity); - return Promise.all(items.map(el => checkLimit(finder, el))) + return Promise.all(items.map(el => checkLimit(finder$1, el))) .then(() => {}) .catch(err => err instanceof EndError ? err.value : Promise.reject(err)); }; -var locatePath = (iterable, options) => { +const path$k = require$$0__default$2['default']; +const pathExists = pathExists$1.exports; +const pLocate = pLocate$1; + +locatePath$1.exports = (iterable, options) => { options = Object.assign({ cwd: process.cwd() }, options); - return pLocate(iterable, el => pathExists(path__default['default'].resolve(options.cwd, el)), options); + return pLocate(iterable, el => pathExists(path$k.resolve(options.cwd, el)), options); }; -var sync$1 = (iterable, options) => { +locatePath$1.exports.sync = (iterable, options) => { options = Object.assign({ cwd: process.cwd() }, options); for (const el of iterable) { - if (pathExists.sync(path__default['default'].resolve(options.cwd, el))) { + if (pathExists.sync(path$k.resolve(options.cwd, el))) { return el; } } }; -locatePath.sync = sync$1; -var findUp = (filename, opts = {}) => { - const startDir = path__default['default'].resolve(opts.cwd || ''); - const {root} = path__default['default'].parse(startDir); +const path$j = require$$0__default$2['default']; +const locatePath = locatePath$1.exports; + +findUp$2.exports = (filename, opts = {}) => { + const startDir = path$j.resolve(opts.cwd || ''); + const {root} = path$j.parse(startDir); const filenames = [].concat(filename); @@ -8289,20 +8412,20 @@ var findUp = (filename, opts = {}) => { (function find(dir) { locatePath(filenames, {cwd: dir}).then(file => { if (file) { - resolve(path__default['default'].join(dir, file)); + resolve(path$j.join(dir, file)); } else if (dir === root) { resolve(null); } else { - find(path__default['default'].dirname(dir)); + find(path$j.dirname(dir)); } }); })(startDir); }); }; -var sync$2 = (filename, opts = {}) => { - let dir = path__default['default'].resolve(opts.cwd || ''); - const {root} = path__default['default'].parse(dir); +findUp$2.exports.sync = (filename, opts = {}) => { + let dir = path$j.resolve(opts.cwd || ''); + const {root} = path$j.parse(dir); const filenames = [].concat(filename); @@ -8311,30 +8434,30 @@ var sync$2 = (filename, opts = {}) => { const file = locatePath.sync(filenames, {cwd: dir}); if (file) { - return path__default['default'].join(dir, file); + return path$j.join(dir, file); } if (dir === root) { return null; } - dir = path__default['default'].dirname(dir); + dir = path$j.dirname(dir); } }; -findUp.sync = sync$2; -var ini = createCommonjsModule(function (module, exports) { -exports.parse = exports.decode = decode; +var ini$1 = {}; + +ini$1.parse = ini$1.decode = decode$2; -exports.stringify = exports.encode = encode; +ini$1.stringify = ini$1.encode = encode$1; -exports.safe = safe; -exports.unsafe = unsafe; +ini$1.safe = safe$8; +ini$1.unsafe = unsafe$1; -var eol = typeof process !== 'undefined' && +var eol$2 = typeof process !== 'undefined' && process.platform === 'win32' ? '\r\n' : '\n'; -function encode (obj, opt) { +function encode$1 (obj, opt) { var children = []; var out = ''; @@ -8354,26 +8477,26 @@ function encode (obj, opt) { var val = obj[k]; if (val && Array.isArray(val)) { val.forEach(function (item) { - out += safe(k + '[]') + separator + safe(item) + '\n'; + out += safe$8(k + '[]') + separator + safe$8(item) + '\n'; }); } else if (val && typeof val === 'object') children.push(k); else - out += safe(k) + separator + safe(val) + eol; + out += safe$8(k) + separator + safe$8(val) + eol$2; }); if (opt.section && out.length) - out = '[' + safe(opt.section) + ']' + eol + out; + out = '[' + safe$8(opt.section) + ']' + eol$2 + out; children.forEach(function (k, _, __) { var nk = dotSplit(k).join('\\.'); var section = (opt.section ? opt.section + '.' : '') + nk; - var child = encode(obj[k], { + var child = encode$1(obj[k], { section: section, whitespace: opt.whitespace, }); if (out.length && child.length) - out += eol; + out += eol$2; out += child; }); @@ -8390,7 +8513,7 @@ function dotSplit (str) { }) } -function decode (str) { +function decode$2 (str) { var out = {}; var p = out; var section = null; @@ -8405,7 +8528,7 @@ function decode (str) { if (!match) return if (match[1] !== undefined) { - section = unsafe(match[1]); + section = unsafe$1(match[1]); if (section === '__proto__') { // not allowed // keep parsing the section, but don't attach it. @@ -8415,10 +8538,10 @@ function decode (str) { p = out[section] = out[section] || {}; return } - var key = unsafe(match[2]); + var key = unsafe$1(match[2]); if (key === '__proto__') return - var value = match[3] ? unsafe(match[4]) : true; + var value = match[3] ? unsafe$1(match[4]) : true; switch (value) { case 'true': case 'false': @@ -8482,7 +8605,7 @@ function isQuoted (val) { (val.charAt(0) === "'" && val.slice(-1) === "'") } -function safe (val) { +function safe$8 (val) { return (typeof val !== 'string' || val.match(/[=\r\n]/) || val.match(/^\[/) || @@ -8493,7 +8616,7 @@ function safe (val) { : val.replace(/;/g, '\\;').replace(/#/g, '\\#') } -function unsafe (val, doUnesc) { +function unsafe$1 (val, doUnesc) { val = (val || '').trim(); if (isQuoted(val)) { // remove the single quotes before calling JSON.parse @@ -8530,25 +8653,31 @@ function unsafe (val, doUnesc) { } return val } -}); -const NpmConfig = figgyPudding_1({}, { +const fs$h = require$$0__default$3['default']; +const figgyPudding = figgyPudding_1; +const findUp$1 = findUp$2.exports; +const ini = ini$1; +const os$1 = require$$0__default$1['default']; +const path$i = require$$0__default$2['default']; + +const NpmConfig = figgyPudding({}, { // Open up the pudding object. other () { return true } }); -const ConfigOpts = figgyPudding_1({ - cache: { default: path__default['default'].join(os__default['default'].homedir(), '.npm') }, +const ConfigOpts = figgyPudding({ + cache: { default: path$i.join(os$1.homedir(), '.npm') }, configNames: { default: ['npmrc', '.npmrc'] }, envPrefix: { default: /^npm_config_/i }, cwd: { default: () => process.cwd() }, globalconfig: { - default: () => path__default['default'].join(getGlobalPrefix(), 'etc', 'npmrc') + default: () => path$i.join(getGlobalPrefix(), 'etc', 'npmrc') }, - userconfig: { default: path__default['default'].join(os__default['default'].homedir(), '.npmrc') } + userconfig: { default: path$i.join(os$1.homedir(), '.npmrc') } }); -var read = getNpmConfig; +libnpmconfig.read = getNpmConfig; function getNpmConfig (_opts, _builtin) { const builtin = ConfigOpts(_builtin); const env = {}; @@ -8572,7 +8701,7 @@ function getNpmConfig (_opts, _builtin) { env.globalconfig ); const global = globalConfPath && maybeReadIni(globalConfPath); - const projConfPath = findUp.sync(builtin.configNames, { cwd: builtin.cwd }); + const projConfPath = findUp$1.sync(builtin.configNames, { cwd: builtin.cwd }); let proj = {}; if (projConfPath && projConfPath !== userConfPath) { proj = maybeReadIni(projConfPath); @@ -8580,17 +8709,17 @@ function getNpmConfig (_opts, _builtin) { const newOpts = NpmConfig(builtin, global, user, proj, env, cli); if (newOpts.cache) { return newOpts.concat({ - cache: path__default['default'].resolve( + cache: path$i.resolve( ( (cli.cache || env.cache) ? builtin.cwd : proj.cache - ? path__default['default'].dirname(projConfPath) + ? path$i.dirname(projConfPath) : user.cache - ? path__default['default'].dirname(userConfPath) + ? path$i.dirname(userConfPath) : global.cache - ? path__default['default'].dirname(globalConfPath) - : path__default['default'].dirname(userConfPath) + ? path$i.dirname(globalConfPath) + : path$i.dirname(userConfPath) ), newOpts.cache ) @@ -8603,7 +8732,7 @@ function getNpmConfig (_opts, _builtin) { function maybeReadIni (f) { let txt; try { - txt = fs__default['default'].readFileSync(f, 'utf8'); + txt = fs$h.readFileSync(f, 'utf8'); } catch (err) { if (err.code === 'ENOENT') { return '' @@ -8619,27 +8748,25 @@ function getGlobalPrefix () { return process.env.PREFIX } else if (process.platform === 'win32') { // c:\node\node.exe --> prefix=c:\node\ - return path__default['default'].dirname(process.execPath) + return path$i.dirname(process.execPath) } else { // /usr/local/bin/node --> prefix=/usr/local - let pref = path__default['default'].dirname(path__default['default'].dirname(process.execPath)); + let pref = path$i.dirname(path$i.dirname(process.execPath)); // destdir only is respected on Unix if (process.env.DESTDIR) { - pref = path__default['default'].join(process.env.DESTDIR, pref); + pref = path$i.join(process.env.DESTDIR, pref); } return pref } } -var libnpmconfig = { - read: read -}; - -var resolve = resolveFrom_1.silent; +var fs$g = require$$0__default$3['default']; +var path$h = require$$0__default$2['default']; +var resolve = resolveFrom$1.exports.silent; var readNpmConfig = libnpmconfig.read; -var loadPlugin_1 = loadPlugin; -loadPlugin.resolve = resolvePlugin; +var loadPlugin_1 = loadPlugin$1; +loadPlugin$1.resolve = resolvePlugin; var electron = process.versions.electron !== undefined; var windows = process.platform === 'win32'; @@ -8658,7 +8785,7 @@ var builtinNpmConfig; // pass to `libnpmconfig` explicitly: /* istanbul ignore next */ if (windows && appData) { - builtinNpmConfig = {prefix: path__default['default'].join(appData, 'npm')}; + builtinNpmConfig = {prefix: path$h.join(appData, 'npm')}; } var npmPrefix = readNpmConfig(null, builtinNpmConfig).prefix; @@ -8668,12 +8795,12 @@ var npmPrefix = readNpmConfig(null, builtinNpmConfig).prefix; /* istanbul ignore next */ if (!npmPrefix) { npmPrefix = windows - ? path__default['default'].dirname(process.execPath) - : path__default['default'].resolve(process.execPath, '../..'); + ? path$h.dirname(process.execPath) + : path$h.resolve(process.execPath, '../..'); } var globally = electron || argv.indexOf(npmPrefix) === 0; -var globals = path__default['default'].resolve(npmPrefix, globalsLibrary, 'node_modules'); +var globals = path$h.resolve(npmPrefix, globalsLibrary, 'node_modules'); // If we’re in Electron, we’re running in a modified Node that cannot really // install global node modules. @@ -8684,12 +8811,12 @@ var globals = path__default['default'].resolve(npmPrefix, globalsLibrary, 'node_ // Luckily NVM leaks some environment variables that we can pick up on to try // and detect the actual modules. /* istanbul ignore next */ -if (electron && nvm && !fs__default['default'].existsSync(globals)) { - globals = path__default['default'].resolve(nvm, '..', globalsLibrary, 'node_modules'); +if (electron && nvm && !fs$g.existsSync(globals)) { + globals = path$h.resolve(nvm, '..', globalsLibrary, 'node_modules'); } // Load the plugin found using `resolvePlugin`. -function loadPlugin(name, options) { +function loadPlugin$1(name, options) { return commonjsRequire(resolvePlugin(name, options) || name) } @@ -8773,7 +8900,7 @@ function resolvePlugin(name, options) { return null } -var isPlainObj = value => { +var isPlainObj$1 = value => { if (Object.prototype.toString.call(value) !== '[object Object]') { return false; } @@ -8782,7 +8909,9 @@ var isPlainObj = value => { return prototype === null || prototype === Object.prototype; }; -var format = createCommonjsModule(function (module) { +var format$1 = {exports: {}}; + +(function (module) { (function() { //// Export the API @@ -8894,51 +9023,50 @@ var format = createCommonjsModule(function (module) { } }()); -}); +}(format$1)); + +var formatter = format$1.exports; -var fault = create(Error); +var fault$3 = create$2(Error); -var fault_1 = fault; +var fault_1 = fault$3; -fault.eval = create(EvalError); -fault.range = create(RangeError); -fault.reference = create(ReferenceError); -fault.syntax = create(SyntaxError); -fault.type = create(TypeError); -fault.uri = create(URIError); +fault$3.eval = create$2(EvalError); +fault$3.range = create$2(RangeError); +fault$3.reference = create$2(ReferenceError); +fault$3.syntax = create$2(SyntaxError); +fault$3.type = create$2(TypeError); +fault$3.uri = create$2(URIError); -fault.create = create; +fault$3.create = create$2; // Create a new `EConstructor`, with the formatted `format` as a first argument. -function create(EConstructor) { +function create$2(EConstructor) { FormattedError.displayName = EConstructor.displayName || EConstructor.name; return FormattedError - function FormattedError(format$1) { - if (format$1) { - format$1 = format.apply(null, arguments); + function FormattedError(format) { + if (format) { + format = formatter.apply(null, arguments); } - return new EConstructor(format$1) + return new EConstructor(format) } } -var debug = src('unified-engine:find-up'); +var fs$f = require$$0__default$3['default']; +var path$g = require$$0__default$2['default']; +var fault$2 = fault_1; +var debug$d = src.exports('unified-engine:find-up'); +var wrap$3 = wrap_1$1; -var findUp$1 = FindUp; +var findUp = FindUp$2; -var read$1 = fs__default['default'].readFile; -var resolve$1 = path__default['default'].resolve; -var relative = path__default['default'].relative; -var join = path__default['default'].join; -var dirname = path__default['default'].dirname; +FindUp$2.prototype.load = load$4; -FindUp.prototype.load = load$2; - -function FindUp(options) { +function FindUp$2(options) { var self = this; - var fp = options.filePath; self.cache = {}; self.cwd = options.cwd; @@ -8946,29 +9074,24 @@ function FindUp(options) { self.names = options.names; self.create = options.create; - if (fp) { - self.givenFilePath = resolve$1(options.cwd, fp); + if (options.filePath) { + self.givenFilePath = path$g.resolve(options.cwd, options.filePath); } } -function load$2(filePath, callback) { +function load$4(filePath, callback) { var self = this; - var cache = self.cache; - var givenFilePath = self.givenFilePath; var givenFile = self.givenFile; - var names = self.names; - var create = self.create; - var cwd = self.cwd; var parent; - if (givenFilePath) { + if (self.givenFilePath) { if (givenFile) { apply(callback, givenFile); } else { givenFile = [callback]; self.givenFile = givenFile; - debug('Checking given file `%s`', givenFilePath); - read$1(givenFilePath, loadGiven); + debug$d('Checking given file `%s`', self.givenFilePath); + fs$f.readFile(self.givenFilePath, loadGiven); } return @@ -8978,13 +9101,13 @@ function load$2(filePath, callback) { return callback() } - filePath = resolve$1(cwd, filePath); - parent = dirname(filePath); + filePath = path$g.resolve(self.cwd, filePath); + parent = path$g.dirname(filePath); - if (parent in cache) { - apply(callback, cache[parent]); + if (parent in self.cache) { + apply(callback, self.cache[parent]); } else { - cache[parent] = [callback]; + self.cache[parent] = [callback]; find(parent); } @@ -8993,36 +9116,44 @@ function load$2(filePath, callback) { var result; if (error) { - result = fault_1( + result = fault$2( 'Cannot read given file `%s`\n%s', - relative(cwd, givenFilePath), + path$g.relative(self.cwd, self.givenFilePath), error.stack ); result.code = 'ENOENT'; result.path = error.path; result.syscall = error.syscall; + loaded(result); } else { - try { - result = create(buf, givenFilePath); - debug('Read given file `%s`', givenFilePath); - } catch (error_) { - result = fault_1( - 'Cannot parse given file `%s`\n%s', - relative(cwd, givenFilePath), - error_.stack + wrap$3(self.create, onparse)(buf, self.givenFilePath); + } + + function onparse(error, result) { + if (error) { + debug$d(error.message); + loaded( + fault$2( + 'Cannot parse given file `%s`\n%s', + path$g.relative(self.cwd, self.givenFilePath), + error.stack + ) ); - debug(error_.message); + } else { + debug$d('Read given file `%s`', self.givenFilePath); + loaded(result); } } - givenFile = result; - self.givenFile = result; - applyAll(cbs, result); + function loaded(result) { + givenFile = result; + self.givenFile = result; + applyAll(cbs, result); + } } function find(directory) { var index = -1; - var length = names.length; next(); @@ -9032,27 +9163,25 @@ function load$2(filePath, callback) { // Try to read the next file. // We do not use `readdir` because on huge directories, that could be // *very* slow. - if (++index < length) { - read$1(join(directory, names[index]), done); + if (++index < self.names.length) { + fs$f.readFile(path$g.join(directory, self.names[index]), done); } else { - parent = dirname(directory); + parent = path$g.dirname(directory); if (directory === parent) { - debug('No files found for `%s`', filePath); + debug$d('No files found for `%s`', filePath); found(); - } else if (parent in cache) { - apply(found, cache[parent]); + } else if (parent in self.cache) { + apply(found, self.cache[parent]); } else { - cache[parent] = [found]; + self.cache[parent] = [found]; find(parent); } } } function done(error, buf) { - var name = names[index]; - var fp = join(directory, name); - var contents; + var fp = path$g.join(directory, self.names[index]); /* istanbul ignore if - Hard to test. */ if (error) { @@ -9060,35 +9189,39 @@ function load$2(filePath, callback) { return next() } - error = fault_1( - 'Cannot read file `%s`\n%s', - relative(cwd, fp), - error.message - ); - debug(error.message); - return found(error) - } - - try { - contents = create(buf, fp); - } catch (error_) { + debug$d(error.message); return found( - fault_1('Cannot parse file `%s`\n%s', relative(cwd, fp), error_.message) + fault$2( + 'Cannot read file `%s`\n%s', + path$g.relative(self.cwd, fp), + error.message + ) ) } - /* istanbul ignore else - maybe used in the future. */ - if (contents) { - debug('Read file `%s`', fp); - found(null, contents); - } else { - next(); + wrap$3(self.create, onparse)(buf, fp); + + function onparse(error, result) { + if (error) { + found( + fault$2( + 'Cannot parse file `%s`\n%s', + path$g.relative(self.cwd, fp), + error.message + ) + ); + } else if (result) { + debug$d('Read file `%s`', fp); + found(null, result); + } else { + next(); + } } } function found(error, result) { - var cbs = cache[directory]; - cache[directory] = error || result; + var cbs = self.cache[directory]; + self.cache[directory] = error || result; applyAll(cbs, error || result); } } @@ -9116,40 +9249,33 @@ function load$2(filePath, callback) { } } -var configuration = createCommonjsModule(function (module) { - - - - - -var debug = src('unified-engine:configuration'); -var resolve = loadPlugin_1.resolve; - - +var path$f = require$$0__default$2['default']; +var yaml = jsYaml$1; +var json$2 = parseJson_1; +var debug$c = src.exports('unified-engine:configuration'); +var loadPlugin = loadPlugin_1; +var plain$1 = isPlainObj$1; +var fault$1 = fault_1; +var FindUp$1 = findUp; +var configuration = Config; -module.exports = Config; - -var own = {}.hasOwnProperty; -var extname = path__default['default'].extname; -var basename = path__default['default'].basename; -var dirname = path__default['default'].dirname; -var relative = path__default['default'].relative; +var own$h = {}.hasOwnProperty; var loaders = { '.json': loadJson, - '.js': loadScript, + '.cjs': loadScriptOrModule, + '.mjs': loadScriptOrModule, + '.js': loadScriptOrModule, '.yaml': loadYaml, '.yml': loadYaml }; var defaultLoader = loadJson; -Config.prototype.load = load; +Config.prototype.load = load$3; function Config(options) { - var rcName = options.rcName; - var packageField = options.packageField; var names = []; this.cwd = options.cwd; @@ -9158,20 +9284,28 @@ function Config(options) { this.configTransform = options.configTransform; this.defaultConfig = options.defaultConfig; - if (rcName) { - names.push(rcName, rcName + '.js', rcName + '.yml', rcName + '.yaml'); - debug('Looking for `%s` configuration files', names); + if (options.rcName) { + names.push( + options.rcName, + options.rcName + '.js', + options.rcName + '.yml', + options.rcName + '.yaml' + ); + debug$c('Looking for `%s` configuration files', names); } - if (packageField) { + if (options.packageField) { names.push('package.json'); - debug('Looking for `%s` fields in `package.json` files', packageField); + debug$c( + 'Looking for `%s` fields in `package.json` files', + options.packageField + ); } this.given = {settings: options.settings, plugins: options.plugins}; - this.create = create.bind(this); + this.create = create$1.bind(this); - this.findUp = new findUp$1({ + this.findUp = new FindUp$1({ filePath: options.rcPath, cwd: options.cwd, detect: options.detectConfig, @@ -9180,108 +9314,99 @@ function Config(options) { }); } -function load(filePath, callback) { +function load$3(filePath, callback) { var self = this; - var searchPath = filePath || path__default['default'].resolve(this.cwd, 'stdin.js'); - self.findUp.load(searchPath, done); + self.findUp.load(filePath || path$f.resolve(this.cwd, 'stdin.js'), done); function done(error, file) { if (error || file) { return callback(error, file) } - callback(null, self.create()); + self.create().then(function (result) { + callback(null, result); + }, callback); } } -function create(buf, filePath) { +async function create$1(buf, filePath) { var self = this; - var transform = self.configTransform; - var defaults = self.defaultConfig; - var fn = (filePath && loaders[extname(filePath)]) || defaultLoader; + var fn = (filePath && loaders[path$f.extname(filePath)]) || defaultLoader; var options = {prefix: self.pluginPrefix, cwd: self.cwd}; var result = {settings: {}, plugins: []}; - var contents = buf ? fn.apply(self, arguments) : undefined; + var contents; - if (transform && contents !== undefined) { - contents = transform(contents, filePath); + if (filePath) { + contents = await fn.apply(self, arguments); + } + + if (self.configTransform && contents !== undefined) { + contents = self.configTransform(contents, filePath); } // Exit if we did find a `package.json`, but it does not have configuration. - if (buf && contents === undefined && basename(filePath) === 'package.json') { + if ( + buf && + contents === undefined && + path$f.basename(filePath) === 'package.json' + ) { return } if (contents === undefined) { - if (defaults) { - merge(result, defaults, Object.assign({}, options, {root: self.cwd})); + if (self.defaultConfig) { + await merge$1( + result, + self.defaultConfig, + Object.assign({}, options, {root: self.cwd}) + ); } } else { - merge( + await merge$1( result, contents, - Object.assign({}, options, {root: dirname(filePath)}) + Object.assign({}, options, {root: path$f.dirname(filePath)}) ); } - merge(result, self.given, Object.assign({}, options, {root: self.cwd})); + await merge$1(result, self.given, Object.assign({}, options, {root: self.cwd})); return result } -// Basically `Module.prototype.load`, but for a buffer instead of a file path. -function loadScript(buf, filePath) { - var submodule = Module__default['default']._cache[filePath]; - - if (!submodule) { - submodule = new Module__default['default'](filePath, module); - submodule.filename = filePath; - submodule.paths = Module__default['default']._nodeModulePaths(dirname(filePath)); - submodule._compile(String(buf), filePath); - submodule.loaded = true; - Module__default['default']._cache[filePath] = submodule; - } - - return submodule.exports +function loadScriptOrModule(_, filePath) { + return loadFromAbsolutePath(filePath, this.cwd) } function loadYaml(buf, filePath) { - return jsYaml$1.safeLoad(buf, {filename: basename(filePath)}) + return yaml.safeLoad(buf, {filename: path$f.basename(filePath)}) } function loadJson(buf, filePath) { - var result = parseJson$1(buf, filePath); + var result = json$2(buf, filePath); - if (basename(filePath) === 'package.json') { + if (path$f.basename(filePath) === 'package.json') { result = result[this.packageField]; } return result } -function merge(target, raw, options) { - var root = options.root; - var cwd = options.cwd; - var prefix = options.prefix; - +async function merge$1(target, raw, options) { if (typeof raw === 'object' && raw !== null) { - addPreset(raw); + await addPreset(raw); } else { throw new Error('Expected preset, not `' + raw + '`') } return target - function addPreset(result) { + async function addPreset(result) { var plugins = result.plugins; if (plugins === null || plugins === undefined) ; else if (typeof plugins === 'object' && plugins !== null) { - if ('length' in plugins) { - addEach(plugins); - } else { - addIn(plugins); - } + await ('length' in plugins ? addEach(plugins) : addIn(plugins)); } else { throw new Error( 'Expected a list or object of plugins, not `' + plugins + '`' @@ -9291,70 +9416,67 @@ function merge(target, raw, options) { target.settings = Object.assign({}, target.settings, result.settings); } - function addEach(result) { - var length = result.length; + async function addEach(result) { var index = -1; var value; - while (++index < length) { + while (++index < result.length) { value = result[index]; - if (value !== null && typeof value === 'object' && 'length' in value) { - use.apply(null, value); - } else { - use(value); - } + // Keep order sequential instead of parallel. + // eslint-disable-next-line no-await-in-loop + await (value !== null && typeof value === 'object' && 'length' in value + ? use.apply(null, value) + : use(value)); } } - function addIn(result) { + async function addIn(result) { var key; for (key in result) { - use(key, result[key]); + // Keep order sequential instead of parallel. + // eslint-disable-next-line no-await-in-loop + await use(key, result[key]); } } - function use(usable, value) { + async function use(usable, value) { if (typeof usable === 'string') { - addModule(usable, value); + await addModule(usable, value); } else if (typeof usable === 'function') { addPlugin(usable, value); } else { - merge(target, usable, options); + await merge$1(target, usable, options); } } - function addModule(id, value) { - var fp = resolve(id, {cwd: root, prefix: prefix}); + async function addModule(id, value) { + var fp = loadPlugin.resolve(id, {cwd: options.root, prefix: options.prefix}); var result; if (fp) { - try { - result = commonjsRequire(fp); - } catch (error) { - throw fault_1( - 'Cannot parse script `%s`\n%s', - relative(root, fp), - error.stack - ) - } + result = await loadFromAbsolutePath(fp, options.root); try { if (typeof result === 'function') { addPlugin(result, value); } else { - merge(target, result, Object.assign({}, options, {root: dirname(fp)})); + await merge$1( + target, + result, + Object.assign({}, options, {root: path$f.dirname(fp)}) + ); } } catch (_) { - throw fault_1( + throw fault$1( 'Error: Expected preset or plugin, not %s, at `%s`', result, - relative(root, fp) + path$f.relative(options.root, fp) ) } } else { - fp = relative(cwd, path__default['default'].resolve(root, id)); + fp = path$f.relative(options.cwd, path$f.resolve(options.root, id)); addPlugin( failingModule(fp, new Error('Could not find module `' + id + '`')), value @@ -9363,7 +9485,7 @@ function merge(target, raw, options) { } function addPlugin(result, value) { - var entry = find(target.plugins, result); + var entry = find$2(target.plugins, result); if (entry) { reconfigure(entry, value); @@ -9374,41 +9496,71 @@ function merge(target, raw, options) { } function reconfigure(entry, value) { - if (isPlainObj(entry[1]) && isPlainObj(value)) { + if (plain$1(entry[1]) && plain$1(value)) { value = Object.assign({}, entry[1], value); } entry[1] = value; } -function find(entries, plugin) { - var length = entries.length; +function find$2(entries, plugin) { var index = -1; - var entry; - - while (++index < length) { - entry = entries[index]; - if (entry[0] === plugin) { - return entry + while (++index < entries.length) { + if (entries[index][0] === plugin) { + return entries[index] } } } function failingModule(id, error) { var cache = failingModule.cache || (failingModule.cache = {}); - var submodule = own.call(cache, id) ? cache[id] : (cache[id] = fail); + var submodule = own$h.call(cache, id) ? cache[id] : (cache[id] = fail); return submodule function fail() { throw error } } -}); -var configure_1 = configure; +async function loadFromAbsolutePath(fp, base) { + var ext = path$f.extname(fp); + var result; + + /* istanbul ignore next - To do next major: Tests don’t run on Node 10 */ + if (ext !== '.mjs') { + try { + result = commonjsRequire(fp); + } catch (error) { + if (ext !== '.cjs' && error.code === 'ERR_REQUIRE_ESM') { + ext = '.mjs'; + } else { + throw fault$1( + 'Cannot parse script `%s`\n%s', + path$f.relative(base, fp), + error.stack + ) + } + } + + if (result && typeof result === 'object' && result.__esModule) { + result = result.default; + } + } + + /* istanbul ignore next - To do next major: Tests don’t run on Node 10 */ + if (ext === '.mjs') { + result = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(fp)); })).default; + } + + return result +} + +var Configuration = configuration; + +var configure_1$2 = configure$6; -function configure(context, settings) { - context.configuration = new configuration(settings); +function configure$6(context, settings) { + context.configuration = new Configuration(settings); } // A simple implementation of make-array @@ -9432,7 +9584,7 @@ const REGEX_SPLITALL_CRLF = /\r?\n/g; // .. const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; -const SLASH = '/'; +const SLASH$1 = '/'; const KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol.for('node-ignore') /* istanbul ignore next */ @@ -9809,7 +9961,7 @@ const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path); checkPath.isNotRelative = isNotRelative; checkPath.convert = p => p; -class Ignore { +class Ignore$2 { constructor ({ ignorecase = true } = {}) { @@ -9925,7 +10077,7 @@ class Ignore { if (!slices) { // path/to/a.js // ['path', 'to', 'a.js'] - slices = path.split(SLASH); + slices = path.split(SLASH$1); } slices.pop(); @@ -9936,7 +10088,7 @@ class Ignore { } const parent = this._t( - slices.join(SLASH) + SLASH, + slices.join(SLASH$1) + SLASH$1, cache, checkUnignored, slices @@ -9968,19 +10120,19 @@ class Ignore { } } -const factory = options => new Ignore(options); +const factory$4 = options => new Ignore$2(options); const returnFalse = () => false; const isPathValid = path => checkPath(path && checkPath.convert(path), path, returnFalse); -factory.isPathValid = isPathValid; +factory$4.isPathValid = isPathValid; // Fixes typescript -factory.default = factory; +factory$4.default = factory$4; -var ignore = factory; +var ignore$2 = factory$4; // Windows // -------------------------------------------------------------- @@ -10009,29 +10161,28 @@ if ( || isNotRelative(path); } -var ignore$1 = Ignore$1; +var path$e = require$$0__default$2['default']; +var gitignore$1 = ignore$2; +var FindUp = findUp; -Ignore$1.prototype.check = check; +var ignore$1 = Ignore$1; -var sep = path__default['default'].sep; -var dirname$1 = path__default['default'].dirname; -var relative$1 = path__default['default'].relative; -var resolve$2 = path__default['default'].resolve; +Ignore$1.prototype.check = check$5; function Ignore$1(options) { this.cwd = options.cwd; this.ignorePathResolveFrom = options.ignorePathResolveFrom; - this.findUp = new findUp$1({ + this.findUp = new FindUp({ filePath: options.ignorePath, cwd: options.cwd, detect: options.detectIgnore, names: options.ignoreName ? [options.ignoreName] : [], - create: create$1 + create: create }); } -function check(filePath, callback) { +function check$5(filePath, callback) { var self = this; self.findUp.load(filePath, done); @@ -10042,19 +10193,19 @@ function check(filePath, callback) { if (error) { callback(error); } else if (ignore) { - normal = relative$1( - resolve$2( + normal = path$e.relative( + path$e.resolve( self.cwd, self.ignorePathResolveFrom === 'cwd' ? '.' : ignore.filePath ), - resolve$2(self.cwd, filePath) + path$e.resolve(self.cwd, filePath) ); if ( normal === '' || normal === '..' || - normal.charAt(0) === sep || - normal.slice(0, 3) === '..' + sep + normal.charAt(0) === path$e.sep || + normal.slice(0, 3) === '..' + path$e.sep ) { callback(null, false); } else { @@ -10066,12 +10217,14 @@ function check(filePath, callback) { } } -function create$1(buf, filePath) { - var ignore$1 = ignore().add(String(buf)); - ignore$1.filePath = dirname$1(filePath); - return ignore$1 +function create(buf, filePath) { + var ignore = gitignore$1().add(String(buf)); + ignore.filePath = path$e.dirname(filePath); + return ignore } +var old$1 = {}; + // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -10093,9 +10246,9 @@ function create$1(buf, filePath) { // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. - -var isWindows = process.platform === 'win32'; - +var pathModule = require$$0__default$2['default']; +var isWindows$2 = process.platform === 'win32'; +var fs$e = require$$0__default$3['default']; // JavaScript implementation of realpath, ported from node pre-v6 @@ -10140,26 +10293,26 @@ function maybeCallback(cb) { return typeof cb === 'function' ? cb : rethrow(); } -var normalize = path__default['default'].normalize; +pathModule.normalize; // Regexp that finds the next partion of a (partial) path // result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] -if (isWindows) { +if (isWindows$2) { var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; } else { var nextPartRe = /(.*?)(?:[\/]+|$)/g; } // Regex to find the device root, including trailing slash. E.g. 'c:\\'. -if (isWindows) { +if (isWindows$2) { var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; } else { var splitRootRe = /^[\/]*/; } -var realpathSync = function realpathSync(p, cache) { +old$1.realpathSync = function realpathSync(p, cache) { // make p is absolute - p = path__default['default'].resolve(p); + p = pathModule.resolve(p); if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { return cache[p]; @@ -10189,8 +10342,8 @@ var realpathSync = function realpathSync(p, cache) { previous = ''; // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs__default['default'].lstatSync(base); + if (isWindows$2 && !knownHard[base]) { + fs$e.lstatSync(base); knownHard[base] = true; } } @@ -10217,7 +10370,7 @@ var realpathSync = function realpathSync(p, cache) { // some known symbolic link. no need to stat again. resolvedLink = cache[base]; } else { - var stat = fs__default['default'].lstatSync(base); + var stat = fs$e.lstatSync(base); if (!stat.isSymbolicLink()) { knownHard[base] = true; if (cache) cache[base] = base; @@ -10227,24 +10380,24 @@ var realpathSync = function realpathSync(p, cache) { // read the link if it wasn't read before // dev/ino always return 0 on windows, so skip the check. var linkTarget = null; - if (!isWindows) { + if (!isWindows$2) { var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); if (seenLinks.hasOwnProperty(id)) { linkTarget = seenLinks[id]; } } if (linkTarget === null) { - fs__default['default'].statSync(base); - linkTarget = fs__default['default'].readlinkSync(base); + fs$e.statSync(base); + linkTarget = fs$e.readlinkSync(base); } - resolvedLink = path__default['default'].resolve(previous, linkTarget); + resolvedLink = pathModule.resolve(previous, linkTarget); // track this, if given a cache. if (cache) cache[base] = resolvedLink; - if (!isWindows) seenLinks[id] = linkTarget; + if (!isWindows$2) seenLinks[id] = linkTarget; } // resolve the link, then start over - p = path__default['default'].resolve(resolvedLink, p.slice(pos)); + p = pathModule.resolve(resolvedLink, p.slice(pos)); start(); } @@ -10254,14 +10407,14 @@ var realpathSync = function realpathSync(p, cache) { }; -var realpath = function realpath(p, cache, cb) { +old$1.realpath = function realpath(p, cache, cb) { if (typeof cb !== 'function') { cb = maybeCallback(cache); cache = null; } // make p is absolute - p = path__default['default'].resolve(p); + p = pathModule.resolve(p); if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { return process.nextTick(cb.bind(null, null, cache[p])); @@ -10291,8 +10444,8 @@ var realpath = function realpath(p, cache, cb) { previous = ''; // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs__default['default'].lstat(base, function(err) { + if (isWindows$2 && !knownHard[base]) { + fs$e.lstat(base, function(err) { if (err) return cb(err); knownHard[base] = true; LOOP(); @@ -10329,7 +10482,7 @@ var realpath = function realpath(p, cache, cb) { return gotResolvedLink(cache[base]); } - return fs__default['default'].lstat(base, gotStat); + return fs$e.lstat(base, gotStat); } function gotStat(err, stat) { @@ -10345,17 +10498,17 @@ var realpath = function realpath(p, cache, cb) { // stat & read the link if not read before // call gotTarget as soon as the link target is known // dev/ino always return 0 on windows, so skip the check. - if (!isWindows) { + if (!isWindows$2) { var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); if (seenLinks.hasOwnProperty(id)) { return gotTarget(null, seenLinks[id], base); } } - fs__default['default'].stat(base, function(err) { + fs$e.stat(base, function(err) { if (err) return cb(err); - fs__default['default'].readlink(base, function(err, target) { - if (!isWindows) seenLinks[id] = target; + fs$e.readlink(base, function(err, target) { + if (!isWindows$2) seenLinks[id] = target; gotTarget(err, target); }); }); @@ -10364,37 +10517,32 @@ var realpath = function realpath(p, cache, cb) { function gotTarget(err, target, base) { if (err) return cb(err); - var resolvedLink = path__default['default'].resolve(previous, target); + var resolvedLink = pathModule.resolve(previous, target); if (cache) cache[base] = resolvedLink; gotResolvedLink(resolvedLink); } function gotResolvedLink(resolvedLink) { // resolve the link, then start over - p = path__default['default'].resolve(resolvedLink, p.slice(pos)); + p = pathModule.resolve(resolvedLink, p.slice(pos)); start(); } }; -var old = { - realpathSync: realpathSync, - realpath: realpath -}; - -var fs_realpath = realpath$1; -realpath$1.realpath = realpath$1; -realpath$1.sync = realpathSync$1; -realpath$1.realpathSync = realpathSync$1; -realpath$1.monkeypatch = monkeypatch; -realpath$1.unmonkeypatch = unmonkeypatch; - +var fs_realpath = realpath$2; +realpath$2.realpath = realpath$2; +realpath$2.sync = realpathSync; +realpath$2.realpathSync = realpathSync; +realpath$2.monkeypatch = monkeypatch; +realpath$2.unmonkeypatch = unmonkeypatch; -var origRealpath = fs__default['default'].realpath; -var origRealpathSync = fs__default['default'].realpathSync; - -var version = process.version; -var ok = /^v[0-5]\./.test(version); +var fs$d = require$$0__default$3['default']; +var origRealpath = fs$d.realpath; +var origRealpathSync = fs$d.realpathSync; +var version$2 = process.version; +var ok$D = /^v[0-5]\./.test(version$2); +var old = old$1; function newError (er) { return er && er.syscall === 'realpath' && ( @@ -10404,8 +10552,8 @@ function newError (er) { ) } -function realpath$1 (p, cache, cb) { - if (ok) { +function realpath$2 (p, cache, cb) { + if (ok$D) { return origRealpath(p, cache, cb) } @@ -10422,8 +10570,8 @@ function realpath$1 (p, cache, cb) { }); } -function realpathSync$1 (p, cache) { - if (ok) { +function realpathSync (p, cache) { + if (ok$D) { return origRealpathSync(p, cache) } @@ -10439,35 +10587,35 @@ function realpathSync$1 (p, cache) { } function monkeypatch () { - fs__default['default'].realpath = realpath$1; - fs__default['default'].realpathSync = realpathSync$1; + fs$d.realpath = realpath$2; + fs$d.realpathSync = realpathSync; } function unmonkeypatch () { - fs__default['default'].realpath = origRealpath; - fs__default['default'].realpathSync = origRealpathSync; + fs$d.realpath = origRealpath; + fs$d.realpathSync = origRealpathSync; } -var concatMap = function (xs, fn) { +var concatMap$1 = function (xs, fn) { var res = []; for (var i = 0; i < xs.length; i++) { var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); + if (isArray$1(x)) res.push.apply(res, x); else res.push(x); } return res; }; -var isArray = Array.isArray || function (xs) { +var isArray$1 = Array.isArray || function (xs) { return Object.prototype.toString.call(xs) === '[object Array]'; }; -var balancedMatch = balanced; -function balanced(a, b, str) { +var balancedMatch = balanced$1; +function balanced$1(a, b, str) { if (a instanceof RegExp) a = maybeMatch(a, str); if (b instanceof RegExp) b = maybeMatch(b, str); - var r = range(a, b, str); + var r = range$3(a, b, str); return r && { start: r[0], @@ -10483,8 +10631,8 @@ function maybeMatch(reg, str) { return m ? m[0] : null; } -balanced.range = range; -function range(a, b, str) { +balanced$1.range = range$3; +function range$3(a, b, str) { var begs, beg, left, right, result; var ai = str.indexOf(a); var bi = str.indexOf(b, ai + 1); @@ -10521,6 +10669,9 @@ function range(a, b, str) { return result; } +var concatMap = concatMap$1; +var balanced = balancedMatch; + var braceExpansion = expandTop; var escSlash = '\0SLASH'+Math.random()+'\0'; @@ -10529,7 +10680,7 @@ var escClose = '\0CLOSE'+Math.random()+'\0'; var escComma = '\0COMMA'+Math.random()+'\0'; var escPeriod = '\0PERIOD'+Math.random()+'\0'; -function numeric(str) { +function numeric$1(str) { return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0); @@ -10560,7 +10711,7 @@ function parseCommaParts(str) { return ['']; var parts = []; - var m = balancedMatch('{', '}', str); + var m = balanced('{', '}', str); if (!m) return str.split(','); @@ -10596,7 +10747,7 @@ function expandTop(str) { str = '\\{\\}' + str.substr(2); } - return expand(escapeBraces(str), true).map(unescapeBraces); + return expand$4(escapeBraces(str), true).map(unescapeBraces); } function embrace(str) { @@ -10613,10 +10764,10 @@ function gte(i, y) { return i >= y; } -function expand(str, isTop) { +function expand$4(str, isTop) { var expansions = []; - var m = balancedMatch('{', '}', str); + var m = balanced('{', '}', str); if (!m || /\$$/.test(m.pre)) return [str]; var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); @@ -10627,7 +10778,7 @@ function expand(str, isTop) { // {a},b} if (m.post.match(/,.*\}/)) { str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); + return expand$4(str); } return [str]; } @@ -10639,10 +10790,10 @@ function expand(str, isTop) { n = parseCommaParts(m.body); if (n.length === 1) { // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); + n = expand$4(n[0], false).map(embrace); if (n.length === 1) { var post = m.post.length - ? expand(m.post, false) + ? expand$4(m.post, false) : ['']; return post.map(function(p) { return m.pre + n[0] + p; @@ -10657,17 +10808,17 @@ function expand(str, isTop) { // no need to expand pre, since it is guaranteed to be free of brace-sets var pre = m.pre; var post = m.post.length - ? expand(m.post, false) + ? expand$4(m.post, false) : ['']; var N; if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); + var x = numeric$1(n[0]); + var y = numeric$1(n[1]); var width = Math.max(n[0].length, n[1].length); var incr = n.length == 3 - ? Math.abs(numeric(n[2])) + ? Math.abs(numeric$1(n[2])) : 1; var test = lte; var reverse = y < x; @@ -10701,7 +10852,7 @@ function expand(str, isTop) { N.push(c); } } else { - N = concatMap(n, function(el) { return expand(el, false) }); + N = concatMap(n, function(el) { return expand$4(el, false) }); } for (var j = 0; j < N.length; j++) { @@ -10715,16 +10866,16 @@ function expand(str, isTop) { return expansions; } -var minimatch_1 = minimatch; -minimatch.Minimatch = Minimatch; +var minimatch_1 = minimatch$3; +minimatch$3.Minimatch = Minimatch$1; -var path = { sep: '/' }; +var path$d = { sep: '/' }; try { - path = path__default['default']; + path$d = require$$0__default$2['default']; } catch (er) {} -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}; - +var GLOBSTAR$1 = minimatch$3.GLOBSTAR = Minimatch$1.GLOBSTAR = {}; +var expand$3 = braceExpansion; var plTypes = { '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, @@ -10739,7 +10890,7 @@ var plTypes = { var qmark = '[^/]'; // * => any number of characters -var star = qmark + '*?'; +var star$3 = qmark + '*?'; // ** when dots are allowed. Anything goes, except .. and . // not (^ or / followed by one or two dots followed by $ or /), @@ -10764,11 +10915,11 @@ function charSet (s) { // normalizes slashes. var slashSplit = /\/+/; -minimatch.filter = filter; +minimatch$3.filter = filter; function filter (pattern, options) { options = options || {}; return function (p, i, list) { - return minimatch(p, pattern, options) + return minimatch$3(p, pattern, options) } } @@ -10785,10 +10936,10 @@ function ext (a, b) { return t } -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch +minimatch$3.defaults = function (def) { + if (!def || !Object.keys(def).length) return minimatch$3 - var orig = minimatch; + var orig = minimatch$3; var m = function minimatch (p, pattern, options) { return orig.minimatch(p, pattern, ext(def, options)) @@ -10801,12 +10952,12 @@ minimatch.defaults = function (def) { return m }; -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch +Minimatch$1.defaults = function (def) { + if (!def || !Object.keys(def).length) return Minimatch$1 + return minimatch$3.defaults(def).Minimatch }; -function minimatch (p, pattern, options) { +function minimatch$3 (p, pattern, options) { if (typeof pattern !== 'string') { throw new TypeError('glob pattern string required') } @@ -10821,12 +10972,12 @@ function minimatch (p, pattern, options) { // "" only matches "" if (pattern.trim() === '') return p === '' - return new Minimatch(pattern, options).match(p) + return new Minimatch$1(pattern, options).match(p) } -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) +function Minimatch$1 (pattern, options) { + if (!(this instanceof Minimatch$1)) { + return new Minimatch$1(pattern, options) } if (typeof pattern !== 'string') { @@ -10837,8 +10988,8 @@ function Minimatch (pattern, options) { pattern = pattern.trim(); // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/'); + if (path$d.sep !== '/') { + pattern = pattern.split(path$d.sep).join('/'); } this.options = options; @@ -10853,9 +11004,9 @@ function Minimatch (pattern, options) { this.make(); } -Minimatch.prototype.debug = function () {}; +Minimatch$1.prototype.debug = function () {}; -Minimatch.prototype.make = make; +Minimatch$1.prototype.make = make; function make () { // don't do it more than once. if (this._made) return @@ -10911,7 +11062,7 @@ function make () { this.set = set; } -Minimatch.prototype.parseNegate = parseNegate; +Minimatch$1.prototype.parseNegate = parseNegate; function parseNegate () { var pattern = this.pattern; var negate = false; @@ -10941,15 +11092,15 @@ function parseNegate () { // Invalid sets are not expanded. // a{2..}b -> a{2..}b // a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { +minimatch$3.braceExpand = function (pattern, options) { return braceExpand(pattern, options) }; -Minimatch.prototype.braceExpand = braceExpand; +Minimatch$1.prototype.braceExpand = braceExpand; function braceExpand (pattern, options) { if (!options) { - if (this instanceof Minimatch) { + if (this instanceof Minimatch$1) { options = this.options; } else { options = {}; @@ -10969,7 +11120,7 @@ function braceExpand (pattern, options) { return [pattern] } - return braceExpansion(pattern) + return expand$3(pattern) } // parse a component of the expanded set. @@ -10983,9 +11134,9 @@ function braceExpand (pattern, options) { // when it is the *only* thing in a path portion. Otherwise, any series // of * is equivalent to a single *. Globstar behavior is enabled by // default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse$2; +Minimatch$1.prototype.parse = parse$b; var SUBPARSE = {}; -function parse$2 (pattern, isSub) { +function parse$b (pattern, isSub) { if (pattern.length > 1024 * 64) { throw new TypeError('pattern is too long') } @@ -10993,7 +11144,7 @@ function parse$2 (pattern, isSub) { var options = this.options; // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR + if (!options.noglobstar && pattern === '**') return GLOBSTAR$1 if (pattern === '') return '' var re = ''; @@ -11020,7 +11171,7 @@ function parse$2 (pattern, isSub) { // that wasn't consumed by this pass. switch (stateChar) { case '*': - re += star; + re += star$3; hasMagic = true; break case '?': @@ -11254,7 +11405,7 @@ function parse$2 (pattern, isSub) { }); this.debug('tail=%j\n %s', tail, tail, pl, re); - var t = pl.type === '*' ? star + var t = pl.type === '*' ? star$3 : pl.type === '?' ? qmark : '\\' + pl.type; @@ -11351,11 +11502,11 @@ function parse$2 (pattern, isSub) { return regExp } -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() +minimatch$3.makeRe = function (pattern, options) { + return new Minimatch$1(pattern, options || {}).makeRe() }; -Minimatch.prototype.makeRe = makeRe; +Minimatch$1.prototype.makeRe = makeRe; function makeRe () { if (this.regexp || this.regexp === false) return this.regexp @@ -11373,14 +11524,14 @@ function makeRe () { } var options = this.options; - var twoStar = options.noglobstar ? star + var twoStar = options.noglobstar ? star$3 : options.dot ? twoStarDot : twoStarNoDot; var flags = options.nocase ? 'i' : ''; var re = set.map(function (pattern) { return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar + return (p === GLOBSTAR$1) ? twoStar : (typeof p === 'string') ? regExpEscape(p) : p._src }).join('\\\/') @@ -11401,9 +11552,9 @@ function makeRe () { return this.regexp } -minimatch.match = function (list, pattern, options) { +minimatch$3.match = function (list, pattern, options) { options = options || {}; - var mm = new Minimatch(pattern, options); + var mm = new Minimatch$1(pattern, options); list = list.filter(function (f) { return mm.match(f) }); @@ -11413,7 +11564,7 @@ minimatch.match = function (list, pattern, options) { return list }; -Minimatch.prototype.match = match; +Minimatch$1.prototype.match = match; function match (f, partial) { this.debug('match', f, this.pattern); // short-circuit in the case of busted things. @@ -11426,8 +11577,8 @@ function match (f, partial) { var options = this.options; // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/'); + if (path$d.sep !== '/') { + f = f.split(path$d.sep).join('/'); } // treat the test path as a set of pathparts. @@ -11474,7 +11625,7 @@ function match (f, partial) { // Partial means, if you run out of file before you run // out of pattern, then that's fine, as long as all // the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { +Minimatch$1.prototype.matchOne = function (file, pattern, partial) { var options = this.options; this.debug('matchOne', @@ -11498,7 +11649,7 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) { // some invalid regexp stuff in the set. if (p === false) return false - if (p === GLOBSTAR) { + if (p === GLOBSTAR$1) { this.debug('GLOBSTAR', [pattern, p, f]); // "**" @@ -11639,10 +11790,13 @@ function regExpEscape (s) { return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') } -var inherits_browser = createCommonjsModule(function (module) { +var inherits$3 = {exports: {}}; + +var inherits_browser = {exports: {}}; + if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { + inherits_browser.exports = function inherits(ctor, superCtor) { if (superCtor) { ctor.super_ = superCtor; ctor.prototype = Object.create(superCtor.prototype, { @@ -11657,7 +11811,7 @@ if (typeof Object.create === 'function') { }; } else { // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { + inherits_browser.exports = function inherits(ctor, superCtor) { if (superCtor) { ctor.super_ = superCtor; var TempCtor = function () {}; @@ -11667,19 +11821,18 @@ if (typeof Object.create === 'function') { } }; } -}); -var inherits = createCommonjsModule(function (module) { try { - var util = util__default['default']; + var util$3 = require$$0__default['default']; /* istanbul ignore next */ - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; + if (typeof util$3.inherits !== 'function') throw ''; + inherits$3.exports = util$3.inherits; } catch (e) { /* istanbul ignore next */ - module.exports = inherits_browser; + inherits$3.exports = inherits_browser.exports; } -}); + +var pathIsAbsolute = {exports: {}}; function posix(path) { return path.charAt(0) === '/'; @@ -11696,30 +11849,30 @@ function win32(path) { return Boolean(result[2] || isUnc); } -var pathIsAbsolute = process.platform === 'win32' ? win32 : posix; -var posix_1 = posix; -var win32_1 = win32; -pathIsAbsolute.posix = posix_1; -pathIsAbsolute.win32 = win32_1; +pathIsAbsolute.exports = process.platform === 'win32' ? win32 : posix; +pathIsAbsolute.exports.posix = posix; +pathIsAbsolute.exports.win32 = win32; -var alphasort_1 = alphasort; -var alphasorti_1 = alphasorti; -var setopts_1 = setopts; -var ownProp_1 = ownProp; -var makeAbs_1 = makeAbs; -var finish_1 = finish; -var mark_1 = mark$1; -var isIgnored_1 = isIgnored; -var childrenIgnored_1 = childrenIgnored; +var common$3 = {}; -function ownProp (obj, field) { +common$3.alphasort = alphasort; +common$3.alphasorti = alphasorti; +common$3.setopts = setopts$2; +common$3.ownProp = ownProp$2; +common$3.makeAbs = makeAbs; +common$3.finish = finish; +common$3.mark = mark; +common$3.isIgnored = isIgnored$2; +common$3.childrenIgnored = childrenIgnored$2; + +function ownProp$2 (obj, field) { return Object.prototype.hasOwnProperty.call(obj, field) } - - - -var Minimatch$1 = minimatch_1.Minimatch; +var path$c = require$$0__default$2['default']; +var minimatch$2 = minimatch_1; +var isAbsolute$2 = pathIsAbsolute.exports; +var Minimatch = minimatch$2.Minimatch; function alphasorti (a, b) { return a.toLowerCase().localeCompare(b.toLowerCase()) @@ -11745,16 +11898,16 @@ function ignoreMap (pattern) { var gmatcher = null; if (pattern.slice(-3) === '/**') { var gpattern = pattern.replace(/(\/\*\*)+$/, ''); - gmatcher = new Minimatch$1(gpattern, { dot: true }); + gmatcher = new Minimatch(gpattern, { dot: true }); } return { - matcher: new Minimatch$1(pattern, { dot: true }), + matcher: new Minimatch(pattern, { dot: true }), gmatcher: gmatcher } } -function setopts (self, pattern, options) { +function setopts$2 (self, pattern, options) { if (!options) options = {}; @@ -11795,21 +11948,21 @@ function setopts (self, pattern, options) { self.changedCwd = false; var cwd = process.cwd(); - if (!ownProp(options, "cwd")) + if (!ownProp$2(options, "cwd")) self.cwd = cwd; else { - self.cwd = path__default['default'].resolve(options.cwd); + self.cwd = path$c.resolve(options.cwd); self.changedCwd = self.cwd !== cwd; } - self.root = options.root || path__default['default'].resolve(self.cwd, "/"); - self.root = path__default['default'].resolve(self.root); + self.root = options.root || path$c.resolve(self.cwd, "/"); + self.root = path$c.resolve(self.root); if (process.platform === "win32") self.root = self.root.replace(/\\/g, "/"); // TODO: is an absolute `cwd` supposed to be resolved against `root`? // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') - self.cwdAbs = pathIsAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd); + self.cwdAbs = isAbsolute$2(self.cwd) ? self.cwd : makeAbs(self, self.cwd); if (process.platform === "win32") self.cwdAbs = self.cwdAbs.replace(/\\/g, "/"); self.nomount = !!options.nomount; @@ -11819,7 +11972,7 @@ function setopts (self, pattern, options) { options.nonegate = true; options.nocomment = true; - self.minimatch = new Minimatch$1(pattern, options); + self.minimatch = new Minimatch(pattern, options); self.options = self.minimatch.options; } @@ -11874,13 +12027,13 @@ function finish (self) { if (self.ignore.length) all = all.filter(function(m) { - return !isIgnored(self, m) + return !isIgnored$2(self, m) }); self.found = all; } -function mark$1 (self, p) { +function mark (self, p) { var abs = makeAbs(self, p); var c = self.cache[abs]; var m = p; @@ -11907,13 +12060,13 @@ function mark$1 (self, p) { function makeAbs (self, f) { var abs = f; if (f.charAt(0) === '/') { - abs = path__default['default'].join(self.root, f); - } else if (pathIsAbsolute(f) || f === '') { + abs = path$c.join(self.root, f); + } else if (isAbsolute$2(f) || f === '') { abs = f; } else if (self.changedCwd) { - abs = path__default['default'].resolve(self.cwd, f); + abs = path$c.resolve(self.cwd, f); } else { - abs = path__default['default'].resolve(f); + abs = path$c.resolve(f); } if (process.platform === 'win32') @@ -11925,7 +12078,7 @@ function makeAbs (self, f) { // Return true, if pattern ends with globstar '**', for the accompanying parent directory. // Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { +function isIgnored$2 (self, path) { if (!self.ignore.length) return false @@ -11934,7 +12087,7 @@ function isIgnored (self, path) { }) } -function childrenIgnored (self, path) { +function childrenIgnored$2 (self, path) { if (!self.ignore.length) return false @@ -11943,34 +12096,32 @@ function childrenIgnored (self, path) { }) } -var common$2 = { - alphasort: alphasort_1, - alphasorti: alphasorti_1, - setopts: setopts_1, - ownProp: ownProp_1, - makeAbs: makeAbs_1, - finish: finish_1, - mark: mark_1, - isIgnored: isIgnored_1, - childrenIgnored: childrenIgnored_1 -}; +var sync$3 = globSync$1; +globSync$1.GlobSync = GlobSync$1; -var sync$3 = globSync; -globSync.GlobSync = GlobSync; +var fs$c = require$$0__default$3['default']; +var rp$1 = fs_realpath; +var minimatch$1 = minimatch_1; +var path$b = require$$0__default$2['default']; +var assert$1 = require$$6__default['default']; +var isAbsolute$1 = pathIsAbsolute.exports; +var common$2 = common$3; +common$2.alphasort; +common$2.alphasorti; var setopts$1 = common$2.setopts; var ownProp$1 = common$2.ownProp; var childrenIgnored$1 = common$2.childrenIgnored; var isIgnored$1 = common$2.isIgnored; -function globSync (pattern, options) { +function globSync$1 (pattern, options) { if (typeof options === 'function' || arguments.length === 3) throw new TypeError('callback provided to sync glob\n'+ 'See: https://github.com/isaacs/node-glob/issues/167') - return new GlobSync(pattern, options).found + return new GlobSync$1(pattern, options).found } -function GlobSync (pattern, options) { +function GlobSync$1 (pattern, options) { if (!pattern) throw new Error('must provide pattern') @@ -11978,8 +12129,8 @@ function GlobSync (pattern, options) { throw new TypeError('callback provided to sync glob\n'+ 'See: https://github.com/isaacs/node-glob/issues/167') - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) + if (!(this instanceof GlobSync$1)) + return new GlobSync$1(pattern, options) setopts$1(this, pattern, options); @@ -11994,8 +12145,8 @@ function GlobSync (pattern, options) { this._finish(); } -GlobSync.prototype._finish = function () { - assert__default['default'](this instanceof GlobSync); +GlobSync$1.prototype._finish = function () { + assert$1(this instanceof GlobSync$1); if (this.realpath) { var self = this; this.matches.forEach(function (matchset, index) { @@ -12003,7 +12154,7 @@ GlobSync.prototype._finish = function () { for (var p in matchset) { try { p = self._makeAbs(p); - var real = fs_realpath.realpathSync(p, self.realpathCache); + var real = rp$1.realpathSync(p, self.realpathCache); set[real] = true; } catch (er) { if (er.syscall === 'stat') @@ -12018,8 +12169,8 @@ GlobSync.prototype._finish = function () { }; -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert__default['default'](this instanceof GlobSync); +GlobSync$1.prototype._process = function (pattern, index, inGlobStar) { + assert$1(this instanceof GlobSync$1); // Get the first [n] parts of pattern that are all strings. var n = 0; @@ -12056,8 +12207,8 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) { var read; if (prefix === null) read = '.'; - else if (pathIsAbsolute(prefix) || pathIsAbsolute(pattern.join('/'))) { - if (!prefix || !pathIsAbsolute(prefix)) + else if (isAbsolute$1(prefix) || isAbsolute$1(pattern.join('/'))) { + if (!prefix || !isAbsolute$1(prefix)) prefix = '/' + prefix; read = prefix; } else @@ -12069,7 +12220,7 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) { if (childrenIgnored$1(this, read)) return - var isGlobStar = remain[0] === minimatch_1.GLOBSTAR; + var isGlobStar = remain[0] === minimatch$1.GLOBSTAR; if (isGlobStar) this._processGlobStar(prefix, read, abs, remain, index, inGlobStar); else @@ -12077,7 +12228,7 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) { }; -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { +GlobSync$1.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { var entries = this._readdir(abs, inGlobStar); // if the abs isn't a dir, then nothing can match! @@ -12130,7 +12281,7 @@ GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, } if (e.charAt(0) === '/' && !this.nomount) { - e = path__default['default'].join(this.root, e); + e = path$b.join(this.root, e); } this._emitMatch(index, e); } @@ -12153,7 +12304,7 @@ GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, }; -GlobSync.prototype._emitMatch = function (index, e) { +GlobSync$1.prototype._emitMatch = function (index, e) { if (isIgnored$1(this, e)) return @@ -12182,7 +12333,7 @@ GlobSync.prototype._emitMatch = function (index, e) { }; -GlobSync.prototype._readdirInGlobStar = function (abs) { +GlobSync$1.prototype._readdirInGlobStar = function (abs) { // follow all symlinked directories forever // just proceed as if this is a non-globstar situation if (this.follow) @@ -12191,7 +12342,7 @@ GlobSync.prototype._readdirInGlobStar = function (abs) { var entries; var lstat; try { - lstat = fs__default['default'].lstatSync(abs); + lstat = fs$c.lstatSync(abs); } catch (er) { if (er.code === 'ENOENT') { // lstat failed, doesn't exist @@ -12212,7 +12363,7 @@ GlobSync.prototype._readdirInGlobStar = function (abs) { return entries }; -GlobSync.prototype._readdir = function (abs, inGlobStar) { +GlobSync$1.prototype._readdir = function (abs, inGlobStar) { if (inGlobStar && !ownProp$1(this.symlinks, abs)) return this._readdirInGlobStar(abs) @@ -12227,14 +12378,14 @@ GlobSync.prototype._readdir = function (abs, inGlobStar) { } try { - return this._readdirEntries(abs, fs__default['default'].readdirSync(abs)) + return this._readdirEntries(abs, fs$c.readdirSync(abs)) } catch (er) { this._readdirError(abs, er); return null } }; -GlobSync.prototype._readdirEntries = function (abs, entries) { +GlobSync$1.prototype._readdirEntries = function (abs, entries) { // if we haven't asked to stat everything, then just // assume that everything in there exists, so we can avoid // having to stat it a second time. @@ -12255,7 +12406,7 @@ GlobSync.prototype._readdirEntries = function (abs, entries) { return entries }; -GlobSync.prototype._readdirError = function (f, er) { +GlobSync$1.prototype._readdirError = function (f, er) { // handle errors, and cache the information switch (er.code) { case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 @@ -12287,7 +12438,7 @@ GlobSync.prototype._readdirError = function (f, er) { } }; -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { +GlobSync$1.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { var entries = this._readdir(abs, inGlobStar); @@ -12326,7 +12477,7 @@ GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index } }; -GlobSync.prototype._processSimple = function (prefix, index) { +GlobSync$1.prototype._processSimple = function (prefix, index) { // XXX review this. Shouldn't it be doing the mounting etc // before doing stat? kinda weird? var exists = this._stat(prefix); @@ -12338,12 +12489,12 @@ GlobSync.prototype._processSimple = function (prefix, index) { if (!exists) return - if (prefix && pathIsAbsolute(prefix) && !this.nomount) { + if (prefix && isAbsolute$1(prefix) && !this.nomount) { var trail = /[\/\\]$/.test(prefix); if (prefix.charAt(0) === '/') { - prefix = path__default['default'].join(this.root, prefix); + prefix = path$b.join(this.root, prefix); } else { - prefix = path__default['default'].resolve(this.root, prefix); + prefix = path$b.resolve(this.root, prefix); if (trail) prefix += '/'; } @@ -12357,7 +12508,7 @@ GlobSync.prototype._processSimple = function (prefix, index) { }; // Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { +GlobSync$1.prototype._stat = function (f) { var abs = this._makeAbs(f); var needDir = f.slice(-1) === '/'; @@ -12384,7 +12535,7 @@ GlobSync.prototype._stat = function (f) { if (!stat) { var lstat; try { - lstat = fs__default['default'].lstatSync(abs); + lstat = fs$c.lstatSync(abs); } catch (er) { if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { this.statCache[abs] = false; @@ -12394,7 +12545,7 @@ GlobSync.prototype._stat = function (f) { if (lstat && lstat.isSymbolicLink()) { try { - stat = fs__default['default'].statSync(abs); + stat = fs$c.statSync(abs); } catch (er) { stat = lstat; } @@ -12417,11 +12568,11 @@ GlobSync.prototype._stat = function (f) { return c }; -GlobSync.prototype._mark = function (p) { +GlobSync$1.prototype._mark = function (p) { return common$2.mark(this, p) }; -GlobSync.prototype._makeAbs = function (f) { +GlobSync$1.prototype._makeAbs = function (f) { return common$2.makeAbs(this, f) }; @@ -12430,9 +12581,9 @@ GlobSync.prototype._makeAbs = function (f) { // presumably different callback function. // This makes sure that own properties are retained, so that // decorations and such are not lost along the way. -var wrappy_1 = wrappy; -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) +var wrappy_1 = wrappy$2; +function wrappy$2 (fn, cb) { + if (fn && cb) return wrappy$2(fn)(cb) if (typeof fn !== 'function') throw new TypeError('need wrapper function') @@ -12459,13 +12610,16 @@ function wrappy (fn, cb) { } } -var once_1 = wrappy_1(once); -var strict = wrappy_1(onceStrict); +var once$3 = {exports: {}}; + +var wrappy$1 = wrappy_1; +once$3.exports = wrappy$1(once$2); +once$3.exports.strict = wrappy$1(onceStrict); -once.proto = once(function () { +once$2.proto = once$2(function () { Object.defineProperty(Function.prototype, 'once', { value: function () { - return once(this) + return once$2(this) }, configurable: true }); @@ -12478,7 +12632,7 @@ once.proto = once(function () { }); }); -function once (fn) { +function once$2 (fn) { var f = function () { if (f.called) return f.value f.called = true; @@ -12500,14 +12654,14 @@ function onceStrict (fn) { f.called = false; return f } -once_1.strict = strict; +var wrappy = wrappy_1; var reqs = Object.create(null); +var once$1 = once$3.exports; +var inflight_1 = wrappy(inflight$1); -var inflight_1 = wrappy_1(inflight); - -function inflight (key, cb) { +function inflight$1 (key, cb) { if (reqs[key]) { reqs[key].push(cb); return null @@ -12518,10 +12672,10 @@ function inflight (key, cb) { } function makeres (key) { - return once_1(function RES () { + return once$1(function RES () { var cbs = reqs[key]; var len = cbs.length; - var args = slice$2(arguments); + var args = slice$4(arguments); // XXX It's somewhat ambiguous whether a new callback added in this // pass should be queued for later execution if something in the @@ -12548,7 +12702,7 @@ function makeres (key) { }) } -function slice$2 (args) { +function slice$4 (args) { var length = args.length; var array = []; @@ -12596,38 +12750,48 @@ function slice$2 (args) { // `true` for files, and [children,...] for directories, or `false` for // things that don't exist. -var glob_1 = glob; - -var EE = events__default['default'].EventEmitter; -var setopts$2 = common$2.setopts; -var ownProp$2 = common$2.ownProp; - - -var childrenIgnored$2 = common$2.childrenIgnored; -var isIgnored$2 = common$2.isIgnored; - - - -function glob (pattern, options, cb) { +var glob_1 = glob$1; + +var fs$b = require$$0__default$3['default']; +var rp = fs_realpath; +var minimatch = minimatch_1; +var inherits$2 = inherits$3.exports; +var EE = require$$0__default$4['default'].EventEmitter; +var path$a = require$$0__default$2['default']; +var assert = require$$6__default['default']; +var isAbsolute = pathIsAbsolute.exports; +var globSync = sync$3; +var common$1 = common$3; +common$1.alphasort; +common$1.alphasorti; +var setopts = common$1.setopts; +var ownProp = common$1.ownProp; +var inflight = inflight_1; +var childrenIgnored = common$1.childrenIgnored; +var isIgnored = common$1.isIgnored; + +var once = once$3.exports; + +function glob$1 (pattern, options, cb) { if (typeof options === 'function') cb = options, options = {}; if (!options) options = {}; if (options.sync) { if (cb) throw new TypeError('callback provided to sync glob') - return sync$3(pattern, options) + return globSync(pattern, options) } return new Glob(pattern, options, cb) } -glob.sync = sync$3; -var GlobSync$1 = glob.GlobSync = sync$3.GlobSync; +glob$1.sync = globSync; +var GlobSync = glob$1.GlobSync = globSync.GlobSync; // old api surface -glob.glob = glob; +glob$1.glob = glob$1; -function extend$1 (origin, add) { +function extend$3 (origin, add) { if (add === null || typeof add !== 'object') { return origin } @@ -12640,8 +12804,8 @@ function extend$1 (origin, add) { return origin } -glob.hasMagic = function (pattern, options_) { - var options = extend$1({}, options_); +glob$1.hasMagic = function (pattern, options_) { + var options = extend$3({}, options_); options.noprocess = true; var g = new Glob(pattern, options); @@ -12661,8 +12825,8 @@ glob.hasMagic = function (pattern, options_) { return false }; -glob.Glob = Glob; -inherits(Glob, EE); +glob$1.Glob = Glob; +inherits$2(Glob, EE); function Glob (pattern, options, cb) { if (typeof options === 'function') { cb = options; @@ -12672,13 +12836,13 @@ function Glob (pattern, options, cb) { if (options && options.sync) { if (cb) throw new TypeError('callback provided to sync glob') - return new GlobSync$1(pattern, options) + return new GlobSync(pattern, options) } if (!(this instanceof Glob)) return new Glob(pattern, options, cb) - setopts$2(this, pattern, options); + setopts(this, pattern, options); this._didRealPath = false; // process each pattern in the minimatch set @@ -12691,7 +12855,7 @@ function Glob (pattern, options, cb) { this.matches = new Array(n); if (typeof cb === 'function') { - cb = once_1(cb); + cb = once(cb); this.on('error', cb); this.on('end', function (matches) { cb(null, matches); @@ -12732,14 +12896,14 @@ function Glob (pattern, options, cb) { } Glob.prototype._finish = function () { - assert__default['default'](this instanceof Glob); + assert(this instanceof Glob); if (this.aborted) return if (this.realpath && !this._didRealpath) return this._realpath() - common$2.finish(this); + common$1.finish(this); this.emit('end', this.found); }; @@ -12781,7 +12945,7 @@ Glob.prototype._realpathSet = function (index, cb) { // one or more of the links in the realpath couldn't be // resolved. just return the abs value in that case. p = self._makeAbs(p); - fs_realpath.realpath(p, self.realpathCache, function (er, real) { + rp.realpath(p, self.realpathCache, function (er, real) { if (!er) set[real] = true; else if (er.syscall === 'stat') @@ -12798,11 +12962,11 @@ Glob.prototype._realpathSet = function (index, cb) { }; Glob.prototype._mark = function (p) { - return common$2.mark(this, p) + return common$1.mark(this, p) }; Glob.prototype._makeAbs = function (f) { - return common$2.makeAbs(this, f) + return common$1.makeAbs(this, f) }; Glob.prototype.abort = function () { @@ -12842,8 +13006,8 @@ Glob.prototype.resume = function () { }; Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert__default['default'](this instanceof Glob); - assert__default['default'](typeof cb === 'function'); + assert(this instanceof Glob); + assert(typeof cb === 'function'); if (this.aborted) return @@ -12891,8 +13055,8 @@ Glob.prototype._process = function (pattern, index, inGlobStar, cb) { var read; if (prefix === null) read = '.'; - else if (pathIsAbsolute(prefix) || pathIsAbsolute(pattern.join('/'))) { - if (!prefix || !pathIsAbsolute(prefix)) + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) prefix = '/' + prefix; read = prefix; } else @@ -12901,10 +13065,10 @@ Glob.prototype._process = function (pattern, index, inGlobStar, cb) { var abs = this._makeAbs(read); //if ignored, skip _processing - if (childrenIgnored$2(this, read)) + if (childrenIgnored(this, read)) return cb() - var isGlobStar = remain[0] === minimatch_1.GLOBSTAR; + var isGlobStar = remain[0] === minimatch.GLOBSTAR; if (isGlobStar) this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb); else @@ -12972,7 +13136,7 @@ Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, in } if (e.charAt(0) === '/' && !this.nomount) { - e = path__default['default'].join(this.root, e); + e = path$a.join(this.root, e); } this._emitMatch(index, e); } @@ -13000,7 +13164,7 @@ Glob.prototype._emitMatch = function (index, e) { if (this.aborted) return - if (isIgnored$2(this, e)) + if (isIgnored(this, e)) return if (this.paused) { @@ -13008,7 +13172,7 @@ Glob.prototype._emitMatch = function (index, e) { return } - var abs = pathIsAbsolute(e) ? e : this._makeAbs(e); + var abs = isAbsolute(e) ? e : this._makeAbs(e); if (this.mark) e = this._mark(e); @@ -13045,10 +13209,10 @@ Glob.prototype._readdirInGlobStar = function (abs, cb) { var lstatkey = 'lstat\0' + abs; var self = this; - var lstatcb = inflight_1(lstatkey, lstatcb_); + var lstatcb = inflight(lstatkey, lstatcb_); if (lstatcb) - fs__default['default'].lstat(abs, lstatcb); + fs$b.lstat(abs, lstatcb); function lstatcb_ (er, lstat) { if (er && er.code === 'ENOENT') @@ -13071,15 +13235,15 @@ Glob.prototype._readdir = function (abs, inGlobStar, cb) { if (this.aborted) return - cb = inflight_1('readdir\0'+abs+'\0'+inGlobStar, cb); + cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb); if (!cb) return //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp$2(this.symlinks, abs)) + if (inGlobStar && !ownProp(this.symlinks, abs)) return this._readdirInGlobStar(abs, cb) - if (ownProp$2(this.cache, abs)) { + if (ownProp(this.cache, abs)) { var c = this.cache[abs]; if (!c || c === 'FILE') return cb() @@ -13087,7 +13251,7 @@ Glob.prototype._readdir = function (abs, inGlobStar, cb) { if (Array.isArray(c)) return cb(null, c) } - fs__default['default'].readdir(abs, readdirCb(this, abs, cb)); + fs$b.readdir(abs, readdirCb(this, abs, cb)); }; function readdirCb (self, abs, cb) { @@ -13230,12 +13394,12 @@ Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { if (!exists) return cb() - if (prefix && pathIsAbsolute(prefix) && !this.nomount) { + if (prefix && isAbsolute(prefix) && !this.nomount) { var trail = /[\/\\]$/.test(prefix); if (prefix.charAt(0) === '/') { - prefix = path__default['default'].join(this.root, prefix); + prefix = path$a.join(this.root, prefix); } else { - prefix = path__default['default'].resolve(this.root, prefix); + prefix = path$a.resolve(this.root, prefix); if (trail) prefix += '/'; } @@ -13257,7 +13421,7 @@ Glob.prototype._stat = function (f, cb) { if (f.length > this.maxLength) return cb() - if (!this.stat && ownProp$2(this.cache, abs)) { + if (!this.stat && ownProp(this.cache, abs)) { var c = this.cache[abs]; if (Array.isArray(c)) @@ -13287,15 +13451,15 @@ Glob.prototype._stat = function (f, cb) { } var self = this; - var statcb = inflight_1('stat\0' + abs, lstatcb_); + var statcb = inflight('stat\0' + abs, lstatcb_); if (statcb) - fs__default['default'].lstat(abs, statcb); + fs$b.lstat(abs, statcb); function lstatcb_ (er, lstat) { if (lstat && lstat.isSymbolicLink()) { // If it's a symlink, then treat it as the target, unless // the target does not exist, then treat it as a file. - return fs__default['default'].stat(abs, function (er, stat) { + return fs$b.stat(abs, function (er, stat) { if (er) self._stat2(f, abs, null, lstat, cb); else @@ -13336,85 +13500,88 @@ Glob.prototype._stat2 = function (f, abs, er, stat, cb) { * @author Feross Aboukhadijeh * @license MIT */ + var isBuffer = function isBuffer (obj) { return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) }; -var own = {}.hasOwnProperty; +var own$g = {}.hasOwnProperty; -var unistUtilStringifyPosition = stringify; +var unistUtilStringifyPosition$3 = stringify$h; -function stringify(value) { +function stringify$h(value) { // Nothing. if (!value || typeof value !== 'object') { return '' } // Node. - if (own.call(value, 'position') || own.call(value, 'type')) { - return position(value.position) + if (own$g.call(value, 'position') || own$g.call(value, 'type')) { + return position$6(value.position) } // Position. - if (own.call(value, 'start') || own.call(value, 'end')) { - return position(value) + if (own$g.call(value, 'start') || own$g.call(value, 'end')) { + return position$6(value) } // Point. - if (own.call(value, 'line') || own.call(value, 'column')) { - return point(value) + if (own$g.call(value, 'line') || own$g.call(value, 'column')) { + return point$v(value) } // ? return '' } -function point(point) { +function point$v(point) { if (!point || typeof point !== 'object') { point = {}; } - return index(point.line) + ':' + index(point.column) + return index$4(point.line) + ':' + index$4(point.column) } -function position(pos) { +function position$6(pos) { if (!pos || typeof pos !== 'object') { pos = {}; } - return point(pos.start) + '-' + point(pos.end) + return point$v(pos.start) + '-' + point$v(pos.end) } -function index(value) { +function index$4(value) { return value && typeof value === 'number' ? value : 1 } -var vfileMessage = VMessage; +var stringify$g = unistUtilStringifyPosition$3; + +var vfileMessage$1 = VMessage$3; // Inherit from `Error#`. -function VMessagePrototype() {} -VMessagePrototype.prototype = Error.prototype; -VMessage.prototype = new VMessagePrototype(); +function VMessagePrototype$1() {} +VMessagePrototype$1.prototype = Error.prototype; +VMessage$3.prototype = new VMessagePrototype$1(); // Message properties. -var proto = VMessage.prototype; +var proto$2 = VMessage$3.prototype; -proto.file = ''; -proto.name = ''; -proto.reason = ''; -proto.message = ''; -proto.stack = ''; -proto.fatal = null; -proto.column = null; -proto.line = null; +proto$2.file = ''; +proto$2.name = ''; +proto$2.reason = ''; +proto$2.message = ''; +proto$2.stack = ''; +proto$2.fatal = null; +proto$2.column = null; +proto$2.line = null; // Construct a new VMessage. // // Note: We cannot invoke `Error` on the created context, as that adds readonly // `line` and `column` attributes on Safari 9, thus throwing and failing the // data. -function VMessage(reason, position, origin) { +function VMessage$3(reason, position, origin) { var parts; var range; var location; @@ -13424,8 +13591,8 @@ function VMessage(reason, position, origin) { position = null; } - parts = parseOrigin(origin); - range = unistUtilStringifyPosition(position) || '1:1'; + parts = parseOrigin$1(origin); + range = stringify$g(position) || '1:1'; location = { start: {line: null, column: null}, @@ -13463,7 +13630,7 @@ function VMessage(reason, position, origin) { this.ruleId = parts[1]; } -function parseOrigin(origin) { +function parseOrigin$1(origin) { var result = [null, null]; var index; @@ -13481,124 +13648,128 @@ function parseOrigin(origin) { return result } -var minpath = path__default['default']; +var minpath$1 = require$$0__default$2['default']; -var minproc = process; +var minproc$1 = process; + +var p$1 = minpath$1; +var proc$2 = minproc$1; +var buffer$5 = isBuffer; -var core$1 = VFile; +var core$3 = VFile$3; -var own$1 = {}.hasOwnProperty; +var own$f = {}.hasOwnProperty; // Order of setting (least specific to most), we need this because otherwise // `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a // stem can be set. -var order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']; +var order$4 = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']; -VFile.prototype.toString = toString; +VFile$3.prototype.toString = toString$9; // Access full path (`~/index.min.js`). -Object.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath}); +Object.defineProperty(VFile$3.prototype, 'path', {get: getPath$1, set: setPath$1}); // Access parent path (`~`). -Object.defineProperty(VFile.prototype, 'dirname', { - get: getDirname, - set: setDirname +Object.defineProperty(VFile$3.prototype, 'dirname', { + get: getDirname$1, + set: setDirname$1 }); // Access basename (`index.min.js`). -Object.defineProperty(VFile.prototype, 'basename', { - get: getBasename, - set: setBasename +Object.defineProperty(VFile$3.prototype, 'basename', { + get: getBasename$1, + set: setBasename$1 }); // Access extname (`.js`). -Object.defineProperty(VFile.prototype, 'extname', { - get: getExtname, - set: setExtname +Object.defineProperty(VFile$3.prototype, 'extname', { + get: getExtname$1, + set: setExtname$1 }); // Access stem (`index.min`). -Object.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem}); +Object.defineProperty(VFile$3.prototype, 'stem', {get: getStem$1, set: setStem$1}); // Construct a new file. -function VFile(options) { +function VFile$3(options) { var prop; var index; if (!options) { options = {}; - } else if (typeof options === 'string' || isBuffer(options)) { + } else if (typeof options === 'string' || buffer$5(options)) { options = {contents: options}; } else if ('message' in options && 'messages' in options) { return options } - if (!(this instanceof VFile)) { - return new VFile(options) + if (!(this instanceof VFile$3)) { + return new VFile$3(options) } this.data = {}; this.messages = []; this.history = []; - this.cwd = minproc.cwd(); + this.cwd = proc$2.cwd(); // Set path related properties in the correct order. index = -1; - while (++index < order.length) { - prop = order[index]; + while (++index < order$4.length) { + prop = order$4[index]; - if (own$1.call(options, prop)) { + if (own$f.call(options, prop)) { this[prop] = options[prop]; } } // Set non-path related properties. for (prop in options) { - if (order.indexOf(prop) < 0) { + if (order$4.indexOf(prop) < 0) { this[prop] = options[prop]; } } } -function getPath() { +function getPath$1() { return this.history[this.history.length - 1] } -function setPath(path) { - assertNonEmpty(path, 'path'); +function setPath$1(path) { + assertNonEmpty$1(path, 'path'); if (this.path !== path) { this.history.push(path); } } -function getDirname() { - return typeof this.path === 'string' ? minpath.dirname(this.path) : undefined +function getDirname$1() { + return typeof this.path === 'string' ? p$1.dirname(this.path) : undefined } -function setDirname(dirname) { - assertPath(this.path, 'dirname'); - this.path = minpath.join(dirname || '', this.basename); +function setDirname$1(dirname) { + assertPath$1(this.path, 'dirname'); + this.path = p$1.join(dirname || '', this.basename); } -function getBasename() { - return typeof this.path === 'string' ? minpath.basename(this.path) : undefined +function getBasename$1() { + return typeof this.path === 'string' ? p$1.basename(this.path) : undefined } -function setBasename(basename) { - assertNonEmpty(basename, 'basename'); - assertPart(basename, 'basename'); - this.path = minpath.join(this.dirname || '', basename); +function setBasename$1(basename) { + assertNonEmpty$1(basename, 'basename'); + assertPart$1(basename, 'basename'); + this.path = p$1.join(this.dirname || '', basename); } -function getExtname() { - return typeof this.path === 'string' ? minpath.extname(this.path) : undefined +function getExtname$1() { + return typeof this.path === 'string' ? p$1.extname(this.path) : undefined } -function setExtname(extname) { - assertPart(extname, 'extname'); - assertPath(this.path, 'extname'); +function setExtname$1(extname) { + assertPart$1(extname, 'extname'); + assertPath$1(this.path, 'extname'); if (extname) { if (extname.charCodeAt(0) !== 46 /* `.` */) { @@ -13610,59 +13781,62 @@ function setExtname(extname) { } } - this.path = minpath.join(this.dirname, this.stem + (extname || '')); + this.path = p$1.join(this.dirname, this.stem + (extname || '')); } -function getStem() { +function getStem$1() { return typeof this.path === 'string' - ? minpath.basename(this.path, this.extname) + ? p$1.basename(this.path, this.extname) : undefined } -function setStem(stem) { - assertNonEmpty(stem, 'stem'); - assertPart(stem, 'stem'); - this.path = minpath.join(this.dirname || '', stem + (this.extname || '')); +function setStem$1(stem) { + assertNonEmpty$1(stem, 'stem'); + assertPart$1(stem, 'stem'); + this.path = p$1.join(this.dirname || '', stem + (this.extname || '')); } // Get the value of the file. -function toString(encoding) { +function toString$9(encoding) { return (this.contents || '').toString(encoding) } // Assert that `part` is not a path (i.e., does not contain `p.sep`). -function assertPart(part, name) { - if (part && part.indexOf(minpath.sep) > -1) { +function assertPart$1(part, name) { + if (part && part.indexOf(p$1.sep) > -1) { throw new Error( - '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`' + '`' + name + '` cannot be a path: did not expect `' + p$1.sep + '`' ) } } // Assert that `part` is not empty. -function assertNonEmpty(part, name) { +function assertNonEmpty$1(part, name) { if (!part) { throw new Error('`' + name + '` cannot be empty') } } // Assert `path` exists. -function assertPath(path, name) { +function assertPath$1(path, name) { if (!path) { throw new Error('Setting `' + name + '` requires `path` to be set too') } } -var lib$3 = core$1; +var VMessage$2 = vfileMessage$1; +var VFile$2 = core$3; -core$1.prototype.message = message; -core$1.prototype.info = info; -core$1.prototype.fail = fail; +var lib$6 = VFile$2; + +VFile$2.prototype.message = message$1; +VFile$2.prototype.info = info$1; +VFile$2.prototype.fail = fail$2; // Create a message with `reason` at `position`. // When an error is passed in as `reason`, copies the stack. -function message(reason, position, origin) { - var message = new vfileMessage(reason, position, origin); +function message$1(reason, position, origin) { + var message = new VMessage$2(reason, position, origin); if (this.path) { message.name = this.path + ':' + message.name; @@ -13677,7 +13851,7 @@ function message(reason, position, origin) { } // Fail: creates a vmessage, associates it with the file, and throws it. -function fail() { +function fail$2() { var message = this.message.apply(this, arguments); message.fatal = true; @@ -13687,7 +13861,7 @@ function fail() { // Info: creates a vmessage, associates it with the file, and marks the fatality // as null. -function info() { +function info$1() { var message = this.message.apply(this, arguments); message.fatal = null; @@ -13695,7 +13869,10 @@ function info() { return message } -var vfile = lib$3; +var vfile$9 = lib$6; + +var buffer$4 = isBuffer; +var vfile$8 = vfile$9; var core$2 = toVFile; @@ -13703,45 +13880,52 @@ var core$2 = toVFile; // buffer, it’s used as the path. In all other cases, the options are passed // through to `vfile()`. function toVFile(options) { - if (typeof options === 'string' || isBuffer(options)) { + if (typeof options === 'string' || buffer$4(options)) { options = {path: String(options)}; } - return vfile(options) + return vfile$8(options) } -var read$2 = readSync; -var write = writeSync; +var sync$2 = {}; + +var fs$a = require$$0__default$3['default']; +var path$9 = require$$0__default$2['default']; +var vfile$7 = core$2; + +sync$2.read = readSync; +sync$2.write = writeSync; // Create a virtual file and read it in, synchronously. function readSync(description, options) { - var file = core$2(description); - file.contents = fs__default['default'].readFileSync(path__default['default'].resolve(file.cwd, file.path), options); + var file = vfile$7(description); + file.contents = fs$a.readFileSync(path$9.resolve(file.cwd, file.path), options); return file } // Create a virtual file and write it out, synchronously. function writeSync(description, options) { - var file = core$2(description); - fs__default['default'].writeFileSync( - path__default['default'].resolve(file.cwd, file.path), + var file = vfile$7(description); + fs$a.writeFileSync( + path$9.resolve(file.cwd, file.path), file.contents || '', options ); return file } -var sync$4 = { - read: read$2, - write: write -}; +var async$1 = {}; -var read_1 = read$3; -var write_1 = write$1; +var fs$9 = require$$0__default$3['default']; +var path$8 = require$$0__default$2['default']; +var vfile$6 = core$2; + +async$1.read = read$3; +async$1.write = write; // Create a virtual file and read it in, asynchronously. function read$3(description, options, callback) { - var file = core$2(description); + var file = vfile$6(description); if (!callback && typeof options === 'function') { callback = options; @@ -13762,12 +13946,12 @@ function read$3(description, options, callback) { var fp; try { - fp = path__default['default'].resolve(file.cwd, file.path); + fp = path$8.resolve(file.cwd, file.path); } catch (error) { return reject(error) } - fs__default['default'].readFile(fp, options, done); + fs$9.readFile(fp, options, done); function done(error, res) { if (error) { @@ -13781,8 +13965,8 @@ function read$3(description, options, callback) { } // Create a virtual file and write it out, asynchronously. -function write$1(description, options, callback) { - var file = core$2(description); +function write(description, options, callback) { + var file = vfile$6(description); // Weird, right? Otherwise `fs` doesn’t accept it. if (!callback && typeof options === 'function') { @@ -13804,12 +13988,12 @@ function write$1(description, options, callback) { var fp; try { - fp = path__default['default'].resolve(file.cwd, file.path); + fp = path$8.resolve(file.cwd, file.path); } catch (error) { return reject(error) } - fs__default['default'].writeFile(fp, file.contents || '', options, done); + fs$9.writeFile(fp, file.contents || '', options, done); function done(error) { if (error) { @@ -13821,35 +14005,30 @@ function write$1(description, options, callback) { } } -var async = { - read: read_1, - write: write_1 -}; +var vfile$5 = core$2; +var sync$1 = sync$2; +var async = async$1; -var fs = core$2; +var fs$8 = vfile$5; -core$2.read = async.read; -core$2.readSync = sync$4.read; -core$2.write = async.write; -core$2.writeSync = sync$4.write; +vfile$5.read = async.read; +vfile$5.readSync = sync$1.read; +vfile$5.write = async.write; +vfile$5.writeSync = sync$1.write; -var toVfile = fs; +var toVfile = fs$8; -var readdir = fs__default['default'].readdir; -var stat = fs__default['default'].stat; -var sep$1 = path__default['default'].sep; -var join$1 = path__default['default'].join; -var relative$2 = path__default['default'].relative; -var resolve$3 = path__default['default'].resolve; -var basename = path__default['default'].basename; -var extname = path__default['default'].extname; -var magic = glob_1.hasMagic; +var path$7 = require$$0__default$2['default']; +var fs$7 = require$$0__default$3['default']; +var gitignore = ignore$2; +var glob = glob_1; +var vfile$4 = toVfile; -var finder$1 = find; +var finder = find$1; // Search `patterns`, a mix of globs, paths, and files. -function find(input, options, callback) { - expand$1(input, options, done); +function find$1(input, options, callback) { + expand$2(input, options, done); function done(error, result) { /* istanbul ignore if - glob errors are unusual. @@ -13864,8 +14043,7 @@ function find(input, options, callback) { // Expand the given glob patterns, search given and found directories, and map // to vfiles. -function expand$1(input, options, next) { - var cwd = options.cwd; +function expand$2(input, options, next) { var paths = []; var actual = 0; var expected = 0; @@ -13874,22 +14052,23 @@ function expand$1(input, options, next) { input.forEach(each); if (!expected) { - search(paths, options, done); + search$1(paths, options, done); } function each(file) { if (typeof file === 'string') { - if (magic(file)) { + if (glob.hasMagic(file)) { expected++; - glob_1(file, {cwd: cwd}, one); + glob(file, {cwd: options.cwd}, one); } else { // `relative` to make the paths canonical. - file = relative$2(cwd, resolve$3(cwd, file)) || '.'; + file = + path$7.relative(options.cwd, path$7.resolve(options.cwd, file)) || '.'; paths.push(file); } } else { - file.cwd = cwd; - file.path = relative$2(cwd, file.path); + file.cwd = options.cwd; + file.path = path$7.relative(options.cwd, file.path); file.history = [file.path]; paths.push(file); } @@ -13910,7 +14089,7 @@ function expand$1(input, options, next) { paths = paths.concat(files); if (actual === expected) { - search(paths, options, done); + search$1(paths, options, done); } } } @@ -13926,12 +14105,8 @@ function expand$1(input, options, next) { } // Search `paths`. -function search(input, options, next) { - var cwd = options.cwd; - var silent = options.silentlyIgnore; - var nested = options.nested; - var extensions = options.extensions; - var extraIgnore = ignore().add(options.ignorePatterns); +function search$1(input, options, next) { + var extraIgnore = gitignore().add(options.ignorePatterns); var files = []; var expected = 0; var actual = 0; @@ -13945,17 +14120,17 @@ function search(input, options, next) { return each function each(file) { - var ext = typeof file === 'string' ? extname(file) : file.extname; + var ext = typeof file === 'string' ? path$7.extname(file) : file.extname; var part; // Normalise globs. if (typeof file === 'string') { - file = file.split('/').join(path__default['default'].sep); + file = file.split('/').join(path$7.sep); } part = base(file); - if (nested && (part.charAt(0) === '.' || part === 'node_modules')) { + if (options.nested && (part.charAt(0) === '.' || part === 'node_modules')) { return } @@ -13971,25 +14146,25 @@ function search(input, options, next) { var ignored = result && result.ignored; var dir = result && result.stats && result.stats.isDirectory(); - if (ignored && (nested || silent)) { + if (ignored && (options.nested || options.silentlyIgnore)) { return one(null, []) } if (!ignored && dir) { - return readdir(resolve$3(cwd, filePath(file)), directory) + return fs$7.readdir(path$7.resolve(options.cwd, filePath(file)), directory) } if ( - nested && !dir && - extensions.length !== 0 && - extensions.indexOf(ext) === -1 + options.nested && + options.extensions.length > 0 && + options.extensions.indexOf(ext) === -1 ) { return one(null, []) } - file = toVfile(file); - file.cwd = cwd; + file = vfile$4(file); + file.cwd = options.cwd; if (ignored) { try { @@ -14014,8 +14189,8 @@ function search(input, options, next) { /* istanbul ignore if - Should not happen often: the directory is `stat`ed * first, which was ok, but reading it is not. */ if (error) { - file = toVfile(filePath(file)); - file.cwd = cwd; + file = vfile$4(filePath(file)); + file.cwd = options.cwd; try { file.fail('Cannot read directory'); @@ -14023,7 +14198,7 @@ function search(input, options, next) { one(null, [file]); } else { - search( + search$1( basenames.map(concat), Object.assign({}, options, {nested: true}), one @@ -14046,17 +14221,14 @@ function search(input, options, next) { } function concat(value) { - return join$1(filePath(file), value) + return path$7.join(filePath(file), value) } } } function statAndIgnore(file, options, callback) { - var ignore = options.ignore; - var extraIgnore = options.extraIgnore; - var cwd = options.cwd; - var fp = resolve$3(cwd, filePath(file)); - var normal = relative$2(cwd, fp); + var fp = path$7.resolve(options.cwd, filePath(file)); + var normal = path$7.relative(options.cwd, fp); var expected = 1; var actual = 0; var stats; @@ -14064,10 +14236,10 @@ function statAndIgnore(file, options, callback) { if (!file.contents) { expected++; - stat(fp, handleStat); + fs$7.stat(fp, handleStat); } - ignore.check(fp, handleIgnore); + options.ignore.check(fp, handleIgnore); function handleStat(error, value) { stats = value; @@ -14092,17 +14264,17 @@ function statAndIgnore(file, options, callback) { ignored || (normal === '' || normal === '..' || - normal.charAt(0) === sep$1 || - normal.slice(0, 3) === '..' + sep$1 + normal.charAt(0) === path$7.sep || + normal.slice(0, 3) === '..' + path$7.sep ? false - : extraIgnore.ignores(normal)) + : options.extraIgnore.ignores(normal)) }); } } } function base(file) { - return typeof file === 'string' ? basename(file) : file.basename + return typeof file === 'string' ? path$7.basename(file) : file.basename } function filePath(file) { @@ -14117,23 +14289,24 @@ function oneFileMode(result) { ) } -var fileSystem_1 = fileSystem; +var Ignore = ignore$1; +var find = finder; -// Find files from the file-system. -function fileSystem(context, settings, next) { - var input = context.files; +var fileSystem_1$1 = fileSystem$3; - if (input.length === 0) { +// Find files from the file-system. +function fileSystem$3(context, settings, next) { + if (context.files.length === 0) { next(); } else { - finder$1( - input, + find( + context.files, { cwd: settings.cwd, extensions: settings.extensions, silentlyIgnore: settings.silentlyIgnore, ignorePatterns: settings.ignorePatterns, - ignore: new ignore$1({ + ignore: new Ignore({ cwd: settings.cwd, detectIgnore: settings.detectIgnore, ignoreName: settings.ignoreName, @@ -14177,16 +14350,19 @@ function fileSystem(context, settings, next) { } } -var toString$1 = Object.prototype.toString; +/* eslint-disable node/no-deprecated-api */ + +var toString$8 = Object.prototype.toString; var isModern = ( + typeof Buffer !== 'undefined' && typeof Buffer.alloc === 'function' && typeof Buffer.allocUnsafe === 'function' && typeof Buffer.from === 'function' ); function isArrayBuffer (input) { - return toString$1.call(input).slice(8, -1) === 'ArrayBuffer' + return toString$8.call(input).slice(8, -1) === 'ArrayBuffer' } function fromArrayBuffer (obj, byteOffset, length) { @@ -14227,7 +14403,7 @@ function fromString (string, encoding) { : new Buffer(string, encoding) } -function bufferFrom (value, encodingOrOffset, length) { +function bufferFrom$1 (value, encodingOrOffset, length) { if (typeof value === 'number') { throw new TypeError('"value" argument must not be a number') } @@ -14245,9 +14421,11 @@ function bufferFrom (value, encodingOrOffset, length) { : new Buffer(value) } -var bufferFrom_1 = bufferFrom; +var bufferFrom_1 = bufferFrom$1; -var typedarray = createCommonjsModule(function (module, exports) { +var typedarray = {}; + +(function (exports) { var undefined$1 = (void 0); // Paranoia // Beyond this value, index getters/setters (i.e. array[0], array[1]) are so slow to @@ -14877,11 +15055,11 @@ function packF32(v) { return packIEEE754(v, 8, 23); } exports.DataView = exports.DataView || DataView; }()); -}); - -var Writable = require$$0__default['default'].Writable; - +}(typedarray)); +var Writable = require$$0__default$5['default'].Writable; +var inherits$1 = inherits$3.exports; +var bufferFrom = bufferFrom_1; if (typeof Uint8Array === 'undefined') { var U8 = typedarray.Uint8Array; @@ -14920,7 +15098,7 @@ function ConcatStream(opts, cb) { } var concatStream = ConcatStream; -inherits(ConcatStream, Writable); +inherits$1(ConcatStream, Writable); ConcatStream.prototype._write = function(chunk, enc, next) { this.body.push(chunk); @@ -14947,12 +15125,12 @@ ConcatStream.prototype.getBody = function () { return this.body }; -function isArrayish$1 (arr) { +function isArrayish (arr) { return /Array\]$/.test(Object.prototype.toString.call(arr)) } function isBufferish (p) { - return typeof p === 'string' || isArrayish$1(p) || (p && typeof p.subarray === 'function') + return typeof p === 'string' || isArrayish(p) || (p && typeof p.subarray === 'function') } function stringConcat (parts) { @@ -14964,9 +15142,9 @@ function stringConcat (parts) { } else if (Buffer.isBuffer(p)) { strings.push(p); } else if (isBufferish(p)) { - strings.push(bufferFrom_1(p)); + strings.push(bufferFrom(p)); } else { - strings.push(bufferFrom_1(String(p))); + strings.push(bufferFrom(String(p))); } } if (Buffer.isBuffer(parts[0])) { @@ -14985,9 +15163,9 @@ function bufferConcat (parts) { if (Buffer.isBuffer(p)) { bufs.push(p); } else if (isBufferish(p)) { - bufs.push(bufferFrom_1(p)); + bufs.push(bufferFrom(p)); } else { - bufs.push(bufferFrom_1(String(p))); + bufs.push(bufferFrom(String(p))); } } return Buffer.concat(bufs) @@ -15005,7 +15183,7 @@ function u8Concat (parts) { var len = 0; for (var i = 0; i < parts.length; i++) { if (typeof parts[i] === 'string') { - parts[i] = bufferFrom_1(parts[i]); + parts[i] = bufferFrom(parts[i]); } len += parts[i].length; } @@ -15019,18 +15197,17 @@ function u8Concat (parts) { return u8 } -var debug$1 = src('unified-engine:file-set-pipeline:stdin'); +var debug$b = src.exports('unified-engine:file-set-pipeline:stdin'); +var vfile$3 = toVfile; +var concat = concatStream; +var stdin_1 = stdin$1; - -var stdin_1 = stdin; - -function stdin(context, settings, next) { - var streamIn = settings.streamIn; +function stdin$1(context, settings, next) { var error; - if (settings.files && settings.files.length !== 0) { - debug$1('Ignoring `streamIn`'); + if (settings.files && settings.files.length > 0) { + debug$b('Ignoring `streamIn`'); if (settings.filePath) { error = new Error( @@ -15043,21 +15220,21 @@ function stdin(context, settings, next) { return } - if (streamIn.isTTY) { - debug$1('Cannot read from `tty` stream'); + if (settings.streamIn.isTTY) { + debug$b('Cannot read from `tty` stream'); next(new Error('No input')); return } - debug$1('Reading from `streamIn`'); + debug$b('Reading from `streamIn`'); - streamIn.pipe(concatStream({encoding: 'string'}, read)); + settings.streamIn.pipe(concat({encoding: 'string'}, read)); function read(value) { - var file = toVfile(settings.filePath || undefined); + var file = vfile$3(settings.filePath || undefined); - debug$1('Read from `streamIn`'); + debug$b('Read from `streamIn`'); file.cwd = settings.cwd; file.contents = value; @@ -15074,14 +15251,15 @@ function stdin(context, settings, next) { } } -var inherits$1 = util__default['default'].inherits; - - +var events = require$$0__default$4['default']; +var inherits = require$$0__default['default'].inherits; +var trough$4 = trough_1$1; +var vfile$2 = toVfile; -var fileSet = FileSet; +var fileSet = FileSet$1; // FileSet constructor. -function FileSet() { +function FileSet$1() { var self = this; self.files = []; @@ -15090,21 +15268,21 @@ function FileSet() { self.expected = 0; self.actual = 0; - self.pipeline = trough_1(); + self.pipeline = trough$4(); self.plugins = []; - events__default['default'].init.call(self); + events.init.call(self); - self.on('one', one.bind(self)); + self.on('one', one$1.bind(self)); } // Events. -inherits$1(FileSet, events__default['default'].EventEmitter); +inherits(FileSet$1, events.EventEmitter); // Expose methods. -FileSet.prototype.valueOf = valueOf; -FileSet.prototype.use = use; -FileSet.prototype.add = add; +FileSet$1.prototype.valueOf = valueOf; +FileSet$1.prototype.use = use; +FileSet$1.prototype.add = add; // Create an array representation of `fileSet`. function valueOf() { @@ -15142,20 +15320,17 @@ function use(plugin) { // Only runs `file-pipeline` on files which have not `failed` before addition. function add(file) { var self = this; - var origin; if (typeof file === 'string') { - file = toVfile(file); + file = vfile$2(file); } // Prevent files from being added multiple times. - origin = file.history[0]; - - if (self.origins.indexOf(origin) !== -1) { + if (self.origins.indexOf(file.history[0]) !== -1) { return self } - self.origins.push(origin); + self.origins.push(file.history[0]); // Add. self.valueOf().push(file); @@ -15175,7 +15350,7 @@ function add(file) { // Utility invoked when a single file has completed it's pipeline, triggering // `done` when all files are complete. -function one() { +function one$1() { var self = this; self.actual++; @@ -15185,33 +15360,32 @@ function one() { } } -var debug$2 = src('unified-engine:file-pipeline:read'); - +var fs$6 = require$$0__default$3['default']; +var path$6 = require$$0__default$2['default']; +var debug$a = src.exports('unified-engine:file-pipeline:read'); +var stats$7 = vfileStatistics; -var read_1$1 = read$4; - -var resolve$4 = path__default['default'].resolve; -var readFile = fs__default['default'].readFile; +var read_1 = read$2; // Fill a file with its contents when not already filled. -function read$4(context, file, fileSet, next) { +function read$2(context, file, fileSet, next) { var filePath = file.path; if (file.contents || file.data.unifiedEngineStreamIn) { - debug$2('Not reading file `%s` with contents', filePath); + debug$a('Not reading file `%s` with contents', filePath); next(); - } else if (vfileStatistics(file).fatal) { - debug$2('Not reading failed file `%s`', filePath); + } else if (stats$7(file).fatal) { + debug$a('Not reading failed file `%s`', filePath); next(); } else { - filePath = resolve$4(context.cwd, filePath); + filePath = path$6.resolve(context.cwd, filePath); - debug$2('Reading `%s` in `%s`', filePath, 'utf8'); - readFile(filePath, 'utf8', onread); + debug$a('Reading `%s` in `%s`', filePath, 'utf8'); + fs$6.readFile(filePath, 'utf8', onread); } function onread(error, contents) { - debug$2('Read `%s` (error: %s)', filePath, error); + debug$a('Read `%s` (error: %s)', filePath, error); file.contents = contents || ''; @@ -15233,7 +15407,7 @@ var has = Object.prototype.hasOwnProperty; * @type {Function} */ -var toString$2 = Object.prototype.toString; +var toString$7 = Object.prototype.toString; /** * Test whether a value is "empty". @@ -15242,7 +15416,7 @@ var toString$2 = Object.prototype.toString; * @return {Boolean} */ -function isEmpty(val) { +function isEmpty$1(val) { // Null and Undefined... if (val == null) return true @@ -15265,7 +15439,7 @@ function isEmpty(val) { if (val instanceof Error) return val.message === '' // Objects... - if (val.toString == toString$2) { + if (val.toString == toString$7) { switch (val.toString()) { // Maps, Sets, Files and Errors... @@ -15296,65 +15470,58 @@ function isEmpty(val) { * @type {Function} */ -var lib$4 = isEmpty; - -var debug$3 = src('unified-engine:file-pipeline:configure'); +var lib$5 = isEmpty$1; +var debug$9 = src.exports('unified-engine:file-pipeline:configure'); +var stats$6 = vfileStatistics; +var empty$3 = lib$5; - -var configure_1$1 = configure$1; +var configure_1$1 = configure$5; // Collect configuration for a file based on the context. -function configure$1(context, file, fileSet, next) { - var config = context.configuration; - var processor = context.processor; - - if (vfileStatistics(file).fatal) { +function configure$5(context, file, fileSet, next) { + if (stats$6(file).fatal) { return next() } - config.load(file.path, handleConfiguration); + context.configuration.load(file.path, handleConfiguration); function handleConfiguration(error, configuration) { - var plugins; - var options; + var index = -1; var plugin; - var length; - var index; - var name; + var options; if (error) { return next(error) } // Store configuration on the context object. - debug$3('Using settings `%j`', configuration.settings); - processor.data('settings', configuration.settings); - - plugins = configuration.plugins; - length = plugins.length; - index = -1; + debug$9('Using settings `%j`', configuration.settings); + context.processor.data('settings', configuration.settings); - debug$3('Using `%d` plugins', length); + debug$9('Using `%d` plugins', configuration.plugins.length); - while (++index < length) { - plugin = plugins[index][0]; - options = plugins[index][1]; + while (++index < configuration.plugins.length) { + plugin = configuration.plugins[index][0]; + options = configuration.plugins[index][1]; if (options === false) { continue } // Allow for default arguments in es2020. - if (options === null || (typeof options === 'object' && lib$4(options))) { + if (options === null || (typeof options === 'object' && empty$3(options))) { options = undefined; } - name = plugin.displayName || plugin.name || 'function'; - debug$3('Using plugin `%s`, with options `%j`', name, options); + debug$9( + 'Using plugin `%s`, with options `%j`', + plugin.displayName || plugin.name || 'function', + options + ); try { - processor.use(plugin, options, fileSet); + context.processor.use(plugin, options, fileSet); } catch (error_) { /* istanbul ignore next - Should not happen anymore! */ return next(error_) @@ -15365,25 +15532,25 @@ function configure$1(context, file, fileSet, next) { } } -var debug$4 = src('unified-engine:file-pipeline:parse'); - - +var debug$8 = src.exports('unified-engine:file-pipeline:parse'); +var stats$5 = vfileStatistics; +var json$1 = parseJson_1; -var parse_1 = parse$3; +var parse_1$4 = parse$a; // Fill a file with a tree. -function parse$3(context, file) { +function parse$a(context, file) { var message; - if (vfileStatistics(file).fatal) { + if (stats$5(file).fatal) { return } if (context.treeIn) { - debug$4('Not parsing already parsed document'); + debug$8('Not parsing already parsed document'); try { - context.tree = parseJson$1(file.toString()); + context.tree = json$1(file.toString()); } catch (error) { message = file.message( new Error('Cannot read file as JSON\n' + error.message) @@ -15403,42 +15570,42 @@ function parse$3(context, file) { return } - debug$4('Parsing `%s`', file.path); + debug$8('Parsing `%s`', file.path); context.tree = context.processor.parse(file); - debug$4('Parsed document'); + debug$8('Parsed document'); } -var debug$5 = src('unified-engine:file-pipeline:transform'); +var debug$7 = src.exports('unified-engine:file-pipeline:transform'); +var stats$4 = vfileStatistics; - -var transform_1 = transform; +var transform_1$1 = transform$5; // Transform the tree associated with a file with configured plugins. -function transform(context, file, fileSet, next) { - if (vfileStatistics(file).fatal) { +function transform$5(context, file, fileSet, next) { + if (stats$4(file).fatal) { next(); } else { - debug$5('Transforming document `%s`', file.path); + debug$7('Transforming document `%s`', file.path); context.processor.run(context.tree, file, onrun); } function onrun(error, node) { - debug$5('Transformed document (error: %s)', error); + debug$7('Transformed document (error: %s)', error); context.tree = node; next(error); } } -var debug$6 = src('unified-engine:file-pipeline:queue'); - +var debug$6 = src.exports('unified-engine:file-pipeline:queue'); +var stats$3 = vfileStatistics; -var queue_1 = queue; +var queue_1 = queue$1; // Queue all files which came this far. // When the last file gets here, run the file-set pipeline and flush the queue. -function queue(context, file, fileSet, next) { +function queue$1(context, file, fileSet, next) { var origin = file.history[0]; var map = fileSet.complete; var complete = true; @@ -15466,7 +15633,7 @@ function queue(context, file, fileSet, next) { function each(file) { var key = file.history[0]; - if (vfileStatistics(file).fatal) { + if (stats$3(file).fatal) { return } @@ -15488,21 +15655,23 @@ function queue(context, file, fileSet, next) { } } +var isEmpty = lib$5; + // Detect color support. -var color = true; +var color$E = true; try { - color = 'inspect' in util__default['default']; + color$E = 'inspect' in require$$0__default['default']; } catch (_) { /* istanbul ignore next - browser */ - color = false; + color$E = false; } -var unistUtilInspect = color ? inspect : /* istanbul ignore next */ noColor; +var unistUtilInspect = color$E ? inspect$2 : /* istanbul ignore next */ noColor; -inspect.color = inspect; -noColor.color = inspect; -inspect.noColor = noColor; +inspect$2.color = inspect$2; +noColor.color = inspect$2; +inspect$2.noColor = noColor; noColor.noColor = noColor; var dim = ansiColor(2, 22); @@ -15524,15 +15693,15 @@ var colorExpression = new RegExp( // Standard keys defined by unist: https://github.com/syntax-tree/unist. // We don’t ignore `data` though. -var ignore$2 = ['type', 'value', 'children', 'position']; +var ignore = ['type', 'value', 'children', 'position']; // Inspects a node, without using color. function noColor(node, pad) { - return stripColor(inspect(node, pad)) + return stripColor(inspect$2(node, pad)) } // Inspects a node. -function inspect(node, pad) { +function inspect$2(node, pad) { var result; var children; var index; @@ -15544,7 +15713,7 @@ function inspect(node, pad) { result = []; while (++index < length) { - result[index] = inspect(node[index]); + result[index] = inspect$2(node[index]); } return result.join('\n') @@ -15571,9 +15740,9 @@ function inspect(node, pad) { node = children[index]; if (index === length - 1) { - result.push(formatNesting(pad + '└─ ') + inspect(node, pad + ' ')); + result.push(formatNesting(pad + '└─ ') + inspect$2(node, pad + ' ')); } else { - result.push(formatNesting(pad + '├─ ') + inspect(node, pad + '│ ')); + result.push(formatNesting(pad + '├─ ') + inspect$2(node, pad + '│ ')); } } @@ -15586,7 +15755,7 @@ function formatNesting(value) { } // Compile a single position. -function compile(pos) { +function compile$2(pos) { var values = []; if (!pos) { @@ -15603,7 +15772,7 @@ function compile(pos) { } // Compile a location. -function stringify$1(start, end) { +function stringify$f(start, end) { var values = []; var positions = []; var offsets = []; @@ -15623,7 +15792,7 @@ function stringify$1(start, end) { // Add a position. function add(position) { - var tuple = compile(position); + var tuple = compile$2(position); if (tuple) { positions.push(tuple[0]); @@ -15639,7 +15808,7 @@ function stringify$1(start, end) { function formatNode(node) { var log = node.type; var location = node.position || {}; - var position = stringify$1(location.start, location.end); + var position = stringify$f(location.start, location.end); var key; var values = []; var value; @@ -15658,10 +15827,10 @@ function formatNode(node) { value = node[key]; if ( - ignore$2.indexOf(key) !== -1 || + ignore.indexOf(key) !== -1 || value === null || value === undefined || - (typeof value === 'object' && lib$4(value)) + (typeof value === 'object' && isEmpty(value)) ) { continue } @@ -15690,30 +15859,28 @@ function ansiColor(open, close) { } } -var debug$7 = src('unified-engine:file-pipeline:stringify'); - +var debug$5 = src.exports('unified-engine:file-pipeline:stringify'); +var buffer$3 = isBuffer; +var stats$2 = vfileStatistics; +var inspect$1 = unistUtilInspect; - - -var stringify_1 = stringify$2; +var stringify_1 = stringify$e; // Stringify a tree. -function stringify$2(context, file) { - var processor = context.processor; - var tree = context.tree; +function stringify$e(context, file) { var value; - if (vfileStatistics(file).fatal) { - debug$7('Not compiling failed document'); + if (stats$2(file).fatal) { + debug$5('Not compiling failed document'); return } if (!context.output && !context.out && !context.alwaysStringify) { - debug$7('Not compiling document without output settings'); + debug$5('Not compiling document without output settings'); return } - debug$7('Compiling `%s`', file.path); + debug$5('Compiling `%s`', file.path); if (context.inspect) { // Add a `txt` extension if there is a path. @@ -15721,7 +15888,7 @@ function stringify$2(context, file) { file.extname = '.txt'; } - value = unistUtilInspect[context.color ? 'color' : 'noColor'](tree) + '\n'; + value = inspect$1[context.color ? 'color' : 'noColor'](context.tree) + '\n'; } else if (context.treeOut) { // Add a `json` extension to ensure the file is correctly seen as JSON. // Only add it if there is a path — not if the file is for example stdin. @@ -15730,59 +15897,55 @@ function stringify$2(context, file) { } // Add the line feed to create a valid UNIX file. - value = JSON.stringify(tree, null, 2) + '\n'; + value = JSON.stringify(context.tree, null, 2) + '\n'; } else { - value = processor.stringify(tree, file); + value = context.processor.stringify(context.tree, file); } - if (value === undefined || value === null) ; else if (typeof value === 'string' || isBuffer(value)) { + if (value === undefined || value === null) ; else if (typeof value === 'string' || buffer$3(value)) { file.contents = value; } else { file.result = value; } - debug$7('Serialized document'); + debug$5('Serialized document'); } -var debug$8 = src('unified-engine:file-pipeline:copy'); +var fs$5 = require$$0__default$3['default']; +var path$5 = require$$0__default$2['default']; +var debug$4 = src.exports('unified-engine:file-pipeline:copy'); -var copy_1 = copy; - -var stat$1 = fs__default['default'].stat; -var dirname$2 = path__default['default'].dirname; -var resolve$5 = path__default['default'].resolve; -var relative$3 = path__default['default'].relative; +var copy_1 = copy$4; // Move a file. -function copy(context, file, fileSet, next) { +function copy$4(context, file, fileSet, next) { var output = context.output; - var multi = fileSet.expected > 1; var outpath = output; var currentPath = file.path; if (typeof outpath !== 'string') { - debug$8('Not copying'); + debug$4('Not copying'); return next() } - outpath = resolve$5(context.cwd, outpath); + outpath = path$5.resolve(context.cwd, outpath); - debug$8('Copying `%s`', currentPath); + debug$4('Copying `%s`', currentPath); - stat$1(outpath, onstatfile); + fs$5.stat(outpath, onstatfile); function onstatfile(error, stats) { if (error) { if ( error.code !== 'ENOENT' || - output.charAt(output.length - 1) === path__default['default'].sep + output.charAt(output.length - 1) === path$5.sep ) { return next( new Error('Cannot read output directory. Error:\n' + error.message) ) } - stat$1(dirname$2(outpath), onstatparent); + fs$5.stat(path$5.dirname(outpath), onstatparent); } else { done(stats.isDirectory()); } @@ -15799,90 +15962,100 @@ function copy(context, file, fileSet, next) { } function done(directory) { - if (!directory && multi) { + if (!directory && fileSet.expected > 1) { return next( new Error('Cannot write multiple files to single output: ' + outpath) ) } - file[directory ? 'dirname' : 'path'] = relative$3(file.cwd, outpath); + file[directory ? 'dirname' : 'path'] = path$5.relative(file.cwd, outpath); - debug$8('Copying document from %s to %s', currentPath, file.path); + debug$4('Copying document from %s to %s', currentPath, file.path); next(); } } -var debug$9 = src('unified-engine:file-pipeline:stdout'); - +var debug$3 = src.exports('unified-engine:file-pipeline:stdout'); +var stats$1 = vfileStatistics; -var stdout_1 = stdout; +var stdout_1 = stdout$1; // Write a virtual file to `streamOut`. // Ignored when `output` is given, more than one file was processed, or `out` // is false. -function stdout(context, file, fileSet, next) { +function stdout$1(context, file, fileSet, next) { if (!file.data.unifiedEngineGiven) { - debug$9('Ignoring programmatically added file'); + debug$3('Ignoring programmatically added file'); next(); - } else if (vfileStatistics(file).fatal || context.output || !context.out) { - debug$9('Ignoring writing to `streamOut`'); + } else if (stats$1(file).fatal || context.output || !context.out) { + debug$3('Ignoring writing to `streamOut`'); next(); } else { - debug$9('Writing document to `streamOut`'); + debug$3('Writing document to `streamOut`'); context.streamOut.write(file.toString(), next); } } -var debug$a = src('unified-engine:file-pipeline:file-system'); +var fs$4 = require$$0__default$3['default']; +var path$4 = require$$0__default$2['default']; +var debug$2 = src.exports('unified-engine:file-pipeline:file-system'); +var stats = vfileStatistics; - -var fileSystem_1$1 = fileSystem$1; - -var writeFile = fs__default['default'].writeFile; -var resolve$6 = path__default['default'].resolve; +var fileSystem_1 = fileSystem$2; // Write a virtual file to the file-system. // Ignored when `output` is not given. -function fileSystem$1(context, file, fileSet, next) { +function fileSystem$2(context, file, fileSet, next) { var destinationPath; if (!context.output) { - debug$a('Ignoring writing to file-system'); + debug$2('Ignoring writing to file-system'); return next() } if (!file.data.unifiedEngineGiven) { - debug$a('Ignoring programmatically added file'); + debug$2('Ignoring programmatically added file'); return next() } destinationPath = file.path; if (!destinationPath) { - debug$a('Cannot write file without a `destinationPath`'); + debug$2('Cannot write file without a `destinationPath`'); return next(new Error('Cannot write file without an output path')) } - if (vfileStatistics(file).fatal) { - debug$a('Cannot write file with a fatal error'); + if (stats(file).fatal) { + debug$2('Cannot write file with a fatal error'); return next() } - destinationPath = resolve$6(context.cwd, destinationPath); - debug$a('Writing document to `%s`', destinationPath); + destinationPath = path$4.resolve(context.cwd, destinationPath); + debug$2('Writing document to `%s`', destinationPath); file.stored = true; - writeFile(destinationPath, file.toString(), next); + fs$4.writeFile(destinationPath, file.toString(), next); } +var trough$3 = trough_1$1; +var read$1 = read_1; +var configure$4 = configure_1$1; +var parse$9 = parse_1$4; +var transform$4 = transform_1$1; +var queue = queue_1; +var stringify$d = stringify_1; +var copy$3 = copy_1; +var stdout = stdout_1; +var fileSystem$1 = fileSystem_1; + // This pipeline ensures each of the pipes always runs: even if the read pipe // fails, queue and write run. -var filePipeline = trough_1() - .use(chunk(trough_1().use(read_1$1).use(configure_1$1).use(parse_1).use(transform_1))) - .use(chunk(trough_1().use(queue_1))) - .use(chunk(trough_1().use(stringify_1).use(copy_1).use(stdout_1).use(fileSystem_1$1))); +var filePipeline$1 = trough$3() + .use(chunk(trough$3().use(read$1).use(configure$4).use(parse$9).use(transform$4))) + .use(chunk(trough$3().use(queue))) + .use(chunk(trough$3().use(stringify$d).use(copy$3).use(stdout).use(fileSystem$1))); // Factory to run a pipe. // Wraps a pipe to trigger an error on the `file` in `context`, but still call @@ -15914,20 +16087,23 @@ function chunk(pipe) { } } -var transform_1$1 = transform$1; +var FileSet = fileSet; +var filePipeline = filePipeline$1; + +var transform_1 = transform$3; // Transform all files. -function transform$1(context, settings, next) { - var fileSet$1 = new fileSet(); +function transform$3(context, settings, next) { + var fileSet = new FileSet(); - context.fileSet = fileSet$1; + context.fileSet = fileSet; - fileSet$1.on('add', add).on('done', next); + fileSet.on('add', add).on('done', next); if (context.files.length === 0) { next(); } else { - context.files.forEach(fileSet$1.add, fileSet$1); + context.files.forEach(fileSet.add, fileSet); } function add(file) { @@ -15948,7 +16124,7 @@ function transform$1(context, settings, next) { alwaysStringify: settings.alwaysStringify }, file, - fileSet$1, + fileSet, done ); @@ -15962,12 +16138,12 @@ function transform$1(context, settings, next) { error.fatal = true; } - fileSet$1.emit('one', file); + fileSet.emit('one', file); } } } -var hasFlag$2 = (flag, argv) => { +var hasFlag$1 = (flag, argv) => { argv = argv || process.argv; const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); const pos = argv.indexOf(prefix + flag); @@ -15975,31 +16151,34 @@ var hasFlag$2 = (flag, argv) => { return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); }; -const {env: env$2} = process; +const os = require$$0__default$1['default']; +const hasFlag = hasFlag$1; -let forceColor$2; -if (hasFlag$2('no-color') || - hasFlag$2('no-colors') || - hasFlag$2('color=false') || - hasFlag$2('color=never')) { - forceColor$2 = 0; -} else if (hasFlag$2('color') || - hasFlag$2('colors') || - hasFlag$2('color=true') || - hasFlag$2('color=always')) { - forceColor$2 = 1; +const {env} = process; + +let forceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false') || + hasFlag('color=never')) { + forceColor = 0; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = 1; } -if ('FORCE_COLOR' in env$2) { - if (env$2.FORCE_COLOR === true || env$2.FORCE_COLOR === 'true') { - forceColor$2 = 1; - } else if (env$2.FORCE_COLOR === false || env$2.FORCE_COLOR === 'false') { - forceColor$2 = 0; +if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === true || env.FORCE_COLOR === 'true') { + forceColor = 1; + } else if (env.FORCE_COLOR === false || env.FORCE_COLOR === 'false') { + forceColor = 0; } else { - forceColor$2 = env$2.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env$2.FORCE_COLOR, 10), 3); + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); } } -function translateLevel$2(level) { +function translateLevel(level) { if (level === 0) { return false; } @@ -16012,28 +16191,28 @@ function translateLevel$2(level) { }; } -function supportsColor$2(stream) { - if (forceColor$2 === 0) { +function supportsColor(stream) { + if (forceColor === 0) { return 0; } - if (hasFlag$2('color=16m') || - hasFlag$2('color=full') || - hasFlag$2('color=truecolor')) { + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { return 3; } - if (hasFlag$2('color=256')) { + if (hasFlag('color=256')) { return 2; } - if (stream && !stream.isTTY && forceColor$2 === undefined) { + if (stream && !stream.isTTY && forceColor === undefined) { return 0; } - const min = forceColor$2 || 0; + const min = forceColor || 0; - if (env$2.TERM === 'dumb') { + if (env.TERM === 'dumb') { return min; } @@ -16044,7 +16223,7 @@ function supportsColor$2(stream) { // release, and Node.js 7 is not. 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__default['default'].release().split('.'); + const osRelease = os.release().split('.'); if ( Number(process.versions.node.split('.')[0]) >= 8 && Number(osRelease[0]) >= 10 && @@ -16056,26 +16235,26 @@ function supportsColor$2(stream) { return 1; } - if ('CI' in env$2) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env$2) || env$2.CI_NAME === 'codeship') { + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { return 1; } return min; } - if ('TEAMCITY_VERSION' in env$2) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$2.TEAMCITY_VERSION) ? 1 : 0; + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; } - if (env$2.COLORTERM === 'truecolor') { + if (env.COLORTERM === 'truecolor') { return 3; } - if ('TERM_PROGRAM' in env$2) { - const version = parseInt((env$2.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - switch (env$2.TERM_PROGRAM) { + switch (env.TERM_PROGRAM) { case 'iTerm.app': return version >= 3 ? 3 : 2; case 'Apple_Terminal': @@ -16084,33 +16263,35 @@ function supportsColor$2(stream) { } } - if (/-256(color)?$/i.test(env$2.TERM)) { + if (/-256(color)?$/i.test(env.TERM)) { return 2; } - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$2.TERM)) { + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { return 1; } - if ('COLORTERM' in env$2) { + if ('COLORTERM' in env) { return 1; } return min; } -function getSupportLevel$2(stream) { - const level = supportsColor$2(stream); - return translateLevel$2(level); +function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); } -var supportsColor_1$2 = { - supportsColor: getSupportLevel$2, - stdout: getSupportLevel$2(process.stdout), - stderr: getSupportLevel$2(process.stderr) +var supportsColor_1 = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) }; -var ansiRegex = ({onlyFirst = false} = {}) => { +var stringWidth$1 = {exports: {}}; + +var ansiRegex$1 = ({onlyFirst = false} = {}) => { const pattern = [ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' @@ -16119,11 +16300,15 @@ var ansiRegex = ({onlyFirst = false} = {}) => { return new RegExp(pattern, onlyFirst ? undefined : 'g'); }; -var stripAnsi = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; +const ansiRegex = ansiRegex$1; + +var stripAnsi$1 = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; + +var isFullwidthCodePoint$2 = {exports: {}}; /* eslint-disable yoda */ -const isFullwidthCodePoint = codePoint => { +const isFullwidthCodePoint$1 = codePoint => { if (Number.isNaN(codePoint)) { return false; } @@ -16168,24 +16353,31 @@ const isFullwidthCodePoint = codePoint => { return false; }; -var isFullwidthCodePoint_1 = isFullwidthCodePoint; -var _default$5 = isFullwidthCodePoint; -isFullwidthCodePoint_1.default = _default$5; +isFullwidthCodePoint$2.exports = isFullwidthCodePoint$1; +isFullwidthCodePoint$2.exports.default = isFullwidthCodePoint$1; -var emojiRegex = function () { +var emojiRegex$1 = function () { // https://mths.be/emoji return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; }; -const stringWidth = string => { - string = string.replace(emojiRegex(), ' '); +const stripAnsi = stripAnsi$1; +const isFullwidthCodePoint = isFullwidthCodePoint$2.exports; +const emojiRegex = emojiRegex$1; +const stringWidth = string => { if (typeof string !== 'string' || string.length === 0) { return 0; } string = stripAnsi(string); + if (string.length === 0) { + return 0; + } + + string = string.replace(emojiRegex(), ' '); + let width = 0; for (let i = 0; i < string.length; i++) { @@ -16206,16 +16398,64 @@ const stringWidth = string => { i++; } - width += isFullwidthCodePoint_1(code) ? 2 : 1; + width += isFullwidthCodePoint(code) ? 2 : 1; } return width; }; -var stringWidth_1 = stringWidth; +stringWidth$1.exports = stringWidth; // TODO: remove this in the next major version -var _default$6 = stringWidth; -stringWidth_1.default = _default$6; +stringWidth$1.exports.default = stringWidth; + +var own$e = {}.hasOwnProperty; + +var unistUtilStringifyPosition$2 = stringify$c; + +function stringify$c(value) { + // Nothing. + if (!value || typeof value !== 'object') { + return '' + } + + // Node. + if (own$e.call(value, 'position') || own$e.call(value, 'type')) { + return position$5(value.position) + } + + // Position. + if (own$e.call(value, 'start') || own$e.call(value, 'end')) { + return position$5(value) + } + + // Point. + if (own$e.call(value, 'line') || own$e.call(value, 'column')) { + return point$u(value) + } + + // ? + return '' +} + +function point$u(point) { + if (!point || typeof point !== 'object') { + point = {}; + } + + return index$3(point.line) + ':' + index$3(point.column) +} + +function position$5(pos) { + if (!pos || typeof pos !== 'object') { + pos = {}; + } + + return point$u(pos.start) + '-' + point$u(pos.end) +} + +function index$3(value) { + return value && typeof value === 'number' ? value : 1 +} /*! * repeat-string @@ -16235,7 +16475,7 @@ var cache; * Expose `repeat` */ -var repeatString = repeat$1; +var repeatString = repeat$7; /** * Repeat the given `string` the specified `number` @@ -16255,7 +16495,7 @@ var repeatString = repeat$1; * @api public */ -function repeat$1(str, num) { +function repeat$7(str, num) { if (typeof str !== 'string') { throw new TypeError('expected a string'); } @@ -16286,7 +16526,7 @@ function repeat$1(str, num) { return res; } -var vfileSort = sort; +var vfileSort = sort$1; var severities = { true: 2, @@ -16295,45 +16535,45 @@ var severities = { undefined: 0 }; -function sort(file) { +function sort$1(file) { file.messages.sort(comparator); return file } function comparator(a, b) { return ( - check$1(a, b, 'line') || - check$1(a, b, 'column') || + check$4(a, b, 'line') || + check$4(a, b, 'column') || severities[b.fatal] - severities[a.fatal] || - compare(a, b, 'source') || - compare(a, b, 'ruleId') || - compare(a, b, 'reason') || + compare$3(a, b, 'source') || + compare$3(a, b, 'ruleId') || + compare$3(a, b, 'reason') || 0 ) } -function check$1(a, b, property) { +function check$4(a, b, property) { return (a[property] || 0) - (b[property] || 0) } -function compare(a, b, property) { +function compare$3(a, b, property) { return (a[property] || '').localeCompare(b[property] || '') } -var supported = supportsColor_1$2.stderr.hasBasic; - - - +var supported = supportsColor_1.stderr.hasBasic; +var width = stringWidth$1.exports; +var stringify$b = unistUtilStringifyPosition$2; +var repeat$6 = repeatString; +var statistics$1 = vfileStatistics; +var sort = vfileSort; +var vfileReporter = reporter$1; - -var vfileReporter = reporter; - -var push = [].push; +var push$1 = [].push; // `log-symbols` without chalk: /* istanbul ignore next - Windows. */ -var chars = +var chars$1 = process.platform === 'win32' ? {error: '×', warning: '‼'} : {error: '✖', warning: '⚠'}; @@ -16346,7 +16586,7 @@ var labels = { }; // Report a file’s messages. -function reporter(files, options) { +function reporter$1(files, options) { var settings = options || {}; var one; @@ -16365,7 +16605,7 @@ function reporter(files, options) { files = [files]; } - return format$1(transform$2(files, settings), one, settings) + return format(transform$2(files, settings), one, settings) } function transform$2(files, options) { @@ -16381,7 +16621,7 @@ function transform$2(files, options) { var key; while (++index < files.length) { - messages = vfileSort({messages: files[index].messages.concat()}).messages; + messages = sort({messages: files[index].messages.concat()}).messages; messageRows = []; offset = -1; @@ -16392,7 +16632,7 @@ function transform$2(files, options) { all.push(message); row = { - location: unistUtilStringifyPosition( + location: stringify$b( message.location.end.line && message.location.end.column ? message.location : message.location.start @@ -16406,7 +16646,7 @@ function transform$2(files, options) { }; for (key in row) { - sizes[key] = Math.max(size(row[key]), sizes[key] || 0); + sizes[key] = Math.max(size$1(row[key]), sizes[key] || 0); } messageRows.push(row); @@ -16414,15 +16654,15 @@ function transform$2(files, options) { } if ((!options.quiet && !options.silent) || messageRows.length) { - rows.push({type: 'file', file: files[index], stats: vfileStatistics(messages)}); - push.apply(rows, messageRows); + rows.push({type: 'file', file: files[index], stats: statistics$1(messages)}); + push$1.apply(rows, messageRows); } } - return {rows: rows, stats: vfileStatistics(all), sizes: sizes} + return {rows: rows, stats: statistics$1(all), sizes: sizes} } -function format$1(map, one, options) { +function format(map, one, options) { var enabled = options.color == null ? supported : options.color; var lines = []; var index = -1; @@ -16488,7 +16728,7 @@ function format$1(map, one, options) { lines.push( ( ' ' + - repeatString(' ', map.sizes.location - size(row.location)) + + repeat$6(' ', map.sizes.location - size$1(row.location)) + row.location + ' ' + (enabled @@ -16498,13 +16738,13 @@ function format$1(map, one, options) { row.label + '\x1b[39m' : row.label) + - repeatString(' ', map.sizes.label - size(row.label)) + + repeat$6(' ', map.sizes.label - size$1(row.label)) + ' ' + reason + - repeatString(' ', map.sizes.reason - size(reason)) + + repeat$6(' ', map.sizes.reason - size$1(reason)) + ' ' + row.ruleId + - repeatString(' ', map.sizes.ruleId - size(row.ruleId)) + + repeat$6(' ', map.sizes.ruleId - size$1(row.ruleId)) + ' ' + (row.source || '') ).replace(/ +$/, '') + rest @@ -16520,8 +16760,8 @@ function format$1(map, one, options) { if (stats.fatal) { line = (enabled - ? '\x1b[31m' /* Red. */ + chars.error + '\x1b[39m' - : chars.error) + + ? '\x1b[31m' /* Red. */ + chars$1.error + '\x1b[39m' + : chars$1.error) + ' ' + stats.fatal + ' ' + @@ -16532,8 +16772,8 @@ function format$1(map, one, options) { line = (line ? line + ', ' : '') + (enabled - ? '\x1b[33m' /* Yellow. */ + chars.warning + '\x1b[39m' - : chars.warning) + + ? '\x1b[33m' /* Yellow. */ + chars$1.warning + '\x1b[39m' + : chars$1.warning) + ' ' + stats.warn + ' ' + @@ -16551,22 +16791,23 @@ function format$1(map, one, options) { } // Get the length of `value`, ignoring ANSI sequences. -function size(value) { +function size$1(value) { var match = /\r?\n|\r/.exec(value); - return stringWidth_1(match ? value.slice(0, match.index) : value) + return width(match ? value.slice(0, match.index) : value) } -var log_1 = log; +var load$2 = loadPlugin_1; +var report = vfileReporter; -var prefix = 'vfile-reporter'; +var log_1 = log$1; -function log(context, settings, next) { - var reporter = settings.reporter || vfileReporter; +function log$1(context, settings, next) { + var reporter = settings.reporter || report; var diagnostics; if (typeof reporter === 'string') { try { - reporter = loadPlugin_1(reporter, {cwd: settings.cwd, prefix: prefix}); + reporter = load$2(reporter, {cwd: settings.cwd, prefix: 'vfile-reporter'}); } catch (_) { next(new Error('Could not find reporter `' + reporter + '`')); return @@ -16597,18 +16838,25 @@ function given(file) { return file.data.unifiedEngineGiven } -var fileSetPipeline = trough_1() - .use(configure_1) - .use(fileSystem_1) - .use(stdin_1) - .use(transform_1$1) - .use(log_1); +var trough$2 = trough_1$1; +var configure$3 = configure_1$2; +var fileSystem = fileSystem_1$1; +var stdin = stdin_1; +var transform$1 = transform_1; +var log = log_1; -var PassThrough = require$$0__default['default'].PassThrough; +var fileSetPipeline$1 = trough$2() + .use(configure$3) + .use(fileSystem) + .use(stdin) + .use(transform$1) + .use(log); +var PassThrough = require$$0__default$5['default'].PassThrough; +var statistics = vfileStatistics; +var fileSetPipeline = fileSetPipeline$1; - -var lib$5 = run; +var lib$4 = run; // Run the file set pipeline once. // `callback` is invoked with a fatal error, or with a status code (`0` on @@ -16646,7 +16894,7 @@ function run(options, callback) { // Input. settings.files = options.files || []; - settings.extensions = (options.extensions || []).map(extension); + settings.extensions = (options.extensions || []).map(extension$2); settings.filePath = options.filePath || null; settings.streamIn = options.streamIn || stdin; @@ -16737,7 +16985,7 @@ function run(options, callback) { fileSetPipeline.run({files: options.files || []}, settings, next); function next(error, context) { - var stats = vfileStatistics((context || {}).files); + var stats = statistics((context || {}).files); var failed = Boolean( settings.frail ? stats.fatal || stats.warn : stats.fatal ); @@ -16750,11 +16998,13 @@ function run(options, callback) { } } -function extension(ext) { +function extension$2(ext) { return ext.charAt(0) === '.' ? ext : '.' + ext } -var colorName$1 = { +var ansiStyles$1 = {exports: {}}; + +var colorName = { "aliceblue": [240, 248, 255], "antiquewhite": [250, 235, 215], "aqua": [0, 255, 255], @@ -16908,18 +17158,18 @@ var colorName$1 = { /* MIT license */ /* eslint-disable no-mixed-operators */ - +const cssKeywords = colorName; // NOTE: conversions should only return primitive values (i.e. arrays, or // values that give correct `typeof` results). // do not use box values types (i.e. Number(), String(), etc.) const reverseKeywords = {}; -for (const key of Object.keys(colorName$1)) { - reverseKeywords[colorName$1[key]] = key; +for (const key of Object.keys(cssKeywords)) { + reverseKeywords[cssKeywords[key]] = key; } -const convert$1 = { +const convert$F = { rgb: {channels: 3, labels: 'rgb'}, hsl: {channels: 3, labels: 'hsl'}, hsv: {channels: 3, labels: 'hsv'}, @@ -16937,30 +17187,30 @@ const convert$1 = { gray: {channels: 1, labels: ['gray']} }; -var conversions$1 = convert$1; +var conversions$2 = convert$F; // Hide .channels and .labels properties -for (const model of Object.keys(convert$1)) { - if (!('channels' in convert$1[model])) { +for (const model of Object.keys(convert$F)) { + if (!('channels' in convert$F[model])) { throw new Error('missing channels property: ' + model); } - if (!('labels' in convert$1[model])) { + if (!('labels' in convert$F[model])) { throw new Error('missing channel labels property: ' + model); } - if (convert$1[model].labels.length !== convert$1[model].channels) { + if (convert$F[model].labels.length !== convert$F[model].channels) { throw new Error('channel and label counts mismatch: ' + model); } - const {channels, labels} = convert$1[model]; - delete convert$1[model].channels; - delete convert$1[model].labels; - Object.defineProperty(convert$1[model], 'channels', {value: channels}); - Object.defineProperty(convert$1[model], 'labels', {value: labels}); + const {channels, labels} = convert$F[model]; + delete convert$F[model].channels; + delete convert$F[model].labels; + Object.defineProperty(convert$F[model], 'channels', {value: channels}); + Object.defineProperty(convert$F[model], 'labels', {value: labels}); } -convert$1.rgb.hsl = function (rgb) { +convert$F.rgb.hsl = function (rgb) { const r = rgb[0] / 255; const g = rgb[1] / 255; const b = rgb[2] / 255; @@ -16999,7 +17249,7 @@ convert$1.rgb.hsl = function (rgb) { return [h, s * 100, l * 100]; }; -convert$1.rgb.hsv = function (rgb) { +convert$F.rgb.hsv = function (rgb) { let rdif; let gdif; let bdif; @@ -17046,11 +17296,11 @@ convert$1.rgb.hsv = function (rgb) { ]; }; -convert$1.rgb.hwb = function (rgb) { +convert$F.rgb.hwb = function (rgb) { const r = rgb[0]; const g = rgb[1]; let b = rgb[2]; - const h = convert$1.rgb.hsl(rgb)[0]; + const h = convert$F.rgb.hsl(rgb)[0]; const w = 1 / 255 * Math.min(r, Math.min(g, b)); b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); @@ -17058,7 +17308,7 @@ convert$1.rgb.hwb = function (rgb) { return [h, w * 100, b * 100]; }; -convert$1.rgb.cmyk = function (rgb) { +convert$F.rgb.cmyk = function (rgb) { const r = rgb[0] / 255; const g = rgb[1] / 255; const b = rgb[2] / 255; @@ -17082,7 +17332,7 @@ function comparativeDistance(x, y) { ); } -convert$1.rgb.keyword = function (rgb) { +convert$F.rgb.keyword = function (rgb) { const reversed = reverseKeywords[rgb]; if (reversed) { return reversed; @@ -17091,8 +17341,8 @@ convert$1.rgb.keyword = function (rgb) { let currentClosestDistance = Infinity; let currentClosestKeyword; - for (const keyword of Object.keys(colorName$1)) { - const value = colorName$1[keyword]; + for (const keyword of Object.keys(cssKeywords)) { + const value = cssKeywords[keyword]; // Compute comparative distance const distance = comparativeDistance(rgb, value); @@ -17107,11 +17357,11 @@ convert$1.rgb.keyword = function (rgb) { return currentClosestKeyword; }; -convert$1.keyword.rgb = function (keyword) { - return colorName$1[keyword]; +convert$F.keyword.rgb = function (keyword) { + return cssKeywords[keyword]; }; -convert$1.rgb.xyz = function (rgb) { +convert$F.rgb.xyz = function (rgb) { let r = rgb[0] / 255; let g = rgb[1] / 255; let b = rgb[2] / 255; @@ -17128,8 +17378,8 @@ convert$1.rgb.xyz = function (rgb) { return [x * 100, y * 100, z * 100]; }; -convert$1.rgb.lab = function (rgb) { - const xyz = convert$1.rgb.xyz(rgb); +convert$F.rgb.lab = function (rgb) { + const xyz = convert$F.rgb.xyz(rgb); let x = xyz[0]; let y = xyz[1]; let z = xyz[2]; @@ -17149,7 +17399,7 @@ convert$1.rgb.lab = function (rgb) { return [l, a, b]; }; -convert$1.hsl.rgb = function (hsl) { +convert$F.hsl.rgb = function (hsl) { const h = hsl[0] / 360; const s = hsl[1] / 100; const l = hsl[2] / 100; @@ -17197,7 +17447,7 @@ convert$1.hsl.rgb = function (hsl) { return rgb; }; -convert$1.hsl.hsv = function (hsl) { +convert$F.hsl.hsv = function (hsl) { const h = hsl[0]; let s = hsl[1] / 100; let l = hsl[2] / 100; @@ -17213,7 +17463,7 @@ convert$1.hsl.hsv = function (hsl) { return [h, sv * 100, v * 100]; }; -convert$1.hsv.rgb = function (hsv) { +convert$F.hsv.rgb = function (hsv) { const h = hsv[0] / 60; const s = hsv[1] / 100; let v = hsv[2] / 100; @@ -17241,7 +17491,7 @@ convert$1.hsv.rgb = function (hsv) { } }; -convert$1.hsv.hsl = function (hsv) { +convert$F.hsv.hsl = function (hsv) { const h = hsv[0]; const s = hsv[1] / 100; const v = hsv[2] / 100; @@ -17260,7 +17510,7 @@ convert$1.hsv.hsl = function (hsv) { }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb -convert$1.hwb.rgb = function (hwb) { +convert$F.hwb.rgb = function (hwb) { const h = hwb[0] / 360; let wh = hwb[1] / 100; let bl = hwb[2] / 100; @@ -17302,7 +17552,7 @@ convert$1.hwb.rgb = function (hwb) { return [r * 255, g * 255, b * 255]; }; -convert$1.cmyk.rgb = function (cmyk) { +convert$F.cmyk.rgb = function (cmyk) { const c = cmyk[0] / 100; const m = cmyk[1] / 100; const y = cmyk[2] / 100; @@ -17315,7 +17565,7 @@ convert$1.cmyk.rgb = function (cmyk) { return [r * 255, g * 255, b * 255]; }; -convert$1.xyz.rgb = function (xyz) { +convert$F.xyz.rgb = function (xyz) { const x = xyz[0] / 100; const y = xyz[1] / 100; const z = xyz[2] / 100; @@ -17347,7 +17597,7 @@ convert$1.xyz.rgb = function (xyz) { return [r * 255, g * 255, b * 255]; }; -convert$1.xyz.lab = function (xyz) { +convert$F.xyz.lab = function (xyz) { let x = xyz[0]; let y = xyz[1]; let z = xyz[2]; @@ -17367,7 +17617,7 @@ convert$1.xyz.lab = function (xyz) { return [l, a, b]; }; -convert$1.lab.xyz = function (lab) { +convert$F.lab.xyz = function (lab) { const l = lab[0]; const a = lab[1]; const b = lab[2]; @@ -17393,7 +17643,7 @@ convert$1.lab.xyz = function (lab) { return [x, y, z]; }; -convert$1.lab.lch = function (lab) { +convert$F.lab.lch = function (lab) { const l = lab[0]; const a = lab[1]; const b = lab[2]; @@ -17411,7 +17661,7 @@ convert$1.lab.lch = function (lab) { return [l, c, h]; }; -convert$1.lch.lab = function (lch) { +convert$F.lch.lab = function (lch) { const l = lch[0]; const c = lch[1]; const h = lch[2]; @@ -17423,9 +17673,9 @@ convert$1.lch.lab = function (lch) { return [l, a, b]; }; -convert$1.rgb.ansi16 = function (args, saturation = null) { +convert$F.rgb.ansi16 = function (args, saturation = null) { const [r, g, b] = args; - let value = saturation === null ? convert$1.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization + let value = saturation === null ? convert$F.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization value = Math.round(value / 50); @@ -17445,13 +17695,13 @@ convert$1.rgb.ansi16 = function (args, saturation = null) { return ansi; }; -convert$1.hsv.ansi16 = function (args) { +convert$F.hsv.ansi16 = function (args) { // Optimization here; we already know the value and don't need to get // it converted for us. - return convert$1.rgb.ansi16(convert$1.hsv.rgb(args), args[2]); + return convert$F.rgb.ansi16(convert$F.hsv.rgb(args), args[2]); }; -convert$1.rgb.ansi256 = function (args) { +convert$F.rgb.ansi256 = function (args) { const r = args[0]; const g = args[1]; const b = args[2]; @@ -17478,7 +17728,7 @@ convert$1.rgb.ansi256 = function (args) { return ansi; }; -convert$1.ansi16.rgb = function (args) { +convert$F.ansi16.rgb = function (args) { let color = args % 10; // Handle greyscale @@ -17500,7 +17750,7 @@ convert$1.ansi16.rgb = function (args) { return [r, g, b]; }; -convert$1.ansi256.rgb = function (args) { +convert$F.ansi256.rgb = function (args) { // Handle greyscale if (args >= 232) { const c = (args - 232) * 10 + 8; @@ -17517,7 +17767,7 @@ convert$1.ansi256.rgb = function (args) { return [r, g, b]; }; -convert$1.rgb.hex = function (args) { +convert$F.rgb.hex = function (args) { const integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); @@ -17526,7 +17776,7 @@ convert$1.rgb.hex = function (args) { return '000000'.substring(string.length) + string; }; -convert$1.hex.rgb = function (args) { +convert$F.hex.rgb = function (args) { const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); if (!match) { return [0, 0, 0]; @@ -17548,7 +17798,7 @@ convert$1.hex.rgb = function (args) { return [r, g, b]; }; -convert$1.rgb.hcg = function (rgb) { +convert$F.rgb.hcg = function (rgb) { const r = rgb[0] / 255; const g = rgb[1] / 255; const b = rgb[2] / 255; @@ -17582,7 +17832,7 @@ convert$1.rgb.hcg = function (rgb) { return [hue * 360, chroma * 100, grayscale * 100]; }; -convert$1.hsl.hcg = function (hsl) { +convert$F.hsl.hcg = function (hsl) { const s = hsl[1] / 100; const l = hsl[2] / 100; @@ -17596,7 +17846,7 @@ convert$1.hsl.hcg = function (hsl) { return [hsl[0], c * 100, f * 100]; }; -convert$1.hsv.hcg = function (hsv) { +convert$F.hsv.hcg = function (hsv) { const s = hsv[1] / 100; const v = hsv[2] / 100; @@ -17610,7 +17860,7 @@ convert$1.hsv.hcg = function (hsv) { return [hsv[0], c * 100, f * 100]; }; -convert$1.hcg.rgb = function (hcg) { +convert$F.hcg.rgb = function (hcg) { const h = hcg[0] / 360; const c = hcg[1] / 100; const g = hcg[2] / 100; @@ -17651,7 +17901,7 @@ convert$1.hcg.rgb = function (hcg) { ]; }; -convert$1.hcg.hsv = function (hcg) { +convert$F.hcg.hsv = function (hcg) { const c = hcg[1] / 100; const g = hcg[2] / 100; @@ -17665,7 +17915,7 @@ convert$1.hcg.hsv = function (hcg) { return [hcg[0], f * 100, v * 100]; }; -convert$1.hcg.hsl = function (hcg) { +convert$F.hcg.hsl = function (hcg) { const c = hcg[1] / 100; const g = hcg[2] / 100; @@ -17682,14 +17932,14 @@ convert$1.hcg.hsl = function (hcg) { return [hcg[0], s * 100, l * 100]; }; -convert$1.hcg.hwb = function (hcg) { +convert$F.hcg.hwb = function (hcg) { const c = hcg[1] / 100; const g = hcg[2] / 100; const v = c + g * (1.0 - c); return [hcg[0], (v - c) * 100, (1 - v) * 100]; }; -convert$1.hwb.hcg = function (hwb) { +convert$F.hwb.hcg = function (hwb) { const w = hwb[1] / 100; const b = hwb[2] / 100; const v = 1 - b; @@ -17703,37 +17953,37 @@ convert$1.hwb.hcg = function (hwb) { return [hwb[0], c * 100, g * 100]; }; -convert$1.apple.rgb = function (apple) { +convert$F.apple.rgb = function (apple) { return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; }; -convert$1.rgb.apple = function (rgb) { +convert$F.rgb.apple = function (rgb) { return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; }; -convert$1.gray.rgb = function (args) { +convert$F.gray.rgb = function (args) { return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; }; -convert$1.gray.hsl = function (args) { +convert$F.gray.hsl = function (args) { return [0, 0, args[0]]; }; -convert$1.gray.hsv = convert$1.gray.hsl; +convert$F.gray.hsv = convert$F.gray.hsl; -convert$1.gray.hwb = function (gray) { +convert$F.gray.hwb = function (gray) { return [0, 100, gray[0]]; }; -convert$1.gray.cmyk = function (gray) { +convert$F.gray.cmyk = function (gray) { return [0, 0, 0, gray[0]]; }; -convert$1.gray.lab = function (gray) { +convert$F.gray.lab = function (gray) { return [gray[0], 0, 0]; }; -convert$1.gray.hex = function (gray) { +convert$F.gray.hex = function (gray) { const val = Math.round(gray[0] / 100 * 255) & 0xFF; const integer = (val << 16) + (val << 8) + val; @@ -17741,11 +17991,13 @@ convert$1.gray.hex = function (gray) { return '000000'.substring(string.length) + string; }; -convert$1.rgb.gray = function (rgb) { +convert$F.rgb.gray = function (rgb) { const val = (rgb[0] + rgb[1] + rgb[2]) / 3; return [val / 255 * 100]; }; +const conversions$1 = conversions$2; + /* This function routes a model to all other models. @@ -17757,7 +18009,7 @@ convert$1.rgb.gray = function (rgb) { conversions that are not possible simply are not included. */ -function buildGraph$1() { +function buildGraph() { const graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3 const models = Object.keys(conversions$1); @@ -17775,8 +18027,8 @@ function buildGraph$1() { } // https://en.wikipedia.org/wiki/Breadth-first_search -function deriveBFS$1(fromModel) { - const graph = buildGraph$1(); +function deriveBFS(fromModel) { + const graph = buildGraph(); const queue = [fromModel]; // Unshift -> queue -> pop graph[fromModel].distance = 0; @@ -17806,7 +18058,7 @@ function link$1(from, to) { }; } -function wrapConversion$1(toModel, graph) { +function wrapConversion(toModel, graph) { const path = [graph[toModel].parent, toModel]; let fn = conversions$1[graph[toModel].parent][toModel]; @@ -17822,7 +18074,7 @@ function wrapConversion$1(toModel, graph) { } var route$1 = function (fromModel) { - const graph = deriveBFS$1(fromModel); + const graph = deriveBFS(fromModel); const conversion = {}; const models = Object.keys(graph); @@ -17835,17 +18087,20 @@ var route$1 = function (fromModel) { continue; } - conversion[toModel] = wrapConversion$1(toModel, graph); + conversion[toModel] = wrapConversion(toModel, graph); } return conversion; }; -const convert$2 = {}; +const conversions = conversions$2; +const route = route$1; -const models$1 = Object.keys(conversions$1); +const convert$E = {}; -function wrapRaw$1(fn) { +const models$3 = Object.keys(conversions); + +function wrapRaw(fn) { const wrappedFn = function (...args) { const arg0 = args[0]; if (arg0 === undefined || arg0 === null) { @@ -17867,7 +18122,7 @@ function wrapRaw$1(fn) { return wrappedFn; } -function wrapRounded$1(fn) { +function wrapRounded(fn) { const wrappedFn = function (...args) { const arg0 = args[0]; @@ -17901,26 +18156,26 @@ function wrapRounded$1(fn) { return wrappedFn; } -models$1.forEach(fromModel => { - convert$2[fromModel] = {}; +models$3.forEach(fromModel => { + convert$E[fromModel] = {}; - Object.defineProperty(convert$2[fromModel], 'channels', {value: conversions$1[fromModel].channels}); - Object.defineProperty(convert$2[fromModel], 'labels', {value: conversions$1[fromModel].labels}); + Object.defineProperty(convert$E[fromModel], 'channels', {value: conversions[fromModel].channels}); + Object.defineProperty(convert$E[fromModel], 'labels', {value: conversions[fromModel].labels}); - const routes = route$1(fromModel); + const routes = route(fromModel); const routeModels = Object.keys(routes); routeModels.forEach(toModel => { const fn = routes[toModel]; - convert$2[fromModel][toModel] = wrapRounded$1(fn); - convert$2[fromModel][toModel].raw = wrapRaw$1(fn); + convert$E[fromModel][toModel] = wrapRounded(fn); + convert$E[fromModel][toModel].raw = wrapRaw(fn); }); }); -var colorConvert$1 = convert$2; +var colorConvert = convert$E; -var ansiStyles$1 = createCommonjsModule(function (module) { +(function (module) { const wrapAnsi16 = (fn, offset) => (...args) => { const code = fn(...args); @@ -17959,16 +18214,16 @@ const setLazyProperty = (object, property, get) => { }; /** @type {typeof import('color-convert')} */ -let colorConvert; +let colorConvert$1; const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { - if (colorConvert === undefined) { - colorConvert = colorConvert$1; + if (colorConvert$1 === undefined) { + colorConvert$1 = colorConvert; } const offset = isBackground ? 10 : 0; const styles = {}; - for (const [sourceSpace, suite] of Object.entries(colorConvert)) { + for (const [sourceSpace, suite] of Object.entries(colorConvert$1)) { const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; if (sourceSpace === targetSpace) { styles[name] = wrap(identity, offset); @@ -18083,9 +18338,9 @@ Object.defineProperty(module, 'exports', { enumerable: true, get: assembleStyles }); -}); +}(ansiStyles$1)); -const stringReplaceAll = (string, substring, replacer) => { +const stringReplaceAll$1 = (string, substring, replacer) => { let index = string.indexOf(substring); if (index === -1) { return string; @@ -18104,7 +18359,7 @@ const stringReplaceAll = (string, substring, replacer) => { return returnValue; }; -const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { +const stringEncaseCRLFWithFirstIndex$1 = (string, prefix, postfix, index) => { let endIndex = 0; let returnValue = ''; do { @@ -18118,17 +18373,17 @@ const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { return returnValue; }; -var util = { - stringReplaceAll, - stringEncaseCRLFWithFirstIndex +var util$2 = { + stringReplaceAll: stringReplaceAll$1, + stringEncaseCRLFWithFirstIndex: stringEncaseCRLFWithFirstIndex$1 }; -const TEMPLATE_REGEX$1 = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; -const STYLE_REGEX$1 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; -const STRING_REGEX$1 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX$1 = /\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi; +const TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; +const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; +const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; +const ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi; -const ESCAPES$1 = new Map([ +const ESCAPES = new Map([ ['n', '\n'], ['r', '\r'], ['t', '\t'], @@ -18141,7 +18396,7 @@ const ESCAPES$1 = new Map([ ['a', '\u0007'] ]); -function unescape$1(c) { +function unescape(c) { const u = c[0] === 'u'; const bracket = c[1] === '{'; @@ -18153,10 +18408,10 @@ function unescape$1(c) { return String.fromCodePoint(parseInt(c.slice(2, -1), 16)); } - return ESCAPES$1.get(c) || c; + return ESCAPES.get(c) || c; } -function parseArguments$1(name, arguments_) { +function parseArguments(name, arguments_) { const results = []; const chunks = arguments_.trim().split(/\s*,\s*/g); let matches; @@ -18165,8 +18420,8 @@ function parseArguments$1(name, arguments_) { const number = Number(chunk); if (!Number.isNaN(number)) { results.push(number); - } else if ((matches = chunk.match(STRING_REGEX$1))) { - results.push(matches[2].replace(ESCAPE_REGEX$1, (m, escape, character) => escape ? unescape$1(escape) : character)); + } else if ((matches = chunk.match(STRING_REGEX))) { + results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character)); } else { throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); } @@ -18175,17 +18430,17 @@ function parseArguments$1(name, arguments_) { return results; } -function parseStyle$1(style) { - STYLE_REGEX$1.lastIndex = 0; +function parseStyle(style) { + STYLE_REGEX.lastIndex = 0; const results = []; let matches; - while ((matches = STYLE_REGEX$1.exec(style)) !== null) { + while ((matches = STYLE_REGEX.exec(style)) !== null) { const name = matches[1]; if (matches[2]) { - const args = parseArguments$1(name, matches[2]); + const args = parseArguments(name, matches[2]); results.push([name].concat(args)); } else { results.push([name]); @@ -18195,7 +18450,7 @@ function parseStyle$1(style) { return results; } -function buildStyle$1(chalk, styles) { +function buildStyle(chalk, styles) { const enabled = {}; for (const layer of styles) { @@ -18220,26 +18475,26 @@ function buildStyle$1(chalk, styles) { return current; } -var templates$1 = (chalk, temporary) => { +var templates = (chalk, temporary) => { const styles = []; const chunks = []; let chunk = []; // eslint-disable-next-line max-params - temporary.replace(TEMPLATE_REGEX$1, (m, escapeCharacter, inverse, style, close, character) => { + temporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => { if (escapeCharacter) { - chunk.push(unescape$1(escapeCharacter)); + chunk.push(unescape(escapeCharacter)); } else if (style) { const string = chunk.join(''); chunk = []; - chunks.push(styles.length === 0 ? string : buildStyle$1(chalk, styles)(string)); - styles.push({inverse, styles: parseStyle$1(style)}); + chunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string)); + styles.push({inverse, styles: parseStyle(style)}); } else if (close) { if (styles.length === 0) { throw new Error('Found extraneous } in Chalk template literal'); } - chunks.push(buildStyle$1(chalk, styles)(chunk.join(''))); + chunks.push(buildStyle(chalk, styles)(chunk.join(''))); chunk = []; styles.pop(); } else { @@ -18257,11 +18512,12 @@ var templates$1 = (chalk, temporary) => { return chunks.join(''); }; +const ansiStyles = ansiStyles$1.exports; const {stdout: stdoutColor, stderr: stderrColor} = supportsColor_1$1; const { - stringReplaceAll: stringReplaceAll$1, - stringEncaseCRLFWithFirstIndex: stringEncaseCRLFWithFirstIndex$1 -} = util; + stringReplaceAll, + stringEncaseCRLFWithFirstIndex +} = util$2; // `supportsColor.level` → `ansiStyles.color[name]` mapping const levelMapping = [ @@ -18311,7 +18567,7 @@ function Chalk(options) { return chalkFactory(options); } -for (const [styleName, style] of Object.entries(ansiStyles$1)) { +for (const [styleName, style] of Object.entries(ansiStyles)) { styles[styleName] = { get() { const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty); @@ -18336,7 +18592,7 @@ for (const model of usedModels) { get() { const {level} = this; return function (...arguments_) { - const styler = createStyler(ansiStyles$1.color[levelMapping[level]][model](...arguments_), ansiStyles$1.color.close, this._styler); + const styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler); return createBuilder(this, styler, this._isEmpty); }; } @@ -18349,7 +18605,7 @@ for (const model of usedModels) { get() { const {level} = this; return function (...arguments_) { - const styler = createStyler(ansiStyles$1.bgColor[levelMapping[level]][model](...arguments_), ansiStyles$1.bgColor.close, this._styler); + const styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler); return createBuilder(this, styler, this._isEmpty); }; } @@ -18424,7 +18680,7 @@ const applyStyle = (self, string) => { // Replace any instances already present with a re-opening code // otherwise only the part of the string until said closing code // will be colored, and the rest will simply be 'plain'. - string = stringReplaceAll$1(string, styler.close, styler.open); + string = stringReplaceAll(string, styler.close, styler.open); styler = styler.parent; } @@ -18435,7 +18691,7 @@ const applyStyle = (self, string) => { // after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92 const lfIndex = string.indexOf('\n'); if (lfIndex !== -1) { - string = stringEncaseCRLFWithFirstIndex$1(string, closeAll, openAll, lfIndex); + string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); } return openAll + string + closeAll; @@ -18462,7 +18718,7 @@ const chalkTag = (chalk, ...strings) => { } if (template === undefined) { - template = templates$1; + template = templates; } return template(chalk, parts.join('')); @@ -18487,8 +18743,13 @@ chalk$1.Level = { 3: 'TrueColor' }; -var source = chalk$1; +var source$1 = chalk$1; + +var chokidar$1 = {}; +var utils$7 = {}; + +const path$3 = require$$0__default$2['default']; const WIN_SLASH = '\\\\/'; const WIN_NO_SLASH = `[^${WIN_SLASH}]`; @@ -18510,7 +18771,7 @@ const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; -const STAR = `${QMARK}*?`; +const STAR$1 = `${QMARK}*?`; const POSIX_CHARS = { DOT_LITERAL, @@ -18526,7 +18787,7 @@ const POSIX_CHARS = { NO_DOT_SLASH, NO_DOTS_SLASH, QMARK_NO_DOT, - STAR, + STAR: STAR$1, START_ANCHOR }; @@ -18554,7 +18815,7 @@ const WINDOWS_CHARS = { * POSIX Bracket Regex */ -const POSIX_REGEX_SOURCE = { +const POSIX_REGEX_SOURCE$1 = { alnum: 'a-zA-Z0-9', alpha: 'a-zA-Z', ascii: '\\x00-\\x7F', @@ -18571,9 +18832,9 @@ const POSIX_REGEX_SOURCE = { xdigit: 'A-Fa-f0-9' }; -var constants = { +var constants$5 = { MAX_LENGTH: 1024 * 64, - POSIX_REGEX_SOURCE, + POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, // regular expressions REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, @@ -18641,7 +18902,7 @@ var constants = { CHAR_VERTICAL_LINE: 124, /* | */ CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ - SEP: path__default['default'].sep, + SEP: path$3.sep, /** * Create EXTGLOB_CHARS @@ -18666,16 +18927,16 @@ var constants = { } }; -var utils = createCommonjsModule(function (module, exports) { - +(function (exports) { +const path = require$$0__default$2['default']; const win32 = process.platform === 'win32'; const { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL -} = constants; +} = constants$5; exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); @@ -18701,7 +18962,7 @@ exports.isWindows = options => { if (options && typeof options.windows === 'boolean') { return options.windows; } - return win32 === true || path__default['default'].sep === '\\'; + return win32 === true || path.sep === '\\'; }; exports.escapeLast = (input, char, lastIdx) => { @@ -18730,25 +18991,26 @@ exports.wrapOutput = (input, state = {}, options = {}) => { } return output; }; -}); +}(utils$7)); +const utils$6 = utils$7; const { CHAR_ASTERISK: CHAR_ASTERISK$1, /* * */ CHAR_AT, /* @ */ CHAR_BACKWARD_SLASH, /* \ */ - CHAR_COMMA: CHAR_COMMA$1, /* , */ - CHAR_DOT, /* . */ + CHAR_COMMA: CHAR_COMMA$2, /* , */ + CHAR_DOT: CHAR_DOT$1, /* . */ CHAR_EXCLAMATION_MARK, /* ! */ CHAR_FORWARD_SLASH, /* / */ - CHAR_LEFT_CURLY_BRACE, /* { */ - CHAR_LEFT_PARENTHESES, /* ( */ - CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, /* [ */ + CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, /* { */ + CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, /* ( */ + CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$2, /* [ */ CHAR_PLUS, /* + */ CHAR_QUESTION_MARK, /* ? */ - CHAR_RIGHT_CURLY_BRACE, /* } */ - CHAR_RIGHT_PARENTHESES, /* ) */ - CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1 /* ] */ -} = constants; + CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, /* } */ + CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, /* ) */ + CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$2 /* ] */ +} = constants$5; const isPathSeparator = code => { return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; @@ -18818,13 +19080,13 @@ const scan$1 = (input, options) => { backslashes = token.backslashes = true; code = advance(); - if (code === CHAR_LEFT_CURLY_BRACE) { + if (code === CHAR_LEFT_CURLY_BRACE$1) { braceEscaped = true; } continue; } - if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE$1) { braces++; while (eos() !== true && (code = advance())) { @@ -18834,12 +19096,12 @@ const scan$1 = (input, options) => { continue; } - if (code === CHAR_LEFT_CURLY_BRACE) { + if (code === CHAR_LEFT_CURLY_BRACE$1) { braces++; continue; } - if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + if (braceEscaped !== true && code === CHAR_DOT$1 && (code = advance()) === CHAR_DOT$1) { isBrace = token.isBrace = true; isGlob = token.isGlob = true; finished = true; @@ -18851,7 +19113,7 @@ const scan$1 = (input, options) => { break; } - if (braceEscaped !== true && code === CHAR_COMMA$1) { + if (braceEscaped !== true && code === CHAR_COMMA$2) { isBrace = token.isBrace = true; isGlob = token.isGlob = true; finished = true; @@ -18863,7 +19125,7 @@ const scan$1 = (input, options) => { break; } - if (code === CHAR_RIGHT_CURLY_BRACE) { + if (code === CHAR_RIGHT_CURLY_BRACE$1) { braces--; if (braces === 0) { @@ -18888,7 +19150,7 @@ const scan$1 = (input, options) => { token = { value: '', depth: 0, isGlob: false }; if (finished === true) continue; - if (prev === CHAR_DOT && index === (start + 1)) { + if (prev === CHAR_DOT$1 && index === (start + 1)) { start += 2; continue; } @@ -18904,7 +19166,7 @@ const scan$1 = (input, options) => { || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; - if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES$1) { isGlob = token.isGlob = true; isExtglob = token.isExtglob = true; finished = true; @@ -18917,7 +19179,7 @@ const scan$1 = (input, options) => { continue; } - if (code === CHAR_RIGHT_PARENTHESES) { + if (code === CHAR_RIGHT_PARENTHESES$1) { isGlob = token.isGlob = true; finished = true; break; @@ -18950,7 +19212,7 @@ const scan$1 = (input, options) => { break; } - if (code === CHAR_LEFT_SQUARE_BRACKET$1) { + if (code === CHAR_LEFT_SQUARE_BRACKET$2) { while (eos() !== true && (next = advance())) { if (next === CHAR_BACKWARD_SLASH) { backslashes = token.backslashes = true; @@ -18958,7 +19220,7 @@ const scan$1 = (input, options) => { continue; } - if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { + if (next === CHAR_RIGHT_SQUARE_BRACKET$2) { isBracket = token.isBracket = true; isGlob = token.isGlob = true; finished = true; @@ -18977,18 +19239,18 @@ const scan$1 = (input, options) => { continue; } - if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES$1) { isGlob = token.isGlob = true; if (scanToEnd === true) { while (eos() !== true && (code = advance())) { - if (code === CHAR_LEFT_PARENTHESES) { + if (code === CHAR_LEFT_PARENTHESES$1) { backslashes = token.backslashes = true; code = advance(); continue; } - if (code === CHAR_RIGHT_PARENTHESES) { + if (code === CHAR_RIGHT_PARENTHESES$1) { finished = true; break; } @@ -19041,10 +19303,10 @@ const scan$1 = (input, options) => { } if (opts.unescape === true) { - if (glob) glob = utils.removeBackslashes(glob); + if (glob) glob = utils$6.removeBackslashes(glob); if (base && backslashes === true) { - base = utils.removeBackslashes(base); + base = utils$6.removeBackslashes(base); } } @@ -19113,17 +19375,20 @@ const scan$1 = (input, options) => { var scan_1 = scan$1; +const constants$4 = constants$5; +const utils$5 = utils$7; + /** * Constants */ const { - MAX_LENGTH, - POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, + MAX_LENGTH: MAX_LENGTH$4, + POSIX_REGEX_SOURCE, REGEX_NON_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_BACKREF, REPLACEMENTS -} = constants; +} = constants$4; /** * Helpers @@ -19141,7 +19406,7 @@ const expandRange = (args, options) => { /* eslint-disable-next-line no-new */ new RegExp(value); } catch (ex) { - return args.map(v => utils.escapeRegex(v)).join('..'); + return args.map(v => utils$5.escapeRegex(v)).join('..'); } return value; @@ -19151,7 +19416,7 @@ const expandRange = (args, options) => { * Create the message for a syntax error */ -const syntaxError = (type, char) => { +const syntaxError$1 = (type, char) => { return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; }; @@ -19162,7 +19427,7 @@ const syntaxError = (type, char) => { * @return {Object} */ -const parse$4 = (input, options) => { +const parse$8 = (input, options) => { if (typeof input !== 'string') { throw new TypeError('Expected a string'); } @@ -19170,7 +19435,7 @@ const parse$4 = (input, options) => { input = REPLACEMENTS[input] || input; const opts = { ...options }; - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$4, opts.maxLength) : MAX_LENGTH$4; let len = input.length; if (len > max) { @@ -19181,11 +19446,11 @@ const parse$4 = (input, options) => { const tokens = [bos]; const capture = opts.capture ? '' : '?:'; - const win32 = utils.isWindows(options); + const win32 = utils$5.isWindows(options); // create constants based on platform, for windows or posix - const PLATFORM_CHARS = constants.globChars(win32); - const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + const PLATFORM_CHARS = constants$4.globChars(win32); + const EXTGLOB_CHARS = constants$4.extglobChars(PLATFORM_CHARS); const { DOT_LITERAL, @@ -19237,7 +19502,7 @@ const parse$4 = (input, options) => { tokens }; - input = utils.removePrefix(input, state); + input = utils$5.removePrefix(input, state); len = input.length; const extglobs = []; @@ -19417,7 +19682,7 @@ const parse$4 = (input, options) => { return state; } - state.output = utils.wrapOutput(output, state, options); + state.output = utils$5.wrapOutput(output, state, options); return state; } @@ -19492,7 +19757,7 @@ const parse$4 = (input, options) => { const idx = prev.value.lastIndexOf('['); const pre = prev.value.slice(0, idx); const rest = prev.value.slice(idx + 2); - const posix = POSIX_REGEX_SOURCE$1[rest]; + const posix = POSIX_REGEX_SOURCE[rest]; if (posix) { prev.value = pre + posix; state.backtrack = true; @@ -19530,7 +19795,7 @@ const parse$4 = (input, options) => { */ if (state.quotes === 1 && value !== '"') { - value = utils.escapeRegex(value); + value = utils$5.escapeRegex(value); prev.value += value; append({ value }); continue; @@ -19560,7 +19825,7 @@ const parse$4 = (input, options) => { if (value === ')') { if (state.parens === 0 && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('opening', '(')); + throw new SyntaxError(syntaxError$1('opening', '(')); } const extglob = extglobs[extglobs.length - 1]; @@ -19581,7 +19846,7 @@ const parse$4 = (input, options) => { if (value === '[') { if (opts.nobracket === true || !remaining().includes(']')) { if (opts.nobracket !== true && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('closing', ']')); + throw new SyntaxError(syntaxError$1('closing', ']')); } value = `\\${value}`; @@ -19601,7 +19866,7 @@ const parse$4 = (input, options) => { if (state.brackets === 0) { if (opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('opening', '[')); + throw new SyntaxError(syntaxError$1('opening', '[')); } push({ type: 'text', value, output: `\\${value}` }); @@ -19620,11 +19885,11 @@ const parse$4 = (input, options) => { // when literal brackets are explicitly disabled // assume we should match with a regex character class - if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { + if (opts.literalBrackets === false || utils$5.hasRegexChars(prevValue)) { continue; } - const escaped = utils.escapeRegex(prev.value); + const escaped = utils$5.escapeRegex(prev.value); state.output = state.output.slice(0, -prev.value.length); // when literal brackets are explicitly enabled @@ -19796,7 +20061,7 @@ const parse$4 = (input, options) => { const next = peek(); let output = value; - if (next === '<' && !utils.supportsLookbehinds()) { + if (next === '<' && !utils$5.supportsLookbehinds()) { throw new Error('Node.js v10 or higher is required for regex lookbehinds'); } @@ -20055,20 +20320,20 @@ const parse$4 = (input, options) => { } while (state.brackets > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); - state.output = utils.escapeLast(state.output, '['); + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', ']')); + state.output = utils$5.escapeLast(state.output, '['); decrement('brackets'); } while (state.parens > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); - state.output = utils.escapeLast(state.output, '('); + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', ')')); + state.output = utils$5.escapeLast(state.output, '('); decrement('parens'); } while (state.braces > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); - state.output = utils.escapeLast(state.output, '{'); + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', '}')); + state.output = utils$5.escapeLast(state.output, '{'); decrement('braces'); } @@ -20098,16 +20363,16 @@ const parse$4 = (input, options) => { * impact when none of the fast paths match. */ -parse$4.fastpaths = (input, options) => { +parse$8.fastpaths = (input, options) => { const opts = { ...options }; - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$4, opts.maxLength) : MAX_LENGTH$4; const len = input.length; if (len > max) { throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); } input = REPLACEMENTS[input] || input; - const win32 = utils.isWindows(options); + const win32 = utils$5.isWindows(options); // create constants based on platform, for windows or posix const { @@ -20120,7 +20385,7 @@ parse$4.fastpaths = (input, options) => { NO_DOTS_SLASH, STAR, START_ANCHOR - } = constants.globChars(win32); + } = constants$4.globChars(win32); const nodot = opts.dot ? NO_DOTS : NO_DOT; const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; @@ -20175,7 +20440,7 @@ parse$4.fastpaths = (input, options) => { } }; - const output = utils.removePrefix(input, state); + const output = utils$5.removePrefix(input, state); let source = create(output); if (source && opts.strictSlashes !== true) { @@ -20185,9 +20450,14 @@ parse$4.fastpaths = (input, options) => { return source; }; -var parse_1$1 = parse$4; +var parse_1$3 = parse$8; -const isObject$1 = val => val && typeof val === 'object' && !Array.isArray(val); +const path$2 = require$$0__default$2['default']; +const scan = scan_1; +const parse$7 = parse_1$3; +const utils$4 = utils$7; +const constants$3 = constants$5; +const isObject$3 = val => val && typeof val === 'object' && !Array.isArray(val); /** * Creates a matcher function from one or more glob patterns. The @@ -20211,9 +20481,9 @@ const isObject$1 = val => val && typeof val === 'object' && !Array.isArray(val); * @api public */ -const picomatch = (glob, options, returnState = false) => { +const picomatch$3 = (glob, options, returnState = false) => { if (Array.isArray(glob)) { - const fns = glob.map(input => picomatch(input, options, returnState)); + const fns = glob.map(input => picomatch$3(input, options, returnState)); const arrayMatcher = str => { for (const isMatch of fns) { const state = isMatch(str); @@ -20224,17 +20494,17 @@ const picomatch = (glob, options, returnState = false) => { return arrayMatcher; } - const isState = isObject$1(glob) && glob.tokens && glob.input; + const isState = isObject$3(glob) && glob.tokens && glob.input; if (glob === '' || (typeof glob !== 'string' && !isState)) { throw new TypeError('Expected pattern to be a non-empty string'); } const opts = options || {}; - const posix = utils.isWindows(options); + const posix = utils$4.isWindows(options); const regex = isState - ? picomatch.compileRe(glob, options) - : picomatch.makeRe(glob, options, false, true); + ? picomatch$3.compileRe(glob, options) + : picomatch$3.makeRe(glob, options, false, true); const state = regex.state; delete regex.state; @@ -20242,11 +20512,11 @@ const picomatch = (glob, options, returnState = false) => { let isIgnored = () => false; if (opts.ignore) { const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; - isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + isIgnored = picomatch$3(opts.ignore, ignoreOpts, returnState); } const matcher = (input, returnObject = false) => { - const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix }); + const { isMatch, match, output } = picomatch$3.test(input, regex, options, { glob, posix }); const result = { glob, state, regex, posix, input, output, match, isMatch }; if (typeof opts.onResult === 'function') { @@ -20296,7 +20566,7 @@ const picomatch = (glob, options, returnState = false) => { * @api public */ -picomatch.test = (input, regex, options, { glob, posix } = {}) => { +picomatch$3.test = (input, regex, options, { glob, posix } = {}) => { if (typeof input !== 'string') { throw new TypeError('Expected input to be a string'); } @@ -20306,7 +20576,7 @@ picomatch.test = (input, regex, options, { glob, posix } = {}) => { } const opts = options || {}; - const format = opts.format || (posix ? utils.toPosixSlashes : null); + const format = opts.format || (posix ? utils$4.toPosixSlashes : null); let match = input === glob; let output = (match && format) ? format(input) : input; @@ -20317,7 +20587,7 @@ picomatch.test = (input, regex, options, { glob, posix } = {}) => { if (match === false || opts.capture === true) { if (opts.matchBase === true || opts.basename === true) { - match = picomatch.matchBase(input, regex, options, posix); + match = picomatch$3.matchBase(input, regex, options, posix); } else { match = regex.exec(output); } @@ -20340,9 +20610,9 @@ picomatch.test = (input, regex, options, { glob, posix } = {}) => { * @api public */ -picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { - const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); - return regex.test(path__default['default'].basename(input)); +picomatch$3.matchBase = (input, glob, options, posix = utils$4.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch$3.makeRe(glob, options); + return regex.test(path$2.basename(input)); }; /** @@ -20362,7 +20632,7 @@ picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) = * @api public */ -picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); +picomatch$3.isMatch = (str, patterns, options) => picomatch$3(patterns, options)(str); /** * Parse a glob pattern to create the source string for a regular @@ -20378,9 +20648,9 @@ picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str * @api public */ -picomatch.parse = (pattern, options) => { - if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); - return parse_1$1(pattern, { ...options, fastpaths: false }); +picomatch$3.parse = (pattern, options) => { + if (Array.isArray(pattern)) return pattern.map(p => picomatch$3.parse(p, options)); + return parse$7(pattern, { ...options, fastpaths: false }); }; /** @@ -20410,7 +20680,7 @@ picomatch.parse = (pattern, options) => { * @api public */ -picomatch.scan = (input, options) => scan_1(input, options); +picomatch$3.scan = (input, options) => scan(input, options); /** * Create a regular expression from a parsed glob pattern. @@ -20429,7 +20699,7 @@ picomatch.scan = (input, options) => scan_1(input, options); * @api public */ -picomatch.compileRe = (parsed, options, returnOutput = false, returnState = false) => { +picomatch$3.compileRe = (parsed, options, returnOutput = false, returnState = false) => { if (returnOutput === true) { return parsed.output; } @@ -20443,7 +20713,7 @@ picomatch.compileRe = (parsed, options, returnOutput = false, returnState = fals source = `^(?!${source}).*$`; } - const regex = picomatch.toRegex(source, options); + const regex = picomatch$3.toRegex(source, options); if (returnState === true) { regex.state = parsed; } @@ -20451,7 +20721,7 @@ picomatch.compileRe = (parsed, options, returnOutput = false, returnState = fals return regex; }; -picomatch.makeRe = (input, options, returnOutput = false, returnState = false) => { +picomatch$3.makeRe = (input, options, returnOutput = false, returnState = false) => { if (!input || typeof input !== 'string') { throw new TypeError('Expected a non-empty string'); } @@ -20467,17 +20737,17 @@ picomatch.makeRe = (input, options, returnOutput = false, returnState = false) = } if (opts.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { - output = parse_1$1.fastpaths(input, options); + output = parse$7.fastpaths(input, options); } if (output === undefined) { - parsed = parse_1$1(input, options); + parsed = parse$7(input, options); parsed.prefix = prefix + (parsed.prefix || ''); } else { parsed.output = output; } - return picomatch.compileRe(parsed, options, returnOutput, returnState); + return picomatch$3.compileRe(parsed, options, returnOutput, returnState); }; /** @@ -20497,7 +20767,7 @@ picomatch.makeRe = (input, options, returnOutput = false, returnState = false) = * @api public */ -picomatch.toRegex = (source, options) => { +picomatch$3.toRegex = (source, options) => { try { const opts = options || {}; return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); @@ -20512,25 +20782,26 @@ picomatch.toRegex = (source, options) => { * @return {Object} */ -picomatch.constants = constants; +picomatch$3.constants = constants$3; /** * Expose "picomatch" */ -var picomatch_1 = picomatch; - -var picomatch$1 = picomatch_1; +var picomatch_1 = picomatch$3; -const { Readable } = require$$0__default['default']; +var picomatch$2 = picomatch_1; -const { promisify } = util__default['default']; +const fs$3 = require$$0__default$3['default']; +const { Readable } = require$$0__default$5['default']; +const sysPath$3 = require$$0__default$2['default']; +const { promisify: promisify$3 } = require$$0__default['default']; +const picomatch$1 = picomatch$2; - -const readdir$1 = promisify(fs__default['default'].readdir); -const stat$2 = promisify(fs__default['default'].stat); -const lstat = promisify(fs__default['default'].lstat); -const realpath$2 = promisify(fs__default['default'].realpath); +const readdir$1 = promisify$3(fs$3.readdir); +const stat$3 = promisify$3(fs$3.stat); +const lstat$2 = promisify$3(fs$3.lstat); +const realpath$1 = promisify$3(fs$3.realpath); /** * @typedef {Object} EntryInfo @@ -20541,8 +20812,9 @@ const realpath$2 = promisify(fs__default['default'].realpath); * @property {String} basename */ -const BANG = '!'; -const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP']); +const BANG$2 = '!'; +const RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR'; +const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]); const FILE_TYPE = 'files'; const DIR_TYPE = 'directories'; const FILE_DIR_TYPE = 'files_directories'; @@ -20550,6 +20822,8 @@ const EVERYTHING_TYPE = 'all'; const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]; const isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code); +const [maj, min] = process.versions.node.split('.').slice(0, 2).map(n => Number.parseInt(n, 10)); +const wantBigintFsStats = process.platform === 'win32' && (maj > 10 || (maj === 10 && min >= 5)); const normalizeFilter = filter => { if (filter === undefined) return; @@ -20565,7 +20839,7 @@ const normalizeFilter = filter => { const negative = []; for (const item of filter) { const trimmed = item.trim(); - if (trimmed.charAt(0) === BANG) { + if (trimmed.charAt(0) === BANG$2) { negative.push(picomatch$1(trimmed.slice(1))); } else { positive.push(picomatch$1(trimmed)); @@ -20610,9 +20884,9 @@ class ReaddirpStream extends Readable { this._fileFilter = normalizeFilter(opts.fileFilter); this._directoryFilter = normalizeFilter(opts.directoryFilter); - const statMethod = opts.lstat ? lstat : stat$2; + const statMethod = opts.lstat ? lstat$2 : stat$3; // Use bigint stats if it's windows and stat() supports options (node 10+). - if (process.platform === 'win32' && stat$2.length === 3) { + if (wantBigintFsStats) { this._stat = path => statMethod(path, { bigint: true }); } else { this._stat = statMethod; @@ -20622,8 +20896,8 @@ class ReaddirpStream extends Readable { this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); this._wantsEverything = type === EVERYTHING_TYPE; - this._root = path__default['default'].resolve(root); - this._isDirent = ('Dirent' in fs__default['default']) && !opts.alwaysStat; + this._root = sysPath$3.resolve(root); + this._isDirent = ('Dirent' in fs$3) && !opts.alwaysStat; this._statsProp = this._isDirent ? 'dirent' : 'stats'; this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent }; @@ -20687,15 +20961,15 @@ class ReaddirpStream extends Readable { } catch (error) { this._onError(error); } - return {files, depth, path}; + return { files, depth, path }; } async _formatEntry(dirent, path) { let entry; try { const basename = this._isDirent ? dirent.name : dirent; - const fullPath = path__default['default'].resolve(path__default['default'].join(path, basename)); - entry = {path: path__default['default'].relative(this._root, fullPath), fullPath, basename}; + const fullPath = sysPath$3.resolve(sysPath$3.join(path, basename)); + entry = { path: sysPath$3.relative(this._root, fullPath), fullPath, basename }; entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath); } catch (err) { this._onError(err); @@ -20727,17 +21001,19 @@ class ReaddirpStream extends Readable { if (stats && stats.isSymbolicLink()) { const full = entry.fullPath; try { - const entryRealPath = await realpath$2(full); - const entryRealPathStats = await lstat(entryRealPath); + const entryRealPath = await realpath$1(full); + const entryRealPathStats = await lstat$2(entryRealPath); if (entryRealPathStats.isFile()) { return 'file'; } if (entryRealPathStats.isDirectory()) { const len = entryRealPath.length; - if (full.startsWith(entryRealPath) && full.substr(len, 1) === path__default['default'].sep) { - return this._onError(new Error( + if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath$3.sep) { + const recursiveError = new Error( `Circular symlink detected: "${full}" points to "${entryRealPath}"` - )); + ); + recursiveError.code = RECURSIVE_ERROR_CODE; + return this._onError(recursiveError); } return 'directory'; } @@ -20770,7 +21046,7 @@ class ReaddirpStream extends Readable { * @param {String} root Root directory * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth */ -const readdirp = (root, options = {}) => { +const readdirp$1 = (root, options = {}) => { let type = options.entryType || options.type; if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility if (type) options.type = type; @@ -20789,18 +21065,20 @@ const readdirp = (root, options = {}) => { const readdirpPromise = (root, options = {}) => { return new Promise((resolve, reject) => { const files = []; - readdirp(root, options) + readdirp$1(root, options) .on('data', entry => files.push(entry)) .on('end', () => resolve(files)) .on('error', error => reject(error)); }); }; -readdirp.promise = readdirpPromise; -readdirp.ReaddirpStream = ReaddirpStream; -readdirp.default = readdirp; +readdirp$1.promise = readdirpPromise; +readdirp$1.ReaddirpStream = ReaddirpStream; +readdirp$1.default = readdirp$1; -var readdirp_1 = readdirp; +var readdirp_1 = readdirp$1; + +var anymatch$2 = {exports: {}}; /*! * normalize-path @@ -20808,7 +21086,8 @@ var readdirp_1 = readdirp; * Copyright (c) 2014-2018, Jon Schlinkert. * Released under the MIT License. */ -var normalizePath = function(path, stripTrailing) { + +var normalizePath$2 = function(path, stripTrailing) { if (typeof path !== 'string') { throw new TypeError('expected path to be a string'); } @@ -20837,6 +21116,11 @@ var normalizePath = function(path, stripTrailing) { return prefix + segs.join('/'); }; +Object.defineProperty(anymatch$2.exports, "__esModule", { value: true }); + +const picomatch = picomatch$2; +const normalizePath$1 = normalizePath$2; + /** * @typedef {(testString: string) => boolean} AnymatchFn * @typedef {string|RegExp|AnymatchFn} AnymatchPattern @@ -20844,7 +21128,7 @@ var normalizePath = function(path, stripTrailing) { */ const BANG$1 = '!'; const DEFAULT_OPTIONS = {returnIndex: false}; -const arrify = (item) => Array.isArray(item) ? item : [item]; +const arrify$1 = (item) => Array.isArray(item) ? item : [item]; /** * @param {AnymatchPattern} matcher @@ -20856,7 +21140,7 @@ const createPattern = (matcher, options) => { return matcher; } if (typeof matcher === 'string') { - const glob = picomatch$1(matcher, options); + const glob = picomatch(matcher, options); return (string) => matcher === string || glob(string); } if (matcher instanceof RegExp) { @@ -20879,7 +21163,7 @@ const matchPatterns = (patterns, negPatterns, args, returnIndex) => { throw new TypeError('anymatch: second argument must be a string: got ' + Object.prototype.toString.call(_path)) } - const path = normalizePath(_path); + const path = normalizePath$1(_path); for (let index = 0; index < negPatterns.length; index++) { const nglob = negPatterns[index]; @@ -20905,7 +21189,7 @@ const matchPatterns = (patterns, negPatterns, args, returnIndex) => { * @param {object} options * @returns {boolean|number|Function} */ -const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { +const anymatch$1 = (matchers, testString, options = DEFAULT_OPTIONS) => { if (matchers == null) { throw new TypeError('anymatch: specify first argument'); } @@ -20913,12 +21197,14 @@ const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { const returnIndex = opts.returnIndex || false; // Early cache for matchers. - const mtchers = arrify(matchers); + const mtchers = arrify$1(matchers); const negatedGlobs = mtchers .filter(item => typeof item === 'string' && item.charAt(0) === BANG$1) .map(item => item.slice(1)) - .map(item => picomatch$1(item, opts)); - const patterns = mtchers.map(matcher => createPattern(matcher, opts)); + .map(item => picomatch(item, opts)); + const patterns = mtchers + .filter(item => typeof item !== 'string' || (typeof item === 'string' && item.charAt(0) !== BANG$1)) + .map(matcher => createPattern(matcher, opts)); if (testString == null) { return (testString, ri = false) => { @@ -20930,8 +21216,8 @@ const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { return matchPatterns(patterns, negatedGlobs, testString, returnIndex); }; -anymatch.default = anymatch; -var anymatch_1 = anymatch; +anymatch$1.default = anymatch$1; +anymatch$2.exports = anymatch$1; /*! * is-extglob @@ -20939,7 +21225,8 @@ var anymatch_1 = anymatch; * Copyright (c) 2014-2016, Jon Schlinkert. * Licensed under the MIT License. */ -var isExtglob = function isExtglob(str) { + +var isExtglob$1 = function isExtglob(str) { if (typeof str !== 'string' || str === '') { return false; } @@ -20960,11 +21247,12 @@ var isExtglob = function isExtglob(str) { * Released under the MIT License. */ -var chars$1 = { '{': '}', '(': ')', '[': ']'}; +var isExtglob = isExtglob$1; +var chars = { '{': '}', '(': ')', '[': ']'}; var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; -var isGlob = function isGlob(str, options) { +var isGlob$2 = function isGlob(str, options) { if (typeof str !== 'string' || str === '') { return false; } @@ -20988,7 +21276,7 @@ var isGlob = function isGlob(str, options) { // if an open bracket/brace/paren is escaped, // set the index to the next closing character var open = match[1]; - var close = open ? chars$1[open] : null; + var close = open ? chars[open] : null; if (open && close) { var n = str.indexOf(close, idx); if (n !== -1) { @@ -21001,8 +21289,9 @@ var isGlob = function isGlob(str, options) { return false; }; -var pathPosixDirname = path__default['default'].posix.dirname; -var isWin32 = os__default['default'].platform() === 'win32'; +var isGlob$1 = isGlob$2; +var pathPosixDirname = require$$0__default$2['default'].posix.dirname; +var isWin32 = require$$0__default$1['default'].platform() === 'win32'; var slash = '/'; var backslash = /\\/g; @@ -21016,7 +21305,7 @@ var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; * @param {boolean} [opts.flipBackslashes=true] * @returns {string} */ -var globParent = function globParent(str, opts) { +var globParent$1 = function globParent(str, opts) { var options = Object.assign({ flipBackslashes: true }, opts); // flip windows path separators @@ -21035,13 +21324,15 @@ var globParent = function globParent(str, opts) { // remove path parts that are globby do { str = pathPosixDirname(str); - } while (isGlob(str) || globby.test(str)); + } while (isGlob$1(str) || globby.test(str)); // remove escape chars and return result return str.replace(escaped, '$1'); }; -var utils$1 = createCommonjsModule(function (module, exports) { +var utils$3 = {}; + +(function (exports) { exports.isInteger = num => { if (typeof num === 'number') { @@ -21153,16 +21444,18 @@ exports.flatten = (...args) => { flat(args); return result; }; -}); +}(utils$3)); + +const utils$2 = utils$3; -var stringify$3 = (ast, options = {}) => { +var stringify$a = (ast, options = {}) => { let stringify = (node, parent = {}) => { - let invalidBlock = options.escapeInvalid && utils$1.isInvalidBrace(parent); + let invalidBlock = options.escapeInvalid && utils$2.isInvalidBrace(parent); let invalidNode = node.invalid === true && options.escapeInvalid === true; let output = ''; if (node.value) { - if ((invalidBlock || invalidNode) && utils$1.isOpenOrClose(node)) { + if ((invalidBlock || invalidNode) && utils$2.isOpenOrClose(node)) { return '\\' + node.value; } return node.value; @@ -21190,7 +21483,7 @@ var stringify$3 = (ast, options = {}) => { * Released under the MIT License. */ -var isNumber = function(num) { +var isNumber$3 = function(num) { if (typeof num === 'number') { return num - num === 0; } @@ -21207,10 +21500,10 @@ var isNumber = function(num) { * Released under the MIT License. */ +const isNumber$2 = isNumber$3; - -const toRegexRange = (min, max, options) => { - if (isNumber(min) === false) { +const toRegexRange$1 = (min, max, options) => { + if (isNumber$2(min) === false) { throw new TypeError('toRegexRange: expected the first argument to be a number'); } @@ -21218,7 +21511,7 @@ const toRegexRange = (min, max, options) => { return String(min); } - if (isNumber(max) === false) { + if (isNumber$2(max) === false) { throw new TypeError('toRegexRange: expected the second argument to be a number.'); } @@ -21233,8 +21526,8 @@ const toRegexRange = (min, max, options) => { let wrap = String(opts.wrap); let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; - if (toRegexRange.cache.hasOwnProperty(cacheKey)) { - return toRegexRange.cache[cacheKey].result; + if (toRegexRange$1.cache.hasOwnProperty(cacheKey)) { + return toRegexRange$1.cache[cacheKey].result; } let a = Math.min(min, max); @@ -21281,7 +21574,7 @@ const toRegexRange = (min, max, options) => { state.result = `(?:${state.result})`; } - toRegexRange.cache[cacheKey] = state; + toRegexRange$1.cache[cacheKey] = state; return state.result; }; @@ -21315,7 +21608,7 @@ function splitToRanges(min, max) { } stops = [...stops]; - stops.sort(compare$1); + stops.sort(compare$2); return stops; } @@ -21421,7 +21714,7 @@ function zip(a, b) { return arr; } -function compare$1(a, b) { +function compare$2(a, b) { return a > b ? 1 : b > a ? -1 : 0; } @@ -21478,14 +21771,14 @@ function padZeros(value, tok, options) { * Cache */ -toRegexRange.cache = {}; -toRegexRange.clearCache = () => (toRegexRange.cache = {}); +toRegexRange$1.cache = {}; +toRegexRange$1.clearCache = () => (toRegexRange$1.cache = {}); /** * Expose `toRegexRange` */ -var toRegexRange_1 = toRegexRange; +var toRegexRange_1 = toRegexRange$1; /*! * fill-range @@ -21494,12 +21787,12 @@ var toRegexRange_1 = toRegexRange; * Licensed under the MIT License. */ - - +const util$1 = require$$0__default['default']; +const toRegexRange = toRegexRange_1; const isObject$2 = val => val !== null && typeof val === 'object' && !Array.isArray(val); -const transform$3 = toNumber => { +const transform = toNumber => { return value => toNumber === true ? Number(value) : String(value); }; @@ -21518,7 +21811,7 @@ const zeros = input => { return index > 0; }; -const stringify$4 = (start, end, options) => { +const stringify$9 = (start, end, options) => { if (typeof start === 'string' || typeof end === 'string') { return true; } @@ -21579,7 +21872,7 @@ const toSequence = (parts, options) => { const toRange = (a, b, isNumbers, options) => { if (isNumbers) { - return toRegexRange_1(a, b, { wrap: false, ...options }); + return toRegexRange(a, b, { wrap: false, ...options }); } let start = String.fromCharCode(a); @@ -21595,11 +21888,11 @@ const toRegex = (start, end, options) => { let prefix = options.capture ? '' : '?:'; return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); } - return toRegexRange_1(start, end, options); + return toRegexRange(start, end, options); }; const rangeError = (...args) => { - return new RangeError('Invalid range arguments: ' + util__default['default'].inspect(...args)); + return new RangeError('Invalid range arguments: ' + util$1.inspect(...args)); }; const invalidRange = (start, end, options) => { @@ -21635,8 +21928,8 @@ const fillNumbers = (start, end, step = 1, options = {}) => { let padded = zeros(startString) || zeros(endString) || zeros(stepString); let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; - let toNumber = padded === false && stringify$4(start, end, options) === false; - let format = options.transform || transform$3(toNumber); + let toNumber = padded === false && stringify$9(start, end, options) === false; + let format = options.transform || transform(toNumber); if (options.toRegex && step === 1) { return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); @@ -21700,7 +21993,7 @@ const fillLetters = (start, end, step = 1, options = {}) => { return range; }; -const fill = (start, end, step, options = {}) => { +const fill$2 = (start, end, step, options = {}) => { if (end == null && isValidValue(start)) { return [start]; } @@ -21710,11 +22003,11 @@ const fill = (start, end, step, options = {}) => { } if (typeof step === 'function') { - return fill(start, end, 1, { transform: step }); + return fill$2(start, end, 1, { transform: step }); } if (isObject$2(step)) { - return fill(start, end, 0, step); + return fill$2(start, end, 0, step); } let opts = { ...options }; @@ -21723,7 +22016,7 @@ const fill = (start, end, step, options = {}) => { if (!isNumber$1(step)) { if (step != null && !isObject$2(step)) return invalidStep(step, opts); - return fill(start, end, 1, step); + return fill$2(start, end, 1, step); } if (isNumber$1(start) && isNumber$1(end)) { @@ -21733,7 +22026,10 @@ const fill = (start, end, step, options = {}) => { return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); }; -var fillRange = fill; +var fillRange = fill$2; + +const fill$1 = fillRange; +const utils$1 = utils$3; const compile$1 = (ast, options = {}) => { let walk = (node, parent = {}) => { @@ -21768,7 +22064,7 @@ const compile$1 = (ast, options = {}) => { if (node.nodes && node.ranges > 0) { let args = utils$1.reduce(node.nodes); - let range = fillRange(...args, { ...options, wrap: false, toRegex: true }); + let range = fill$1(...args, { ...options, wrap: false, toRegex: true }); if (range.length !== 0) { return args.length > 1 && range.length > 1 ? `(${range})` : range; @@ -21788,6 +22084,10 @@ const compile$1 = (ast, options = {}) => { var compile_1 = compile$1; +const fill = fillRange; +const stringify$8 = stringify$a; +const utils = utils$3; + const append = (queue = '', stash = '', enclose = false) => { let result = []; @@ -21796,7 +22096,7 @@ const append = (queue = '', stash = '', enclose = false) => { if (!stash.length) return queue; if (!queue.length) { - return enclose ? utils$1.flatten(stash).map(ele => `{${ele}}`) : stash; + return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; } for (let item of queue) { @@ -21811,10 +22111,10 @@ const append = (queue = '', stash = '', enclose = false) => { } } } - return utils$1.flatten(result); + return utils.flatten(result); }; -const expand$2 = (ast, options = {}) => { +const expand$1 = (ast, options = {}) => { let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; let walk = (node, parent = {}) => { @@ -21829,7 +22129,7 @@ const expand$2 = (ast, options = {}) => { } if (node.invalid || node.dollar) { - q.push(append(q.pop(), stringify$3(node, options))); + q.push(append(q.pop(), stringify$8(node, options))); return; } @@ -21839,15 +22139,15 @@ const expand$2 = (ast, options = {}) => { } if (node.nodes && node.ranges > 0) { - let args = utils$1.reduce(node.nodes); + let args = utils.reduce(node.nodes); - if (utils$1.exceedsLimit(...args, options.step, rangeLimit)) { + if (utils.exceedsLimit(...args, options.step, rangeLimit)) { throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); } - let range = fillRange(...args, options); + let range = fill(...args, options); if (range.length === 0) { - range = stringify$3(node, options); + range = stringify$8(node, options); } q.push(append(q.pop(), range)); @@ -21855,7 +22155,7 @@ const expand$2 = (ast, options = {}) => { return; } - let enclose = utils$1.encloseBrace(node); + let enclose = utils.encloseBrace(node); let queue = node.queue; let block = node; @@ -21891,12 +22191,12 @@ const expand$2 = (ast, options = {}) => { return queue; }; - return utils$1.flatten(walk(ast)); + return utils.flatten(walk(ast)); }; -var expand_1 = expand$2; +var expand_1 = expand$1; -var constants$1 = { +var constants$2 = { MAX_LENGTH: 1024 * 64, // Digits @@ -21952,39 +22252,41 @@ var constants$1 = { CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ }; +const stringify$7 = stringify$a; + /** * Constants */ const { - MAX_LENGTH: MAX_LENGTH$1, + MAX_LENGTH: MAX_LENGTH$3, CHAR_BACKSLASH, /* \ */ CHAR_BACKTICK, /* ` */ - CHAR_COMMA: CHAR_COMMA$2, /* , */ - CHAR_DOT: CHAR_DOT$1, /* . */ - CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, /* ( */ - CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, /* ) */ - CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, /* { */ - CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, /* } */ - CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$2, /* [ */ - CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$2, /* ] */ + CHAR_COMMA: CHAR_COMMA$1, /* , */ + CHAR_DOT, /* . */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, /* [ */ + CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1, /* ] */ CHAR_DOUBLE_QUOTE: CHAR_DOUBLE_QUOTE$1, /* " */ CHAR_SINGLE_QUOTE: CHAR_SINGLE_QUOTE$1, /* ' */ CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_NOBREAK_SPACE -} = constants$1; +} = constants$2; /** * parse */ -const parse$5 = (input, options = {}) => { +const parse$6 = (input, options = {}) => { if (typeof input !== 'string') { throw new TypeError('Expected a string'); } let opts = options || {}; - let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1; + let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$3, opts.maxLength) : MAX_LENGTH$3; if (input.length > max) { throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); } @@ -22048,7 +22350,7 @@ const parse$5 = (input, options = {}) => { * Right square bracket (literal): ']' */ - if (value === CHAR_RIGHT_SQUARE_BRACKET$2) { + if (value === CHAR_RIGHT_SQUARE_BRACKET$1) { push({ type: 'text', value: '\\' + value }); continue; } @@ -22057,14 +22359,14 @@ const parse$5 = (input, options = {}) => { * Left square bracket: '[' */ - if (value === CHAR_LEFT_SQUARE_BRACKET$2) { + if (value === CHAR_LEFT_SQUARE_BRACKET$1) { brackets++; let next; while (index < length && (next = advance())) { value += next; - if (next === CHAR_LEFT_SQUARE_BRACKET$2) { + if (next === CHAR_LEFT_SQUARE_BRACKET$1) { brackets++; continue; } @@ -22074,7 +22376,7 @@ const parse$5 = (input, options = {}) => { continue; } - if (next === CHAR_RIGHT_SQUARE_BRACKET$2) { + if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { brackets--; if (brackets === 0) { @@ -22091,14 +22393,14 @@ const parse$5 = (input, options = {}) => { * Parentheses */ - if (value === CHAR_LEFT_PARENTHESES$1) { + if (value === CHAR_LEFT_PARENTHESES) { block = push({ type: 'paren', nodes: [] }); stack.push(block); push({ type: 'text', value }); continue; } - if (value === CHAR_RIGHT_PARENTHESES$1) { + if (value === CHAR_RIGHT_PARENTHESES) { if (block.type !== 'paren') { push({ type: 'text', value }); continue; @@ -22143,7 +22445,7 @@ const parse$5 = (input, options = {}) => { * Left curly brace: '{' */ - if (value === CHAR_LEFT_CURLY_BRACE$1) { + if (value === CHAR_LEFT_CURLY_BRACE) { depth++; let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; @@ -22168,7 +22470,7 @@ const parse$5 = (input, options = {}) => { * Right curly brace: '}' */ - if (value === CHAR_RIGHT_CURLY_BRACE$1) { + if (value === CHAR_RIGHT_CURLY_BRACE) { if (block.type !== 'brace') { push({ type: 'text', value }); continue; @@ -22189,11 +22491,11 @@ const parse$5 = (input, options = {}) => { * Comma: ',' */ - if (value === CHAR_COMMA$2 && depth > 0) { + if (value === CHAR_COMMA$1 && depth > 0) { if (block.ranges > 0) { block.ranges = 0; let open = block.nodes.shift(); - block.nodes = [open, { type: 'text', value: stringify$3(block) }]; + block.nodes = [open, { type: 'text', value: stringify$7(block) }]; } push({ type: 'comma', value }); @@ -22205,7 +22507,7 @@ const parse$5 = (input, options = {}) => { * Dot: '.' */ - if (value === CHAR_DOT$1 && depth > 0 && block.commas === 0) { + if (value === CHAR_DOT && depth > 0 && block.commas === 0) { let siblings = block.nodes; if (depth === 0 || siblings.length === 0) { @@ -22277,7 +22579,12 @@ const parse$5 = (input, options = {}) => { return ast; }; -var parse_1$2 = parse$5; +var parse_1$2 = parse$6; + +const stringify$6 = stringify$a; +const compile = compile_1; +const expand = expand_1; +const parse$5 = parse_1$2; /** * Expand the given pattern or create a regex-compatible string. @@ -22293,12 +22600,12 @@ var parse_1$2 = parse$5; * @api public */ -const braces = (input, options = {}) => { +const braces$1 = (input, options = {}) => { let output = []; if (Array.isArray(input)) { for (let pattern of input) { - let result = braces.create(pattern, options); + let result = braces$1.create(pattern, options); if (Array.isArray(result)) { output.push(...result); } else { @@ -22306,7 +22613,7 @@ const braces = (input, options = {}) => { } } } else { - output = [].concat(braces.create(input, options)); + output = [].concat(braces$1.create(input, options)); } if (options && options.expand === true && options.nodupes === true) { @@ -22329,7 +22636,7 @@ const braces = (input, options = {}) => { * @api public */ -braces.parse = (input, options = {}) => parse_1$2(input, options); +braces$1.parse = (input, options = {}) => parse$5(input, options); /** * Creates a braces string from an AST, or an AST node. @@ -22345,11 +22652,11 @@ braces.parse = (input, options = {}) => parse_1$2(input, options); * @api public */ -braces.stringify = (input, options = {}) => { +braces$1.stringify = (input, options = {}) => { if (typeof input === 'string') { - return stringify$3(braces.parse(input, options), options); + return stringify$6(braces$1.parse(input, options), options); } - return stringify$3(input, options); + return stringify$6(input, options); }; /** @@ -22367,11 +22674,11 @@ braces.stringify = (input, options = {}) => { * @api public */ -braces.compile = (input, options = {}) => { +braces$1.compile = (input, options = {}) => { if (typeof input === 'string') { - input = braces.parse(input, options); + input = braces$1.parse(input, options); } - return compile_1(input, options); + return compile(input, options); }; /** @@ -22391,12 +22698,12 @@ braces.compile = (input, options = {}) => { * @api public */ -braces.expand = (input, options = {}) => { +braces$1.expand = (input, options = {}) => { if (typeof input === 'string') { - input = braces.parse(input, options); + input = braces$1.parse(input, options); } - let result = expand_1(input, options); + let result = expand(input, options); // filter out empty strings if specified if (options.noempty === true) { @@ -22427,23 +22734,23 @@ braces.expand = (input, options = {}) => { * @api public */ -braces.create = (input, options = {}) => { +braces$1.create = (input, options = {}) => { if (input === '' || input.length < 3) { return [input]; } return options.expand !== true - ? braces.compile(input, options) - : braces.expand(input, options); + ? braces$1.compile(input, options) + : braces$1.expand(input, options); }; /** * Expose "braces" */ -var braces_1 = braces; +var braces_1 = braces$1; -var require$$0$1 = [ +var require$$0$4 = [ "3dm", "3ds", "3g2", @@ -22579,10 +22886,14 @@ var require$$0$1 = [ "numbers", "nupkg", "o", + "odp", + "ods", + "odt", "oga", "ogg", "ogv", "otf", + "ott", "pages", "pbm", "pcx", @@ -22700,16 +23011,22 @@ var require$$0$1 = [ "zipx" ]; -var binaryExtensions = require$$0$1; +var binaryExtensions$1 = require$$0$4; -const extensions = new Set(binaryExtensions); +const path$1 = require$$0__default$2['default']; +const binaryExtensions = binaryExtensions$1; -var isBinaryPath = filePath => extensions.has(path__default['default'].extname(filePath).slice(1).toLowerCase()); +const extensions$1 = new Set(binaryExtensions); -var constants$2 = createCommonjsModule(function (module, exports) { +var isBinaryPath$1 = filePath => extensions$1.has(path$1.extname(filePath).slice(1).toLowerCase()); -const {sep} = path__default['default']; +var constants$1 = {}; + +(function (exports) { + +const {sep} = require$$0__default$2['default']; const {platform} = process; +const os = require$$0__default$1['default']; exports.EV_ALL = 'all'; exports.EV_READY = 'ready'; @@ -22769,38 +23086,41 @@ exports.IDENTITY_FN = val => val; exports.isWindows = platform === 'win32'; exports.isMacos = platform === 'darwin'; exports.isLinux = platform === 'linux'; -}); - -const { promisify: promisify$1 } = util__default['default']; +exports.isIBMi = os.type() === 'OS400'; +}(constants$1)); +const fs$2 = require$$0__default$3['default']; +const sysPath$2 = require$$0__default$2['default']; +const { promisify: promisify$2 } = require$$0__default['default']; +const isBinaryPath = isBinaryPath$1; const { isWindows: isWindows$1, isLinux, - EMPTY_FN, - EMPTY_STR, + EMPTY_FN: EMPTY_FN$2, + EMPTY_STR: EMPTY_STR$1, KEY_LISTENERS, KEY_ERR, KEY_RAW, HANDLER_KEYS, - EV_CHANGE, - EV_ADD, - EV_ADD_DIR, - EV_ERROR, - STR_DATA, - STR_END, - BRACE_START, - STAR: STAR$1 -} = constants$2; + EV_CHANGE: EV_CHANGE$2, + EV_ADD: EV_ADD$2, + EV_ADD_DIR: EV_ADD_DIR$2, + EV_ERROR: EV_ERROR$2, + STR_DATA: STR_DATA$1, + STR_END: STR_END$2, + BRACE_START: BRACE_START$1, + STAR +} = constants$1; const THROTTLE_MODE_WATCH = 'watch'; -const open = promisify$1(fs__default['default'].open); -const stat$3 = promisify$1(fs__default['default'].stat); -const lstat$1 = promisify$1(fs__default['default'].lstat); -const close = promisify$1(fs__default['default'].close); -const fsrealpath = promisify$1(fs__default['default'].realpath); +const open = promisify$2(fs$2.open); +const stat$2 = promisify$2(fs$2.stat); +const lstat$1 = promisify$2(fs$2.lstat); +const close = promisify$2(fs$2.close); +const fsrealpath = promisify$2(fs$2.realpath); -const statMethods = { lstat: lstat$1, stat: stat$3 }; +const statMethods$1 = { lstat: lstat$1, stat: stat$2 }; // TODO: emit errors properly. Example: EMFILE on Macos. const foreach = (val, fn) => { @@ -22880,12 +23200,12 @@ function createFsWatchInstance(path, options, listener, errHandler, emitRaw) { // case the file's watcher misses it (and rely on throttling to de-dupe) if (evPath && path !== evPath) { fsWatchBroadcast( - path__default['default'].resolve(path, evPath), KEY_LISTENERS, path__default['default'].join(path, evPath) + sysPath$2.resolve(path, evPath), KEY_LISTENERS, sysPath$2.join(path, evPath) ); } }; try { - return fs__default['default'].watch(path, options, handleEvent); + return fs$2.watch(path, options, handleEvent); } catch (error) { errHandler(error); } @@ -22940,7 +23260,7 @@ const setFsWatchListener = (path, fullPath, options, handlers) => { fsWatchBroadcast.bind(null, fullPath, KEY_RAW) ); if (!watcher) return; - watcher.on(EV_ERROR, async (error) => { + watcher.on(EV_ERROR$2, async (error) => { const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR); cont.watcherUnusable = true; // documented since Node 10.4.1 // Workaround for https://github.com/joyent/node/issues/4337 @@ -23004,13 +23324,7 @@ const setFsWatchFileListener = (path, fullPath, options, handlers) => { const copts = cont && cont.options; if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) { - // "Upgrade" the watcher to persistence or a quicker interval. - // This creates some unlikely edge case issues if the user mixes - // settings in a very weird way, but solving for those cases - // doesn't seem worthwhile for the added complexity. - cont.listeners; - cont.rawEmitters; - fs__default['default'].unwatchFile(fullPath); + fs$2.unwatchFile(fullPath); cont = undefined; } @@ -23027,9 +23341,9 @@ const setFsWatchFileListener = (path, fullPath, options, handlers) => { listeners: listener, rawEmitters: rawEmitter, options, - watcher: fs__default['default'].watchFile(fullPath, options, (curr, prev) => { + watcher: fs$2.watchFile(fullPath, options, (curr, prev) => { foreach(cont.rawEmitters, (rawEmitter) => { - rawEmitter(EV_CHANGE, fullPath, {curr, prev}); + rawEmitter(EV_CHANGE$2, fullPath, {curr, prev}); }); const currmtime = curr.mtimeMs; if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) { @@ -23048,7 +23362,7 @@ const setFsWatchFileListener = (path, fullPath, options, handlers) => { delFromSet(cont, KEY_RAW, rawEmitter); if (isEmptySet(cont.listeners)) { FsWatchFileInstances.delete(fullPath); - fs__default['default'].unwatchFile(fullPath); + fs$2.unwatchFile(fullPath); cont.options = cont.watcher = undefined; Object.freeze(cont); } @@ -23058,7 +23372,7 @@ const setFsWatchFileListener = (path, fullPath, options, handlers) => { /** * @mixin */ -class NodeFsHandler { +class NodeFsHandler$1 { /** * @param {import("../index").FSWatcher} fsW @@ -23076,13 +23390,13 @@ constructor(fsW) { */ _watchWithNodeFs(path, listener) { const opts = this.fsw.options; - const directory = path__default['default'].dirname(path); - const basename = path__default['default'].basename(path); + const directory = sysPath$2.dirname(path); + const basename = sysPath$2.basename(path); const parent = this.fsw._getWatchedDir(directory); parent.add(basename); - const absolutePath = path__default['default'].resolve(path); + const absolutePath = sysPath$2.resolve(path); const options = {persistent: opts.persistent}; - if (!listener) listener = EMPTY_FN; + if (!listener) listener = EMPTY_FN$2; let closer; if (opts.usePolling) { @@ -23113,8 +23427,8 @@ _handleFile(file, stats, initialAdd) { if (this.fsw.closed) { return; } - const dirname = path__default['default'].dirname(file); - const basename = path__default['default'].basename(file); + const dirname = sysPath$2.dirname(file); + const basename = sysPath$2.basename(file); const parent = this.fsw._getWatchedDir(dirname); // stats is always present let prevStats = stats; @@ -23126,13 +23440,13 @@ _handleFile(file, stats, initialAdd) { if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return; if (!newStats || newStats.mtimeMs === 0) { try { - const newStats = await stat$3(file); + const newStats = await stat$2(file); if (this.fsw.closed) return; // Check that change event was not fired because of changed only accessTime. const at = newStats.atimeMs; const mt = newStats.mtimeMs; if (!at || at <= mt || mt !== prevStats.mtimeMs) { - this.fsw._emit(EV_CHANGE, file, newStats); + this.fsw._emit(EV_CHANGE$2, file, newStats); } if (isLinux && prevStats.ino !== newStats.ino) { this.fsw._closeFile(path); @@ -23151,7 +23465,7 @@ _handleFile(file, stats, initialAdd) { const at = newStats.atimeMs; const mt = newStats.mtimeMs; if (!at || at <= mt || mt !== prevStats.mtimeMs) { - this.fsw._emit(EV_CHANGE, file, newStats); + this.fsw._emit(EV_CHANGE$2, file, newStats); } prevStats = newStats; } @@ -23161,8 +23475,8 @@ _handleFile(file, stats, initialAdd) { // emit an add event if we're supposed to if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) { - if (!this.fsw._throttle(EV_ADD, file, 0)) return; - this.fsw._emit(EV_ADD, file, stats); + if (!this.fsw._throttle(EV_ADD$2, file, 0)) return; + this.fsw._emit(EV_ADD$2, file, stats); } return closer; @@ -23191,12 +23505,12 @@ async _handleSymlink(entry, directory, path, item) { if (dir.has(item)) { if (this.fsw._symlinkPaths.get(full) !== linkPath) { this.fsw._symlinkPaths.set(full, linkPath); - this.fsw._emit(EV_CHANGE, path, entry.stats); + this.fsw._emit(EV_CHANGE$2, path, entry.stats); } } else { dir.add(item); this.fsw._symlinkPaths.set(full, linkPath); - this.fsw._emit(EV_ADD, path, entry.stats); + this.fsw._emit(EV_ADD$2, path, entry.stats); } this.fsw._emitReady(); return true; @@ -23212,7 +23526,7 @@ async _handleSymlink(entry, directory, path, item) { _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { // Normalize the directory name on Windows - directory = path__default['default'].join(directory, EMPTY_STR); + directory = sysPath$2.join(directory, EMPTY_STR$1); if (!wh.hasGlob) { throttler = this.fsw._throttle('readdir', directory, 1000); @@ -23226,13 +23540,13 @@ _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { fileFilter: entry => wh.filterPath(entry), directoryFilter: entry => wh.filterDir(entry), depth: 0 - }).on(STR_DATA, async (entry) => { + }).on(STR_DATA$1, async (entry) => { if (this.fsw.closed) { stream = undefined; return; } const item = entry.path; - let path = path__default['default'].join(directory, item); + let path = sysPath$2.join(directory, item); current.add(item); if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) { @@ -23250,14 +23564,14 @@ _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { this.fsw._incrReadyCount(); // ensure relativeness of path is preserved in case of watcher reuse - path = path__default['default'].join(dir, path__default['default'].relative(dir, path)); + path = sysPath$2.join(dir, sysPath$2.relative(dir, path)); this._addToNodeFs(path, initialAdd, wh, depth + 1); } - }).on(EV_ERROR, this._boundHandleError); + }).on(EV_ERROR$2, this._boundHandleError); return new Promise(resolve => - stream.once(STR_END, () => { + stream.once(STR_END$2, () => { if (this.fsw.closed) { stream = undefined; return; @@ -23276,7 +23590,7 @@ _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { // a path may have been filtered out of this readdir, but // shouldn't be removed because it matches a different glob (!wh.hasGlob || wh.filterPath({ - fullPath: path__default['default'].resolve(directory, item) + fullPath: sysPath$2.resolve(directory, item) })); }).forEach((item) => { this.fsw._remove(directory, item); @@ -23302,14 +23616,14 @@ _handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { * @returns {Promise} closer for the watcher instance. */ async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) { - const parentDir = this.fsw._getWatchedDir(path__default['default'].dirname(dir)); - const tracked = parentDir.has(path__default['default'].basename(dir)); + const parentDir = this.fsw._getWatchedDir(sysPath$2.dirname(dir)); + const tracked = parentDir.has(sysPath$2.basename(dir)); if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) { - if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats); + if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR$2, dir, stats); } // ensure dir is tracked (harmless if redundant) - parentDir.add(path__default['default'].basename(dir)); + parentDir.add(sysPath$2.basename(dir)); this.fsw._getWatchedDir(dir); let throttler; let closer; @@ -23358,36 +23672,37 @@ async _addToNodeFs(path, initialAdd, priorWh, depth, target) { // evaluate what is at the path we're being asked to watch try { - const stats = await statMethods[wh.statMethod](wh.watchPath); + const stats = await statMethods$1[wh.statMethod](wh.watchPath); if (this.fsw.closed) return; if (this.fsw._isIgnored(wh.watchPath, stats)) { ready(); return false; } - const follow = this.fsw.options.followSymlinks && !path.includes(STAR$1) && !path.includes(BRACE_START); + const follow = this.fsw.options.followSymlinks && !path.includes(STAR) && !path.includes(BRACE_START$1); let closer; if (stats.isDirectory()) { + const absPath = sysPath$2.resolve(path); const targetPath = follow ? await fsrealpath(path) : path; if (this.fsw.closed) return; closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath); if (this.fsw.closed) return; // preserve this symlink's target path - if (path !== targetPath && targetPath !== undefined) { - this.fsw._symlinkPaths.set(targetPath, true); + if (absPath !== targetPath && targetPath !== undefined) { + this.fsw._symlinkPaths.set(absPath, targetPath); } } else if (stats.isSymbolicLink()) { const targetPath = follow ? await fsrealpath(path) : path; if (this.fsw.closed) return; - const parent = path__default['default'].dirname(wh.watchPath); + const parent = sysPath$2.dirname(wh.watchPath); this.fsw._getWatchedDir(parent).add(wh.watchPath); - this.fsw._emit(EV_ADD, wh.watchPath, stats); + this.fsw._emit(EV_ADD$2, wh.watchPath, stats); closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath); if (this.fsw.closed) return; // preserve this symlink's target path if (targetPath !== undefined) { - this.fsw._symlinkPaths.set(path__default['default'].resolve(path), targetPath); + this.fsw._symlinkPaths.set(sysPath$2.resolve(path), targetPath); } } else { closer = this._handleFile(wh.watchPath, stats, initialAdd); @@ -23407,9 +23722,13 @@ async _addToNodeFs(path, initialAdd, priorWh, depth, target) { } -var nodefsHandler = NodeFsHandler; +var nodefsHandler = NodeFsHandler$1; -const { promisify: promisify$2 } = util__default['default']; +var fseventsHandler = {exports: {}}; + +const fs$1 = require$$0__default$3['default']; +const sysPath$1 = require$$0__default$2['default']; +const { promisify: promisify$1 } = require$$0__default['default']; let fsevents; try { @@ -23434,9 +23753,9 @@ const { EV_ADD: EV_ADD$1, EV_CHANGE: EV_CHANGE$1, EV_ADD_DIR: EV_ADD_DIR$1, - EV_UNLINK, + EV_UNLINK: EV_UNLINK$1, EV_ERROR: EV_ERROR$1, - STR_DATA: STR_DATA$1, + STR_DATA, STR_END: STR_END$1, FSEVENT_CREATED, FSEVENT_MODIFIED, @@ -23451,18 +23770,18 @@ const { ROOT_GLOBSTAR, DIR_SUFFIX, DOT_SLASH, - FUNCTION_TYPE, + FUNCTION_TYPE: FUNCTION_TYPE$1, EMPTY_FN: EMPTY_FN$1, IDENTITY_FN -} = constants$2; +} = constants$1; const Depth = (value) => isNaN(value) ? {} : {depth: value}; -const stat$4 = promisify$2(fs__default['default'].stat); -const lstat$2 = promisify$2(fs__default['default'].lstat); -const realpath$3 = promisify$2(fs__default['default'].realpath); +const stat$1 = promisify$1(fs$1.stat); +const lstat = promisify$1(fs$1.lstat); +const realpath = promisify$1(fs$1.realpath); -const statMethods$1 = { stat: stat$4, lstat: lstat$2 }; +const statMethods = { stat: stat$1, lstat }; /** * @typedef {String} Path @@ -23511,8 +23830,9 @@ const createFSEventsInstance = (path, callback) => { * @returns {Function} closer */ function setFSEventsListener(path, realPath, listener, rawEmitter) { - let watchPath = path__default['default'].extname(path) ? path__default['default'].dirname(path) : path; - const parentPath = path__default['default'].dirname(watchPath); + let watchPath = sysPath$1.extname(realPath) ? sysPath$1.dirname(realPath) : realPath; + + const parentPath = sysPath$1.dirname(watchPath); let cont = FSEventsWatchers.get(watchPath); // If we've accumulated a substantial number of paths that @@ -23523,14 +23843,14 @@ function setFSEventsListener(path, realPath, listener, rawEmitter) { watchPath = parentPath; } - const resolvedPath = path__default['default'].resolve(path); + const resolvedPath = sysPath$1.resolve(path); const hasSymlink = resolvedPath !== realPath; const filteredListener = (fullPath, flags, info) => { if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath); if ( fullPath === resolvedPath || - !fullPath.indexOf(resolvedPath + path__default['default'].sep) + !fullPath.indexOf(resolvedPath + sysPath$1.sep) ) listener(fullPath, flags, info); }; @@ -23538,7 +23858,7 @@ function setFSEventsListener(path, realPath, listener, rawEmitter) { // modifies `watchPath` to the parent path when it finds a match let watchedParent = false; for (const watchedPath of FSEventsWatchers.keys()) { - if (realPath.indexOf(path__default['default'].resolve(watchedPath) + path__default['default'].sep) === 0) { + if (realPath.indexOf(sysPath$1.resolve(watchedPath) + sysPath$1.sep) === 0) { watchPath = watchedPath; cont = FSEventsWatchers.get(watchPath); watchedParent = true; @@ -23603,7 +23923,7 @@ const canUse = () => fsevents && FSEventsWatchers.size < 128; // determines subdirectory traversal levels from root to path const calcDepth = (path, root) => { let i = 0; - while (!path.indexOf(root) && (path = path__default['default'].dirname(path)) !== root) i++; + while (!path.indexOf(root) && (path = sysPath$1.dirname(path)) !== root) i++; return i; }; @@ -23618,7 +23938,7 @@ const sameTypes = (info, stats) => ( /** * @mixin */ -class FsEventsHandler { +class FsEventsHandler$1 { /** * @param {import('../index').FSWatcher} fsw @@ -23647,18 +23967,18 @@ addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) { async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) { try { - const stats = await stat$4(path); + const stats = await stat$1(path); if (this.fsw.closed) return; if (sameTypes(info, stats)) { this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); } else { - this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + this.handleEvent(EV_UNLINK$1, path, fullPath, realPath, parent, watchedDir, item, info, opts); } } catch (error) { if (error.code === 'EACCES') { this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); } else { - this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + this.handleEvent(EV_UNLINK$1, path, fullPath, realPath, parent, watchedDir, item, info, opts); } } } @@ -23666,7 +23986,7 @@ async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) { if (this.fsw.closed || this.checkIgnored(path)) return; - if (event === EV_UNLINK) { + if (event === EV_UNLINK$1) { const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY; // suppress unlink events on never before seen files if (isDirectory || watchedDir.has(item)) { @@ -23714,30 +24034,30 @@ _watchWithFsEvents(watchPath, realPath, transform, globFilter) { opts.depth !== undefined && calcDepth(fullPath, realPath) > opts.depth ) return; - const path = transform(path__default['default'].join( - watchPath, path__default['default'].relative(watchPath, fullPath) + const path = transform(sysPath$1.join( + watchPath, sysPath$1.relative(watchPath, fullPath) )); if (globFilter && !globFilter(path)) return; // ensure directories are tracked - const parent = path__default['default'].dirname(path); - const item = path__default['default'].basename(path); + const parent = sysPath$1.dirname(path); + const item = sysPath$1.basename(path); const watchedDir = this.fsw._getWatchedDir( info.type === FSEVENT_TYPE_DIRECTORY ? path : parent ); // correct for wrong events emitted if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) { - if (typeof opts.ignored === FUNCTION_TYPE) { + if (typeof opts.ignored === FUNCTION_TYPE$1) { let stats; try { - stats = await stat$4(path); + stats = await stat$1(path); } catch (error) {} if (this.fsw.closed) return; if (this.checkIgnored(path, stats)) return; if (sameTypes(info, stats)) { this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); } else { - this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + this.handleEvent(EV_UNLINK$1, path, fullPath, realPath, parent, watchedDir, item, info, opts); } } else { this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); @@ -23781,7 +24101,7 @@ async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { this.fsw._incrReadyCount(); try { - const linkTarget = await realpath$3(linkPath); + const linkTarget = await realpath(linkPath); if (this.fsw.closed) return; if (this.fsw._isIgnored(linkTarget)) { return this.fsw._emitReady(); @@ -23796,7 +24116,7 @@ async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { if (linkTarget && linkTarget !== DOT_SLASH) { aliasedPath = path.replace(linkTarget, linkPath); } else if (path !== DOT_SLASH) { - aliasedPath = path__default['default'].join(linkPath, path); + aliasedPath = sysPath$1.join(linkPath, path); } return transform(aliasedPath); }, false, curDepth); @@ -23815,8 +24135,8 @@ async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { emitAdd(newPath, stats, processPath, opts, forceAdd) { const pp = processPath(newPath); const isDir = stats.isDirectory(); - const dirObj = this.fsw._getWatchedDir(path__default['default'].dirname(pp)); - const base = path__default['default'].basename(pp); + const dirObj = this.fsw._getWatchedDir(sysPath$1.dirname(pp)); + const base = sysPath$1.basename(pp); // ensure empty dirs get tracked if (isDir) this.fsw._getWatchedDir(pp); @@ -23832,7 +24152,7 @@ initWatch(realPath, path, wh, processPath) { if (this.fsw.closed) return; const closer = this._watchWithFsEvents( wh.watchPath, - path__default['default'].resolve(realPath || wh.watchPath), + sysPath$1.resolve(realPath || wh.watchPath), processPath, wh.globFilter ); @@ -23852,13 +24172,13 @@ async _addToFsEvents(path, transform, forceAdd, priorDepth) { return; } const opts = this.fsw.options; - const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN; + const processPath = typeof transform === FUNCTION_TYPE$1 ? transform : IDENTITY_FN; const wh = this.fsw._getWatchHelpers(path); // evaluate what is at the path we're being asked to watch try { - const stats = await statMethods$1[wh.statMethod](wh.watchPath); + const stats = await statMethods[wh.statMethod](wh.watchPath); if (this.fsw.closed) return; if (this.fsw._isIgnored(wh.watchPath, stats)) { throw null; @@ -23875,21 +24195,21 @@ async _addToFsEvents(path, transform, forceAdd, priorDepth) { fileFilter: entry => wh.filterPath(entry), directoryFilter: entry => wh.filterDir(entry), ...Depth(opts.depth - (priorDepth || 0)) - }).on(STR_DATA$1, (entry) => { + }).on(STR_DATA, (entry) => { // need to check filterPath on dirs b/c filterDir is less restrictive if (this.fsw.closed) { return; } if (entry.stats.isDirectory() && !wh.filterPath(entry)) return; - const joinedPath = path__default['default'].join(wh.watchPath, entry.path); + const joinedPath = sysPath$1.join(wh.watchPath, entry.path); const {fullPath} = entry; if (wh.followSymlinks && entry.stats.isSymbolicLink()) { // preserve the current depth here since it can't be derived from // real paths past the symlink const curDepth = opts.depth === undefined ? - undefined : calcDepth(joinedPath, path__default['default'].resolve(wh.watchPath)) + 1; + undefined : calcDepth(joinedPath, sysPath$1.resolve(wh.watchPath)) + 1; this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth); } else { @@ -23911,13 +24231,13 @@ async _addToFsEvents(path, transform, forceAdd, priorDepth) { } if (opts.persistent && forceAdd !== true) { - if (typeof transform === FUNCTION_TYPE) { + if (typeof transform === FUNCTION_TYPE$1) { // realpath has already been resolved this.initWatch(undefined, path, wh, processPath); } else { let realPath; try { - realPath = await realpath$3(wh.watchPath); + realPath = await realpath(wh.watchPath); } catch (e) {} this.initWatch(realPath, path, wh, processPath); } @@ -23926,36 +24246,35 @@ async _addToFsEvents(path, transform, forceAdd, priorDepth) { } -var fseventsHandler = FsEventsHandler; -var canUse_1 = canUse; -fseventsHandler.canUse = canUse_1; - -const { EventEmitter } = events__default['default']; - - -const { promisify: promisify$3 } = util__default['default']; - -const anymatch$1 = anymatch_1.default; - - - - - +fseventsHandler.exports = FsEventsHandler$1; +fseventsHandler.exports.canUse = canUse; +const { EventEmitter } = require$$0__default$4['default']; +const fs = require$$0__default$3['default']; +const sysPath = require$$0__default$2['default']; +const { promisify } = require$$0__default['default']; +const readdirp = readdirp_1; +const anymatch = anymatch$2.exports.default; +const globParent = globParent$1; +const isGlob = isGlob$2; +const braces = braces_1; +const normalizePath = normalizePath$2; +const NodeFsHandler = nodefsHandler; +const FsEventsHandler = fseventsHandler.exports; const { EV_ALL, EV_READY, - EV_ADD: EV_ADD$2, - EV_CHANGE: EV_CHANGE$2, - EV_UNLINK: EV_UNLINK$1, - EV_ADD_DIR: EV_ADD_DIR$2, + EV_ADD, + EV_CHANGE, + EV_UNLINK, + EV_ADD_DIR, EV_UNLINK_DIR, EV_RAW, - EV_ERROR: EV_ERROR$2, + EV_ERROR, STR_CLOSE, - STR_END: STR_END$2, + STR_END, BACK_SLASH_RE, DOUBLE_SLASH_RE, @@ -23963,26 +24282,27 @@ const { DOT_RE, REPLACER_RE, - SLASH: SLASH$1, + SLASH, SLASH_SLASH, - BRACE_START: BRACE_START$1, - BANG: BANG$2, + BRACE_START, + BANG, ONE_DOT, TWO_DOTS, - GLOBSTAR: GLOBSTAR$1, + GLOBSTAR, SLASH_GLOBSTAR, ANYMATCH_OPTS, STRING_TYPE, - FUNCTION_TYPE: FUNCTION_TYPE$1, - EMPTY_STR: EMPTY_STR$1, - EMPTY_FN: EMPTY_FN$2, + FUNCTION_TYPE, + EMPTY_STR, + EMPTY_FN, - isWindows: isWindows$2, - isMacos -} = constants$2; + isWindows, + isMacos, + isIBMi +} = constants$1; -const stat$5 = promisify$3(fs__default['default'].stat); -const readdir$2 = promisify$3(fs__default['default'].readdir); +const stat = promisify(fs.stat); +const readdir = promisify(fs.readdir); /** * @typedef {String} Path @@ -24004,11 +24324,11 @@ const readdir$2 = promisify$3(fs__default['default'].readdir); * @property {Function} filterDir */ -const arrify$1 = (value = []) => Array.isArray(value) ? value : [value]; -const flatten = (list, result = []) => { +const arrify = (value = []) => Array.isArray(value) ? value : [value]; +const flatten$1 = (list, result = []) => { list.forEach(item => { if (Array.isArray(item)) { - flatten(item, result); + flatten$1(item, result); } else { result.push(item); } @@ -24020,7 +24340,7 @@ const unifyPaths = (paths_) => { /** * @type {Array} */ - const paths = flatten(arrify$1(paths_)); + const paths = flatten$1(arrify(paths_)); if (!paths.every(p => typeof p === STRING_TYPE)) { throw new TypeError(`Non-string provided as watch path: ${paths}`); } @@ -24030,37 +24350,37 @@ const unifyPaths = (paths_) => { // If SLASH_SLASH occurs at the beginning of path, it is not replaced // because "//StoragePC/DrivePool/Movies" is a valid network path const toUnix = (string) => { - let str = string.replace(BACK_SLASH_RE, SLASH$1); + let str = string.replace(BACK_SLASH_RE, SLASH); let prepend = false; if (str.startsWith(SLASH_SLASH)) { prepend = true; } while (str.match(DOUBLE_SLASH_RE)) { - str = str.replace(DOUBLE_SLASH_RE, SLASH$1); + str = str.replace(DOUBLE_SLASH_RE, SLASH); } if (prepend) { - str = SLASH$1 + str; + str = SLASH + str; } return str; }; // Our version of upath.normalize // TODO: this is not equal to path-normalize module - investigate why -const normalizePathToUnix = (path) => toUnix(path__default['default'].normalize(toUnix(path))); +const normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path))); -const normalizeIgnored = (cwd = EMPTY_STR$1) => (path) => { +const normalizeIgnored = (cwd = EMPTY_STR) => (path) => { if (typeof path !== STRING_TYPE) return path; - return normalizePathToUnix(path__default['default'].isAbsolute(path) ? path : path__default['default'].join(cwd, path)); + return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path)); }; const getAbsolutePath = (path, cwd) => { - if (path__default['default'].isAbsolute(path)) { + if (sysPath.isAbsolute(path)) { return path; } - if (path.startsWith(BANG$2)) { - return BANG$2 + path__default['default'].join(cwd, path.slice(1)); + if (path.startsWith(BANG)) { + return BANG + sysPath.join(cwd, path.slice(1)); } - return path__default['default'].join(cwd, path); + return sysPath.join(cwd, path); }; const undef = (opts, key) => opts[key] === undefined; @@ -24096,10 +24416,10 @@ class DirEntry { const dir = this.path; try { - await readdir$2(dir); + await readdir(dir); } catch (err) { if (this._removeWatcher) { - this._removeWatcher(path__default['default'].dirname(dir), path__default['default'].basename(dir)); + this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir)); } } } @@ -24133,14 +24453,14 @@ const STAT_METHOD_L = 'lstat'; class WatchHelper { constructor(path, watchPath, follow, fsw) { this.fsw = fsw; - this.path = path = path.replace(REPLACER_RE, EMPTY_STR$1); + this.path = path = path.replace(REPLACER_RE, EMPTY_STR); this.watchPath = watchPath; - this.fullWatchPath = path__default['default'].resolve(watchPath); + this.fullWatchPath = sysPath.resolve(watchPath); this.hasGlob = watchPath !== path; /** @type {object|boolean} */ - if (path === EMPTY_STR$1) this.hasGlob = false; + if (path === EMPTY_STR) this.hasGlob = false; this.globSymlink = this.hasGlob && follow ? undefined : false; - this.globFilter = this.hasGlob ? anymatch$1(path, undefined, ANYMATCH_OPTS) : false; + this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false; this.dirParts = this.getDirParts(path); this.dirParts.forEach((parts) => { if (parts.length > 1) parts.pop(); @@ -24165,8 +24485,8 @@ class WatchHelper { } entryPath(entry) { - return path__default['default'].join(this.watchPath, - path__default['default'].relative(this.watchPath, this.checkGlobSymlink(entry)) + return sysPath.join(this.watchPath, + sysPath.relative(this.watchPath, this.checkGlobSymlink(entry)) ); } @@ -24174,7 +24494,7 @@ class WatchHelper { const {stats} = entry; if (stats && stats.isSymbolicLink()) return this.filterDir(entry); const resolvedPath = this.entryPath(entry); - const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE$1 ? + const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE ? this.globFilter(resolvedPath) : true; return matchesGlob && this.fsw._isntIgnored(resolvedPath, stats) && @@ -24184,9 +24504,9 @@ class WatchHelper { getDirParts(path) { if (!this.hasGlob) return []; const parts = []; - const expandedPath = path.includes(BRACE_START$1) ? braces_1.expand(path) : [path]; + const expandedPath = path.includes(BRACE_START) ? braces.expand(path) : [path]; expandedPath.forEach((path) => { - parts.push(path__default['default'].relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE)); + parts.push(sysPath.relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE)); }); return parts; } @@ -24197,8 +24517,8 @@ class WatchHelper { let globstar = false; this.unmatchedGlob = !this.dirParts.some((parts) => { return parts.every((part, i) => { - if (part === GLOBSTAR$1) globstar = true; - return globstar || !entryParts[0][i] || anymatch$1(part, entryParts[0][i], ANYMATCH_OPTS); + if (part === GLOBSTAR) globstar = true; + return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS); }); }); } @@ -24251,7 +24571,7 @@ constructor(_opts) { if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling; // If we can't use fsevents, ensure the options reflect it's disabled. - const canUseFsEvents = fseventsHandler.canUse(); + const canUseFsEvents = FsEventsHandler.canUse(); if (!canUseFsEvents) opts.useFsEvents = false; // Use polling on Mac if not using fsevents. @@ -24260,6 +24580,11 @@ constructor(_opts) { opts.usePolling = isMacos; } + // Always default to polling on IBM i because fs.watch() is not available on IBM i. + if(isIBMi) { + opts.usePolling = true; + } + // Global override (useful for end-developers that need to force polling for all // instances of chokidar, regardless of usage/dependency depth) const envPoll = process.env.CHOKIDAR_USEPOLLING; @@ -24293,13 +24618,13 @@ constructor(_opts) { if (!awf.pollInterval) awf.pollInterval = 100; this._pendingWrites = new Map(); } - if (opts.ignored) opts.ignored = arrify$1(opts.ignored); + if (opts.ignored) opts.ignored = arrify(opts.ignored); let readyCalls = 0; this._emitReady = () => { readyCalls++; if (readyCalls >= this._readyCount) { - this._emitReady = EMPTY_FN$2; + this._emitReady = EMPTY_FN; this._readyEmitted = true; // use process.nextTick to allow time for listener to be bound process.nextTick(() => this.emit(EV_READY)); @@ -24311,9 +24636,9 @@ constructor(_opts) { // Initialize with proper watcher. if (opts.useFsEvents) { - this._fsEventsHandler = new fseventsHandler(this); + this._fsEventsHandler = new FsEventsHandler(this); } else { - this._nodeFsHandler = new nodefsHandler(this); + this._nodeFsHandler = new NodeFsHandler(this); } // You’re frozen when your heart’s not open. @@ -24347,7 +24672,7 @@ add(paths_, _origAdd, _internal) { // set aside negated glob strings paths = paths.filter((path) => { - if (path.startsWith(BANG$2)) { + if (path.startsWith(BANG)) { this._ignoredPaths.add(path.slice(1)); return false; } @@ -24379,7 +24704,7 @@ add(paths_, _origAdd, _internal) { ).then(results => { if (this.closed) return; results.filter(item => item).forEach(item => { - this.add(path__default['default'].dirname(item), path__default['default'].basename(_origAdd || item)); + this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item)); }); }); } @@ -24399,9 +24724,9 @@ unwatch(paths_) { paths.forEach((path) => { // convert to absolute path unless relative path already matches - if (!path__default['default'].isAbsolute(path) && !this._closers.has(path)) { - if (cwd) path = path__default['default'].join(cwd, path); - path = path__default['default'].resolve(path); + if (!sysPath.isAbsolute(path) && !this._closers.has(path)) { + if (cwd) path = sysPath.join(cwd, path); + path = sysPath.resolve(path); } this._closePath(path); @@ -24454,7 +24779,7 @@ close() { getWatched() { const watchList = {}; this._watched.forEach((entry, dir) => { - const key = this.options.cwd ? path__default['default'].relative(this.options.cwd, dir) : dir; + const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir; watchList[key || ONE_DOT] = entry.getChildren().sort(); }); return watchList; @@ -24462,7 +24787,7 @@ getWatched() { emitWithAll(event, args) { this.emit(...args); - if (event !== EV_ERROR$2) this.emit(EV_ALL, ...args); + if (event !== EV_ERROR) this.emit(EV_ALL, ...args); } // Common helpers @@ -24482,8 +24807,8 @@ async _emit(event, path, val1, val2, val3) { if (this.closed) return; const opts = this.options; - if (isWindows$2) path = path__default['default'].normalize(path); - if (opts.cwd) path = path__default['default'].relative(opts.cwd, path); + if (isWindows) path = sysPath.normalize(path); + if (opts.cwd) path = sysPath.relative(opts.cwd, path); /** @type Array */ const args = [event, path]; if (val3 !== undefined) args.push(val1, val2, val3); @@ -24498,7 +24823,7 @@ async _emit(event, path, val1, val2, val3) { } if (opts.atomic) { - if (event === EV_UNLINK$1) { + if (event === EV_UNLINK) { this._pendingUnlinks.set(path, args); setTimeout(() => { this._pendingUnlinks.forEach((entry, path) => { @@ -24509,16 +24834,16 @@ async _emit(event, path, val1, val2, val3) { }, typeof opts.atomic === 'number' ? opts.atomic : 100); return this; } - if (event === EV_ADD$2 && this._pendingUnlinks.has(path)) { - event = args[0] = EV_CHANGE$2; + if (event === EV_ADD && this._pendingUnlinks.has(path)) { + event = args[0] = EV_CHANGE; this._pendingUnlinks.delete(path); } } - if (awf && (event === EV_ADD$2 || event === EV_CHANGE$2) && this._readyEmitted) { + if (awf && (event === EV_ADD || event === EV_CHANGE) && this._readyEmitted) { const awfEmit = (err, stats) => { if (err) { - event = args[0] = EV_ERROR$2; + event = args[0] = EV_ERROR; args[1] = err; this.emitWithAll(event, args); } else if (stats) { @@ -24536,18 +24861,18 @@ async _emit(event, path, val1, val2, val3) { return this; } - if (event === EV_CHANGE$2) { - const isThrottled = !this._throttle(EV_CHANGE$2, path, 50); + if (event === EV_CHANGE) { + const isThrottled = !this._throttle(EV_CHANGE, path, 50); if (isThrottled) return this; } if (opts.alwaysStat && val1 === undefined && - (event === EV_ADD$2 || event === EV_ADD_DIR$2 || event === EV_CHANGE$2) + (event === EV_ADD || event === EV_ADD_DIR || event === EV_CHANGE) ) { - const fullPath = opts.cwd ? path__default['default'].join(opts.cwd, path) : path; + const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path; let stats; try { - stats = await stat$5(fullPath); + stats = await stat(fullPath); } catch (err) {} // Suppress event when fs_stat fails, to avoid sending undefined 'stat' if (!stats || this.closed) return; @@ -24568,7 +24893,7 @@ _handleError(error) { if (error && code !== 'ENOENT' && code !== 'ENOTDIR' && (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES')) ) { - this.emit(EV_ERROR$2, error); + this.emit(EV_ERROR, error); } return error || this.closed; } @@ -24626,14 +24951,14 @@ _awaitWriteFinish(path, threshold, event, awfEmit) { let timeoutHandler; let fullPath = path; - if (this.options.cwd && !path__default['default'].isAbsolute(path)) { - fullPath = path__default['default'].join(this.options.cwd, path); + if (this.options.cwd && !sysPath.isAbsolute(path)) { + fullPath = sysPath.join(this.options.cwd, path); } const now = new Date(); const awaitWriteFinish = (prevStat) => { - fs__default['default'].stat(fullPath, (err, curStat) => { + fs.stat(fullPath, (err, curStat) => { if (err || !this._pendingWrites.has(path)) { if (err && err.code !== 'ENOENT') awfEmit(err); return; @@ -24693,11 +25018,11 @@ _isIgnored(path, stats) { const ign = this.options.ignored; const ignored = ign && ign.map(normalizeIgnored(cwd)); - const paths = arrify$1(ignored) + const paths = arrify(ignored) .filter((path) => typeof path === STRING_TYPE && !isGlob(path)) .map((path) => path + SLASH_GLOBSTAR); const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths); - this._userIgnored = anymatch$1(list, undefined, ANYMATCH_OPTS); + this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS); } return this._userIgnored([path, stats]); @@ -24730,7 +25055,7 @@ _getWatchHelpers(path, depth) { */ _getWatchedDir(directory) { if (!this._boundRemove) this._boundRemove = this._remove.bind(this); - const dir = path__default['default'].resolve(directory); + const dir = sysPath.resolve(directory); if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove)); return this._watched.get(dir); } @@ -24766,8 +25091,8 @@ _remove(directory, item, isDirectory) { // if what is being deleted is a directory, get that directory's paths // for recursive deleting and cleaning of watched object // if it is not a directory, nestedDirectoryChildren will be empty array - const path = path__default['default'].join(directory, item); - const fullPath = path__default['default'].resolve(path); + const path = sysPath.join(directory, item); + const fullPath = sysPath.resolve(path); isDirectory = isDirectory != null ? isDirectory : this._watched.has(path) || this._watched.has(fullPath); @@ -24805,17 +25130,17 @@ _remove(directory, item, isDirectory) { // If we wait for this file to be fully written, cancel the wait. let relPath = path; - if (this.options.cwd) relPath = path__default['default'].relative(this.options.cwd, path); + if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path); if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) { const event = this._pendingWrites.get(relPath).cancelWait(); - if (event === EV_ADD$2) return; + if (event === EV_ADD) return; } // The Entry will either be a directory that just got removed // or a bogus entry to a file, in either case we have to remove it this._watched.delete(path); this._watched.delete(fullPath); - const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK$1; + const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK; if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path); // Avoid conflicts if we later create another file with the same name @@ -24830,8 +25155,8 @@ _remove(directory, item, isDirectory) { */ _closePath(path) { this._closeFile(path); - const dir = path__default['default'].dirname(path); - this._getWatchedDir(dir).remove(path__default['default'].basename(path)); + const dir = sysPath.dirname(path); + this._getWatchedDir(dir).remove(sysPath.basename(path)); } /** @@ -24863,12 +25188,12 @@ _addPathCloser(path, closer) { _readdirp(root, opts) { if (this.closed) return; const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts}; - let stream = readdirp_1(root, options); + let stream = readdirp(root, options); this._streams.add(stream); stream.once(STR_CLOSE, () => { stream = undefined; }); - stream.once(STR_END$2, () => { + stream.once(STR_END, () => { if (stream) { this._streams.delete(stream); stream = undefined; @@ -24880,7 +25205,7 @@ _readdirp(root, opts) { } // Export FSWatcher class -var FSWatcher_1 = FSWatcher; +chokidar$1.FSWatcher = FSWatcher; /** * Instantiates watcher with paths to be tracked. @@ -24894,12 +25219,7 @@ const watch = (paths, options) => { return watcher; }; -var watch_1 = watch; - -var chokidar = { - FSWatcher: FSWatcher_1, - watch: watch_1 -}; +chokidar$1.watch = watch; var textTable = function (rows_, opts) { if (!opts) opts = {}; @@ -24917,8 +25237,8 @@ var textTable = function (rows_, opts) { return acc; }, []); - var rows = map$1(rows_, function (row) { - return map$1(row, function (c_, ix) { + var rows = map$6(rows_, function (row) { + return map$6(row, function (c_, ix) { var c = String(c_); if (align[ix] === '.') { var index = dotindex(c); @@ -24939,8 +25259,8 @@ var textTable = function (rows_, opts) { return acc; }, []); - return map$1(rows, function (row) { - return map$1(row, function (c, ix) { + return map$6(rows, function (row) { + return map$6(row, function (c, ix) { var n = (sizes[ix] - stringLength(c)) || 0; var s = Array(Math.max(n + 1, 1)).join(' '); if (align[ix] === 'r' || align[ix] === '.') { @@ -24979,7 +25299,7 @@ function forEach (xs, f) { } } -function map$1 (xs, f) { +function map$6 (xs, f) { if (xs.map) return xs.map(f); var res = []; for (var i = 0; i < xs.length; i++) { @@ -24988,6 +25308,8 @@ function map$1 (xs, f) { return res; } +var camelcase$1 = {exports: {}}; + const preserveCamelCase = string => { let isLastCharLower = false; let isLastCharUpper = false; @@ -25059,12 +25381,11 @@ const camelCase = (input, options) => { return postProcess(input); }; -var camelcase = camelCase; +camelcase$1.exports = camelCase; // TODO: Remove this for the next major release -var _default$7 = camelCase; -camelcase.default = _default$7; +camelcase$1.exports.default = camelCase; -var minimist = function (args, opts) { +var minimist$1 = function (args, opts) { if (!opts) opts = {}; var flags = { bools : {}, strings : {}, unknownFn: null }; @@ -25122,7 +25443,7 @@ var minimist = function (args, opts) { if (flags.unknownFn(arg) === false) return; } - var value = !flags.strings[key] && isNumber$2(val) + var value = !flags.strings[key] && isNumber(val) ? Number(val) : val ; setKey(argv, key.split('.'), value); @@ -25258,7 +25579,7 @@ var minimist = function (args, opts) { else { if (!flags.unknownFn || flags.unknownFn(arg) !== false) { argv._.push( - flags.strings['_'] || !isNumber$2(arg) ? arg : Number(arg) + flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) ); } if (opts.stopEarly) { @@ -25303,7 +25624,7 @@ function hasKey (obj, keys) { return key in o; } -function isNumber$2 (x) { +function isNumber (x) { if (typeof x === 'number') return true; if (/^0x[0-9a-f]+$/i.test(x)) return true; return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); @@ -25320,7 +25641,7 @@ var unicode = { ID_Continue: ID_Continue }; -var util$1 = { +var util = { isSpaceSeparator (c) { return typeof c === 'string' && unicode.Space_Separator.test(c) }, @@ -25354,7 +25675,7 @@ var util$1 = { }, }; -let source$1; +let source; let parseState; let stack; let pos; @@ -25362,10 +25683,10 @@ let line; let column; let token; let key; -let root; +let root$1; -var parse$6 = function parse (text, reviver) { - source$1 = String(text); +var parse$4 = function parse (text, reviver) { + source = String(text); parseState = 'start'; stack = []; pos = 0; @@ -25373,7 +25694,7 @@ var parse$6 = function parse (text, reviver) { column = 0; token = undefined; key = undefined; - root = undefined; + root$1 = undefined; do { token = lex(); @@ -25387,10 +25708,10 @@ var parse$6 = function parse (text, reviver) { } while (token.type !== 'eof') if (typeof reviver === 'function') { - return internalize({'': root}, '', reviver) + return internalize({'': root$1}, '', reviver) } - return root + return root$1 }; function internalize (holder, name, reviver) { @@ -25410,14 +25731,14 @@ function internalize (holder, name, reviver) { } let lexState; -let buffer; +let buffer$2; let doubleQuote; let sign; let c; function lex () { lexState = 'default'; - buffer = ''; + buffer$2 = ''; doubleQuote = false; sign = 1; @@ -25437,12 +25758,12 @@ function lex () { } function peek () { - if (source$1[pos]) { - return String.fromCodePoint(source$1.codePointAt(pos)) + if (source[pos]) { + return String.fromCodePoint(source.codePointAt(pos)) } } -function read$5 () { +function read () { const c = peek(); if (c === '\n') { @@ -25474,21 +25795,21 @@ const lexStates = { case '\r': case '\u2028': case '\u2029': - read$5(); + read(); return case '/': - read$5(); + read(); lexState = 'comment'; return case undefined: - read$5(); + read(); return newToken('eof') } - if (util$1.isSpaceSeparator(c)) { - read$5(); + if (util.isSpaceSeparator(c)) { + read(); return } @@ -25503,49 +25824,49 @@ const lexStates = { comment () { switch (c) { case '*': - read$5(); + read(); lexState = 'multiLineComment'; return case '/': - read$5(); + read(); lexState = 'singleLineComment'; return } - throw invalidChar(read$5()) + throw invalidChar(read()) }, multiLineComment () { switch (c) { case '*': - read$5(); + read(); lexState = 'multiLineCommentAsterisk'; return case undefined: - throw invalidChar(read$5()) + throw invalidChar(read()) } - read$5(); + read(); }, multiLineCommentAsterisk () { switch (c) { case '*': - read$5(); + read(); return case '/': - read$5(); + read(); lexState = 'default'; return case undefined: - throw invalidChar(read$5()) + throw invalidChar(read()) } - read$5(); + read(); lexState = 'multiLineComment'; }, @@ -25555,42 +25876,42 @@ const lexStates = { case '\r': case '\u2028': case '\u2029': - read$5(); + read(); lexState = 'default'; return case undefined: - read$5(); + read(); return newToken('eof') } - read$5(); + read(); }, value () { switch (c) { case '{': case '[': - return newToken('punctuator', read$5()) + return newToken('punctuator', read()) case 'n': - read$5(); + read(); literal('ull'); return newToken('null', null) case 't': - read$5(); + read(); literal('rue'); return newToken('boolean', true) case 'f': - read$5(); + read(); literal('alse'); return newToken('boolean', false) case '-': case '+': - if (read$5() === '-') { + if (read() === '-') { sign = -1; } @@ -25598,12 +25919,12 @@ const lexStates = { return case '.': - buffer = read$5(); + buffer$2 = read(); lexState = 'decimalPointLeading'; return case '0': - buffer = read$5(); + buffer$2 = read(); lexState = 'zero'; return @@ -25616,37 +25937,37 @@ const lexStates = { case '7': case '8': case '9': - buffer = read$5(); + buffer$2 = read(); lexState = 'decimalInteger'; return case 'I': - read$5(); + read(); literal('nfinity'); return newToken('numeric', Infinity) case 'N': - read$5(); + read(); literal('aN'); return newToken('numeric', NaN) case '"': case "'": - doubleQuote = (read$5() === '"'); - buffer = ''; + doubleQuote = (read() === '"'); + buffer$2 = ''; lexState = 'string'; return } - throw invalidChar(read$5()) + throw invalidChar(read()) }, identifierNameStartEscape () { if (c !== 'u') { - throw invalidChar(read$5()) + throw invalidChar(read()) } - read$5(); + read(); const u = unicodeEscape(); switch (u) { case '$': @@ -25654,14 +25975,14 @@ const lexStates = { break default: - if (!util$1.isIdStartChar(u)) { + if (!util.isIdStartChar(u)) { throw invalidIdentifier() } break } - buffer += u; + buffer$2 += u; lexState = 'identifierName'; }, @@ -25671,29 +25992,29 @@ const lexStates = { case '_': case '\u200C': case '\u200D': - buffer += read$5(); + buffer$2 += read(); return case '\\': - read$5(); + read(); lexState = 'identifierNameEscape'; return } - if (util$1.isIdContinueChar(c)) { - buffer += read$5(); + if (util.isIdContinueChar(c)) { + buffer$2 += read(); return } - return newToken('identifier', buffer) + return newToken('identifier', buffer$2) }, identifierNameEscape () { if (c !== 'u') { - throw invalidChar(read$5()) + throw invalidChar(read()) } - read$5(); + read(); const u = unicodeEscape(); switch (u) { case '$': @@ -25703,26 +26024,26 @@ const lexStates = { break default: - if (!util$1.isIdContinueChar(u)) { + if (!util.isIdContinueChar(u)) { throw invalidIdentifier() } break } - buffer += u; + buffer$2 += u; lexState = 'identifierName'; }, sign () { switch (c) { case '.': - buffer = read$5(); + buffer$2 = read(); lexState = 'decimalPointLeading'; return case '0': - buffer = read$5(); + buffer$2 = read(); lexState = 'zero'; return @@ -25735,40 +26056,40 @@ const lexStates = { case '7': case '8': case '9': - buffer = read$5(); + buffer$2 = read(); lexState = 'decimalInteger'; return case 'I': - read$5(); + read(); literal('nfinity'); return newToken('numeric', sign * Infinity) case 'N': - read$5(); + read(); literal('aN'); return newToken('numeric', NaN) } - throw invalidChar(read$5()) + throw invalidChar(read()) }, zero () { switch (c) { case '.': - buffer += read$5(); + buffer$2 += read(); lexState = 'decimalPoint'; return case 'e': case 'E': - buffer += read$5(); + buffer$2 += read(); lexState = 'decimalExponent'; return case 'x': case 'X': - buffer += read$5(); + buffer$2 += read(); lexState = 'hexadecimal'; return } @@ -25779,154 +26100,154 @@ const lexStates = { decimalInteger () { switch (c) { case '.': - buffer += read$5(); + buffer$2 += read(); lexState = 'decimalPoint'; return case 'e': case 'E': - buffer += read$5(); + buffer$2 += read(); lexState = 'decimalExponent'; return } - if (util$1.isDigit(c)) { - buffer += read$5(); + if (util.isDigit(c)) { + buffer$2 += read(); return } - return newToken('numeric', sign * Number(buffer)) + return newToken('numeric', sign * Number(buffer$2)) }, decimalPointLeading () { - if (util$1.isDigit(c)) { - buffer += read$5(); + if (util.isDigit(c)) { + buffer$2 += read(); lexState = 'decimalFraction'; return } - throw invalidChar(read$5()) + throw invalidChar(read()) }, decimalPoint () { switch (c) { case 'e': case 'E': - buffer += read$5(); + buffer$2 += read(); lexState = 'decimalExponent'; return } - if (util$1.isDigit(c)) { - buffer += read$5(); + if (util.isDigit(c)) { + buffer$2 += read(); lexState = 'decimalFraction'; return } - return newToken('numeric', sign * Number(buffer)) + return newToken('numeric', sign * Number(buffer$2)) }, decimalFraction () { switch (c) { case 'e': case 'E': - buffer += read$5(); + buffer$2 += read(); lexState = 'decimalExponent'; return } - if (util$1.isDigit(c)) { - buffer += read$5(); + if (util.isDigit(c)) { + buffer$2 += read(); return } - return newToken('numeric', sign * Number(buffer)) + return newToken('numeric', sign * Number(buffer$2)) }, decimalExponent () { switch (c) { case '+': case '-': - buffer += read$5(); + buffer$2 += read(); lexState = 'decimalExponentSign'; return } - if (util$1.isDigit(c)) { - buffer += read$5(); + if (util.isDigit(c)) { + buffer$2 += read(); lexState = 'decimalExponentInteger'; return } - throw invalidChar(read$5()) + throw invalidChar(read()) }, decimalExponentSign () { - if (util$1.isDigit(c)) { - buffer += read$5(); + if (util.isDigit(c)) { + buffer$2 += read(); lexState = 'decimalExponentInteger'; return } - throw invalidChar(read$5()) + throw invalidChar(read()) }, decimalExponentInteger () { - if (util$1.isDigit(c)) { - buffer += read$5(); + if (util.isDigit(c)) { + buffer$2 += read(); return } - return newToken('numeric', sign * Number(buffer)) + return newToken('numeric', sign * Number(buffer$2)) }, hexadecimal () { - if (util$1.isHexDigit(c)) { - buffer += read$5(); + if (util.isHexDigit(c)) { + buffer$2 += read(); lexState = 'hexadecimalInteger'; return } - throw invalidChar(read$5()) + throw invalidChar(read()) }, hexadecimalInteger () { - if (util$1.isHexDigit(c)) { - buffer += read$5(); + if (util.isHexDigit(c)) { + buffer$2 += read(); return } - return newToken('numeric', sign * Number(buffer)) + return newToken('numeric', sign * Number(buffer$2)) }, string () { switch (c) { case '\\': - read$5(); - buffer += escape(); + read(); + buffer$2 += escape(); return case '"': if (doubleQuote) { - read$5(); - return newToken('string', buffer) + read(); + return newToken('string', buffer$2) } - buffer += read$5(); + buffer$2 += read(); return case "'": if (!doubleQuote) { - read$5(); - return newToken('string', buffer) + read(); + return newToken('string', buffer$2) } - buffer += read$5(); + buffer$2 += read(); return case '\n': case '\r': - throw invalidChar(read$5()) + throw invalidChar(read()) case '\u2028': case '\u2029': @@ -25934,17 +26255,17 @@ const lexStates = { break case undefined: - throw invalidChar(read$5()) + throw invalidChar(read()) } - buffer += read$5(); + buffer$2 += read(); }, start () { switch (c) { case '{': case '[': - return newToken('punctuator', read$5()) + return newToken('punctuator', read()) // This code is unreachable since the default lexState handles eof. // case undefined: @@ -25958,40 +26279,40 @@ const lexStates = { switch (c) { case '$': case '_': - buffer = read$5(); + buffer$2 = read(); lexState = 'identifierName'; return case '\\': - read$5(); + read(); lexState = 'identifierNameStartEscape'; return case '}': - return newToken('punctuator', read$5()) + return newToken('punctuator', read()) case '"': case "'": - doubleQuote = (read$5() === '"'); + doubleQuote = (read() === '"'); lexState = 'string'; return } - if (util$1.isIdStartChar(c)) { - buffer += read$5(); + if (util.isIdStartChar(c)) { + buffer$2 += read(); lexState = 'identifierName'; return } - throw invalidChar(read$5()) + throw invalidChar(read()) }, afterPropertyName () { if (c === ':') { - return newToken('punctuator', read$5()) + return newToken('punctuator', read()) } - throw invalidChar(read$5()) + throw invalidChar(read()) }, beforePropertyValue () { @@ -26002,15 +26323,15 @@ const lexStates = { switch (c) { case ',': case '}': - return newToken('punctuator', read$5()) + return newToken('punctuator', read()) } - throw invalidChar(read$5()) + throw invalidChar(read()) }, beforeArrayValue () { if (c === ']') { - return newToken('punctuator', read$5()) + return newToken('punctuator', read()) } lexState = 'value'; @@ -26020,10 +26341,10 @@ const lexStates = { switch (c) { case ',': case ']': - return newToken('punctuator', read$5()) + return newToken('punctuator', read()) } - throw invalidChar(read$5()) + throw invalidChar(read()) }, end () { @@ -26033,7 +26354,7 @@ const lexStates = { // return newToken('eof') // } - throw invalidChar(read$5()) + throw invalidChar(read()) }, }; @@ -26051,10 +26372,10 @@ function literal (s) { const p = peek(); if (p !== c) { - throw invalidChar(read$5()) + throw invalidChar(read()) } - read$5(); + read(); } } @@ -26062,55 +26383,55 @@ function escape () { const c = peek(); switch (c) { case 'b': - read$5(); + read(); return '\b' case 'f': - read$5(); + read(); return '\f' case 'n': - read$5(); + read(); return '\n' case 'r': - read$5(); + read(); return '\r' case 't': - read$5(); + read(); return '\t' case 'v': - read$5(); + read(); return '\v' case '0': - read$5(); - if (util$1.isDigit(peek())) { - throw invalidChar(read$5()) + read(); + if (util.isDigit(peek())) { + throw invalidChar(read()) } return '\0' case 'x': - read$5(); + read(); return hexEscape() case 'u': - read$5(); + read(); return unicodeEscape() case '\n': case '\u2028': case '\u2029': - read$5(); + read(); return '' case '\r': - read$5(); + read(); if (peek() === '\n') { - read$5(); + read(); } return '' @@ -26124,31 +26445,31 @@ function escape () { case '7': case '8': case '9': - throw invalidChar(read$5()) + throw invalidChar(read()) case undefined: - throw invalidChar(read$5()) + throw invalidChar(read()) } - return read$5() + return read() } function hexEscape () { let buffer = ''; let c = peek(); - if (!util$1.isHexDigit(c)) { - throw invalidChar(read$5()) + if (!util.isHexDigit(c)) { + throw invalidChar(read()) } - buffer += read$5(); + buffer += read(); c = peek(); - if (!util$1.isHexDigit(c)) { - throw invalidChar(read$5()) + if (!util.isHexDigit(c)) { + throw invalidChar(read()) } - buffer += read$5(); + buffer += read(); return String.fromCodePoint(parseInt(buffer, 16)) } @@ -26159,11 +26480,11 @@ function unicodeEscape () { while (count-- > 0) { const c = peek(); - if (!util$1.isHexDigit(c)) { - throw invalidChar(read$5()) + if (!util.isHexDigit(c)) { + throw invalidChar(read()) } - buffer += read$5(); + buffer += read(); } return String.fromCodePoint(parseInt(buffer, 16)) @@ -26175,7 +26496,7 @@ const parseStates = { throw invalidEOF() } - push$1(); + push(); }, beforePropertyName () { @@ -26221,7 +26542,7 @@ const parseStates = { throw invalidEOF() } - push$1(); + push(); }, beforeArrayValue () { @@ -26234,7 +26555,7 @@ const parseStates = { return } - push$1(); + push(); }, afterPropertyValue () { @@ -26291,7 +26612,7 @@ const parseStates = { }, }; -function push$1 () { +function push () { let value; switch (token.type) { @@ -26320,8 +26641,8 @@ function push$1 () { // throw invalidToken() } - if (root === undefined) { - root = value; + if (root$1 === undefined) { + root$1 = value; } else { const parent = stack[stack.length - 1]; if (Array.isArray(parent)) { @@ -26376,14 +26697,14 @@ function pop () { function invalidChar (c) { if (c === undefined) { - return syntaxError$1(`JSON5: invalid end of input at ${line}:${column}`) + return syntaxError(`JSON5: invalid end of input at ${line}:${column}`) } - return syntaxError$1(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`) + return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`) } function invalidEOF () { - return syntaxError$1(`JSON5: invalid end of input at ${line}:${column}`) + return syntaxError(`JSON5: invalid end of input at ${line}:${column}`) } // This code is unreachable. @@ -26398,7 +26719,7 @@ function invalidEOF () { function invalidIdentifier () { column -= 5; - return syntaxError$1(`JSON5: invalid identifier character at ${line}:${column}`) + return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`) } function separatorChar (c) { @@ -26433,7 +26754,7 @@ function formatChar (c) { return c } -function syntaxError$1 (message) { +function syntaxError (message) { const err = new SyntaxError(message); err.lineNumber = line; err.columnNumber = column; @@ -26574,7 +26895,7 @@ var stringify$5 = function stringify (value, replacer, space) { continue case '\0': - if (util$1.isDigit(value[i + 1])) { + if (util.isDigit(value[i + 1])) { product += '\\x00'; continue } @@ -26651,12 +26972,12 @@ var stringify$5 = function stringify (value, replacer, space) { } const firstChar = String.fromCodePoint(key.codePointAt(0)); - if (!util$1.isIdStartChar(firstChar)) { + if (!util.isIdStartChar(firstChar)) { return quoteString(key) } for (let i = firstChar.length; i < key.length; i++) { - if (!util$1.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) { + if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) { return quoteString(key) } } @@ -26701,18 +27022,20 @@ var stringify$5 = function stringify (value, replacer, space) { }; const JSON5 = { - parse: parse$6, + parse: parse$4, stringify: stringify$5, }; -var lib$6 = JSON5; +var lib$3 = JSON5; var dist$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': lib$6 + __proto__: null, + 'default': lib$3 }); -var schema$1 = [ +var require$$3$1 = /*@__PURE__*/getAugmentedNamespace(dist$1); + +var require$$5$1 = [ { long: "help", description: "output usage information", @@ -26874,9 +27197,14 @@ var schema$1 = [ } ]; -var json5 = /*@__PURE__*/getAugmentedNamespace(dist$1); +var table = textTable; +var camelcase = camelcase$1.exports; +var minimist = minimist$1; +var json5 = require$$3$1; +var fault = fault_1; +var schema$1 = require$$5$1; -var options_1 = options; +var options_1 = options$1; // Schema for `minimist`. var minischema = { @@ -26890,7 +27218,7 @@ var minischema = { schema$1.forEach(addEach); // Parse CLI options. -function options(flags, configuration) { +function options$1(flags, configuration) { var extension = configuration.extensions[0]; var name = configuration.name; var config = toCamelCase(minimist(flags, minischema)); @@ -26900,12 +27228,12 @@ function options(flags, configuration) { schema$1.forEach(function (option) { if (option.type === 'string' && config[option.long] === '') { - throw fault_1('Missing value:%s', inspect$1(option).join(' ')) + throw fault('Missing value:%s', inspect(option).join(' ')) } }); ext = commaSeparated(config.ext); - report = reporter$1(config.report); + report = reporter(config.report); help = [ inspectAll(schema$1), @@ -26951,7 +27279,7 @@ function options(flags, configuration) { silentlyIgnore: config.silentlyIgnore, detectIgnore: config.ignore, pluginPrefix: configuration.pluginPrefix, - plugins: plugins(config.use), + plugins: plugins$1(config.use), reporter: report[0], reporterOptions: report[1], color: config.color, @@ -26977,14 +27305,14 @@ function addEach(option) { // Parse `extensions`. function commaSeparated(value) { - return flatten$1(normalize$1(value).map(splitList)) + return flatten(normalize(value).map(splitList)) } // Parse `plugins`. -function plugins(value) { +function plugins$1(value) { var result = {}; - normalize$1(value) + normalize(value) .map(splitOptions) .forEach(function (value) { result[value[0]] = value[1] ? parseConfig(value[1], {}) : null; @@ -26994,8 +27322,8 @@ function plugins(value) { } // Parse `reporter`: only one is accepted. -function reporter$1(value) { - var all = normalize$1(value) +function reporter(value) { + var all = normalize(value) .map(splitOptions) .map(function (value) { return [value[0], value[1] ? parseConfig(value[1], {}) : null] @@ -27008,7 +27336,7 @@ function reporter$1(value) { function settings(value) { var cache = {}; - normalize$1(value).forEach(function (value) { + normalize(value).forEach(function (value) { parseConfig(value, cache); }); @@ -27026,7 +27354,7 @@ function parseConfig(flags, cache) { // Fix position message = error.message.replace(/at(?= position)/, 'around'); - throw fault_1('Cannot parse `%s` as JSON: %s', flags, message) + throw fault('Cannot parse `%s` as JSON: %s', flags, message) } for (flag in flags) { @@ -27045,7 +27373,7 @@ function handleUnknownArgument(flag) { // Long options, always unknown. if (flag.charAt(1) === '-') { - throw fault_1('Unknown option `%s`, expected:\n%s', flag, inspectAll(schema$1)) + throw fault('Unknown option `%s`, expected:\n%s', flag, inspectAll(schema$1)) } // Short options, can be grouped. @@ -27064,7 +27392,7 @@ function handleUnknownArgument(flag) { } } - throw fault_1( + throw fault( 'Unknown short option `-%s`, expected:\n%s', key, inspectAll(schema$1.filter(short)) @@ -27078,11 +27406,11 @@ function handleUnknownArgument(flag) { // Inspect all `options`. function inspectAll(options) { - return textTable(options.map(inspect$1)) + return table(options.map(inspect)) } // Inspect one `option`. -function inspect$1(option) { +function inspect(option) { var description = option.description; var long = option.long; @@ -27100,7 +27428,7 @@ function inspect$1(option) { } // Normalize `value`. -function normalize$1(value) { +function normalize(value) { if (!value) { return [] } @@ -27109,11 +27437,11 @@ function normalize$1(value) { return [value] } - return flatten$1(value.map(normalize$1)) + return flatten(value.map(normalize)) } // Flatten `values`. -function flatten$1(values) { +function flatten(values) { return [].concat.apply([], values) } @@ -27149,12 +27477,18 @@ function parseJSON(value) { return json5.parse('{' + value + '}') } -var lib$7 = start; +var stream = require$$0__default$5['default']; +var engine = lib$4; +var chalk = source$1; +var chokidar = chokidar$1; +var options = options_1; + +var lib$2 = start$3; -var noop = Function.prototype; +var noop$2 = Function.prototype; // Fake TTY stream. -var ttyStream = new require$$0__default['default'].Readable(); +var ttyStream = new stream.Readable(); ttyStream.isTTY = true; // Exit, lazily, with the correct exit status code. @@ -27166,13 +27500,13 @@ process.on('exit', onexit); process.on('uncaughtException', fail$1); // Start the CLI. -function start(cliConfig) { +function start$3(cliConfig) { var config; var output; var watcher; try { - config = options_1(process.argv.slice(2), cliConfig); + config = options(process.argv.slice(2), cliConfig); } catch (error) { return fail$1(error, true) } @@ -27189,14 +27523,14 @@ function start(cliConfig) { config.helpMessage, '' ].join('\n'), - noop + noop$2 ); return } if (config.version) { - process.stdout.write(cliConfig.version + '\n', noop); + process.stdout.write(cliConfig.version + '\n', noop$2); return } @@ -27212,8 +27546,8 @@ function start(cliConfig) { config.out = false; process.stderr.write( - source.bold('Watching...') + ' (press CTRL+C to exit)\n', - noop + chalk.bold('Watching...') + ' (press CTRL+C to exit)\n', + noop$2 ); // Prevent infinite loop if set to regeneration. @@ -27221,14 +27555,14 @@ function start(cliConfig) { config.output = false; process.stderr.write( - source.yellow('Note') + ': Ignoring `--output` until exit.\n', - noop + chalk.yellow('Note') + ': Ignoring `--output` until exit.\n', + noop$2 ); } } // Initial run. - lib$5(config, done); + engine(config, done); // Handle complete run. function done(err, code, context) { @@ -27264,12 +27598,12 @@ function start(cliConfig) { function onchange(filePath) { config.files = [filePath]; - lib$5(config, done); + engine(config, done); } function onsigint() { // Hide the `^C` in terminal. - process.stderr.write('\n', noop); + process.stderr.write('\n', noop$2); clean(); @@ -27277,7 +27611,7 @@ function start(cliConfig) { if (output === true) { config.output = output; config.watch = false; - lib$5(config, done); + engine(config, done); } } } @@ -27291,7 +27625,7 @@ function fail$1(err, pretty) { exitStatus = 1; - process.stderr.write(message.trim() + '\n', noop); + process.stderr.write(message.trim() + '\n', noop$2); } function onexit() { @@ -27300,9 +27634,9 @@ function onexit() { /* eslint-enable unicorn/no-process-exit */ } -var unifiedArgs = lib$7; +var unifiedArgs = lib$2; -var require$$0$2 = [ +var require$$0$3 = [ "md", "markdown", "mdown", @@ -27313,11 +27647,11 @@ var require$$0$2 = [ "ron" ]; -var markdownExtensions = require$$0$2; +var markdownExtensions = require$$0$3; -var bail_1 = bail; +var bail_1 = bail$1; -function bail(err) { +function bail$1(err) { if (err) { throw err } @@ -27328,7 +27662,7 @@ var toStr = Object.prototype.toString; var defineProperty = Object.defineProperty; var gOPD = Object.getOwnPropertyDescriptor; -var isArray$1 = function isArray(arr) { +var isArray = function isArray(arr) { if (typeof Array.isArray === 'function') { return Array.isArray(arr); } @@ -27415,10 +27749,10 @@ var extend$2 = function extend() { // Prevent never-ending loop if (target !== copy) { // Recurse if we're merging plain objects or arrays - if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray$1(copy)))) { + if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { if (copyIsArray) { copyIsArray = false; - clone = src && isArray$1(src) ? src : []; + clone = src && isArray(src) ? src : []; } else { clone = src && isPlainObject(src) ? src : {}; } @@ -27439,717 +27773,1229 @@ var extend$2 = function extend() { return target; }; -// Expose a frozen processor. -var unified_1 = unified().freeze(); - -var slice$3 = [].slice; -var own$2 = {}.hasOwnProperty; - -// Process pipeline. -var pipeline = trough_1() - .use(pipelineParse) - .use(pipelineRun) - .use(pipelineStringify); - -function pipelineParse(p, ctx) { - ctx.tree = p.parse(ctx.file); -} - -function pipelineRun(p, ctx, next) { - p.run(ctx.tree, ctx.file, done); - - function done(err, tree, file) { - if (err) { - next(err); - } else { - ctx.tree = tree; - ctx.file = file; - next(); - } - } -} - -function pipelineStringify(p, ctx) { - var result = p.stringify(ctx.tree, ctx.file); - var file = ctx.file; - - if (result === undefined || result === null) ; else if (typeof result === 'string' || isBuffer(result)) { - file.contents = result; - } else { - file.result = result; - } -} - -// Function to create the first processor. -function unified() { - var attachers = []; - var transformers = trough_1(); - var namespace = {}; - var frozen = false; - var freezeIndex = -1; - - // Data management. - processor.data = data; - - // Lock. - processor.freeze = freeze; - - // Plugins. - processor.attachers = attachers; - processor.use = use; - - // API. - processor.parse = parse; - processor.stringify = stringify; - processor.run = run; - processor.runSync = runSync; - processor.process = process; - processor.processSync = processSync; +var isPlainObj = value => { + if (Object.prototype.toString.call(value) !== '[object Object]') { + return false; + } - // Expose. - return processor + const prototype = Object.getPrototypeOf(value); + return prototype === null || prototype === Object.prototype; +}; - // Create a new processor based on the processor in the current scope. - function processor() { - var destination = unified(); - var length = attachers.length; - var index = -1; +var slice$3 = [].slice; - while (++index < length) { - destination.use.apply(null, attachers[index]); - } +var wrap_1 = wrap$2; - destination.data(extend$2(true, {}, namespace)); +// Wrap `fn`. +// Can be sync or async; return a promise, receive a completion handler, return +// new values and errors. +function wrap$2(fn, callback) { + var invoked; - return destination - } + return wrapped - // Freeze: used to signal a processor that has finished configuration. - // - // For example, take unified itself: it’s frozen. - // Plugins should not be added to it. - // Rather, it should be extended, by invoking it, before modifying it. - // - // In essence, always invoke this when exporting a processor. - function freeze() { - var values; - var plugin; - var options; - var transformer; + function wrapped() { + var params = slice$3.call(arguments, 0); + var callback = fn.length > params.length; + var result; - if (frozen) { - return processor + if (callback) { + params.push(done); } - while (++freezeIndex < attachers.length) { - values = attachers[freezeIndex]; - plugin = values[0]; - options = values[1]; - transformer = null; - - if (options === false) { - continue - } - - if (options === true) { - values[1] = undefined; + try { + result = fn.apply(null, params); + } catch (error) { + // Well, this is quite the pickle. + // `fn` received a callback and invoked it (thus continuing the pipeline), + // but later also threw an error. + // We’re not about to restart the pipeline again, so the only thing left + // to do is to throw the thing instead. + if (callback && invoked) { + throw error } - transformer = plugin.apply(processor, values.slice(1)); + return done(error) + } - if (typeof transformer === 'function') { - transformers.use(transformer); + if (!callback) { + if (result && typeof result.then === 'function') { + result.then(then, done); + } else if (result instanceof Error) { + done(result); + } else { + then(result); } } + } - frozen = true; - freezeIndex = Infinity; + // Invoke `next`, only once. + function done() { + if (!invoked) { + invoked = true; - return processor + callback.apply(null, arguments); + } } - // Data management. - // Getter / setter for processor-specific informtion. - function data(key, value) { - if (typeof key === 'string') { - // Set `key`. - if (arguments.length === 2) { - assertUnfrozen('data', frozen); + // Invoke `done` with one value. + // Tracks if an error is passed, too. + function then(value) { + done(null, value); + } +} - namespace[key] = value; +var wrap$1 = wrap_1; - return processor - } +var trough_1 = trough$1; - // Get `key`. - return (own$2.call(namespace, key) && namespace[key]) || null - } +trough$1.wrap = wrap$1; - // Set space. - if (key) { - assertUnfrozen('data', frozen); - namespace = key; - return processor - } +var slice$2 = [].slice; - // Get space. - return namespace - } +// Create new middleware. +function trough$1() { + var fns = []; + var middleware = {}; - // Plugin management. - // - // Pass it: - // * an attacher and options, - // * a preset, - // * a list of presets, attachers, and arguments (list of attachers and - // options). - function use(value) { - var settings; + middleware.run = run; + middleware.use = use; - assertUnfrozen('use', frozen); + return middleware - if (value === null || value === undefined) ; else if (typeof value === 'function') { - addPlugin.apply(null, arguments); - } else if (typeof value === 'object') { - if ('length' in value) { - addList(value); - } else { - addPreset(value); - } - } else { - throw new Error('Expected usable value, not `' + value + '`') - } + // Run `fns`. Last argument must be a completion handler. + function run() { + var index = -1; + var input = slice$2.call(arguments, 0, -1); + var done = arguments[arguments.length - 1]; - if (settings) { - namespace.settings = extend$2(namespace.settings || {}, settings); + if (typeof done !== 'function') { + throw new Error('Expected function as last argument, not ' + done) } - return processor + next.apply(null, [null].concat(input)); - function addPreset(result) { - addList(result.plugins); + // Run the next `fn`, if any. + function next(err) { + var fn = fns[++index]; + var params = slice$2.call(arguments, 0); + var values = params.slice(1); + var length = input.length; + var pos = -1; - if (result.settings) { - settings = extend$2(settings || {}, result.settings); + if (err) { + done(err); + return } - } - function add(value) { - if (typeof value === 'function') { - addPlugin(value); - } else if (typeof value === 'object') { - if ('length' in value) { - addPlugin.apply(null, value); - } else { - addPreset(value); + // Copy non-nully input into values. + while (++pos < length) { + if (values[pos] === null || values[pos] === undefined) { + values[pos] = input[pos]; } - } else { - throw new Error('Expected usable value, not `' + value + '`') } - } - - function addList(plugins) { - var length; - var index; - if (plugins === null || plugins === undefined) ; else if (typeof plugins === 'object' && 'length' in plugins) { - length = plugins.length; - index = -1; + input = values; - while (++index < length) { - add(plugins[index]); - } + // Next or done. + if (fn) { + wrap$1(fn, next).apply(null, input); } else { - throw new Error('Expected a list of plugins, not `' + plugins + '`') + done.apply(null, [null].concat(input)); } } + } - function addPlugin(plugin, value) { - var entry = find(plugin); + // Add `fn` to the list. + function use(fn) { + if (typeof fn !== 'function') { + throw new Error('Expected `fn` to be a function, not ' + fn) + } - if (entry) { - if (isPlainObj(entry[1]) && isPlainObj(value)) { - value = extend$2(entry[1], value); - } + fns.push(fn); - entry[1] = value; - } else { - attachers.push(slice$3.call(arguments)); - } - } + return middleware } +} - function find(plugin) { - var length = attachers.length; - var index = -1; - var entry; +var own$d = {}.hasOwnProperty; - while (++index < length) { - entry = attachers[index]; +var unistUtilStringifyPosition$1 = stringify$4; - if (entry[0] === plugin) { - return entry - } - } +function stringify$4(value) { + // Nothing. + if (!value || typeof value !== 'object') { + return '' } - // Parse a file (in string or vfile representation) into a unist node using - // the `Parser` on the processor. - function parse(doc) { - var file = vfile(doc); - var Parser; + // Node. + if (own$d.call(value, 'position') || own$d.call(value, 'type')) { + return position$4(value.position) + } - freeze(); - Parser = processor.Parser; - assertParser('parse', Parser); + // Position. + if (own$d.call(value, 'start') || own$d.call(value, 'end')) { + return position$4(value) + } - if (newable(Parser, 'parse')) { - return new Parser(String(file), file).parse() - } + // Point. + if (own$d.call(value, 'line') || own$d.call(value, 'column')) { + return point$t(value) + } - return Parser(String(file), file) // eslint-disable-line new-cap + // ? + return '' +} + +function point$t(point) { + if (!point || typeof point !== 'object') { + point = {}; } - // Run transforms on a unist node representation of a file (in string or - // vfile representation), async. - function run(node, file, cb) { - assertNode(node); - freeze(); + return index$2(point.line) + ':' + index$2(point.column) +} - if (!cb && typeof file === 'function') { - cb = file; - file = null; - } +function position$4(pos) { + if (!pos || typeof pos !== 'object') { + pos = {}; + } - if (!cb) { - return new Promise(executor) - } + return point$t(pos.start) + '-' + point$t(pos.end) +} - executor(null, cb); +function index$2(value) { + return value && typeof value === 'number' ? value : 1 +} - function executor(resolve, reject) { - transformers.run(node, vfile(file), done); +var stringify$3 = unistUtilStringifyPosition$1; - function done(err, tree, file) { - tree = tree || node; - if (err) { - reject(err); - } else if (resolve) { - resolve(tree); - } else { - cb(null, tree, file); - } - } - } - } +var vfileMessage = VMessage$1; - // Run transforms on a unist node representation of a file (in string or - // vfile representation), sync. - function runSync(node, file) { - var complete = false; - var result; +// Inherit from `Error#`. +function VMessagePrototype() {} +VMessagePrototype.prototype = Error.prototype; +VMessage$1.prototype = new VMessagePrototype(); - run(node, file, done); +// Message properties. +var proto = VMessage$1.prototype; - assertDone('runSync', 'run', complete); +proto.file = ''; +proto.name = ''; +proto.reason = ''; +proto.message = ''; +proto.stack = ''; +proto.fatal = null; +proto.column = null; +proto.line = null; - return result +// Construct a new VMessage. +// +// Note: We cannot invoke `Error` on the created context, as that adds readonly +// `line` and `column` attributes on Safari 9, thus throwing and failing the +// data. +function VMessage$1(reason, position, origin) { + var parts; + var range; + var location; - function done(err, tree) { - complete = true; - bail_1(err); - result = tree; - } + if (typeof position === 'string') { + origin = position; + position = null; } - // Stringify a unist node representation of a file (in string or vfile - // representation) into a string using the `Compiler` on the processor. - function stringify(node, doc) { - var file = vfile(doc); - var Compiler; + parts = parseOrigin(origin); + range = stringify$3(position) || '1:1'; - freeze(); - Compiler = processor.Compiler; - assertCompiler('stringify', Compiler); - assertNode(node); + location = { + start: {line: null, column: null}, + end: {line: null, column: null} + }; - if (newable(Compiler, 'compile')) { - return new Compiler(node, file).compile() + // Node. + if (position && position.position) { + position = position.position; + } + + if (position) { + // Position. + if (position.start) { + location = position; + position = position.start; + } else { + // Point. + location.start = position; } + } - return Compiler(node, file) // eslint-disable-line new-cap + if (reason.stack) { + this.stack = reason.stack; + reason = reason.message; } - // Parse a file (in string or vfile representation) into a unist node using - // the `Parser` on the processor, then run transforms on that node, and - // compile the resulting node using the `Compiler` on the processor, and - // store that result on the vfile. - function process(doc, cb) { - freeze(); - assertParser('process', processor.Parser); - assertCompiler('process', processor.Compiler); + this.message = reason; + this.name = range; + this.reason = reason; + this.line = position ? position.line : null; + this.column = position ? position.column : null; + this.location = location; + this.source = parts[0]; + this.ruleId = parts[1]; +} - if (!cb) { - return new Promise(executor) +function parseOrigin(origin) { + var result = [null, null]; + var index; + + if (typeof origin === 'string') { + index = origin.indexOf(':'); + + if (index === -1) { + result[1] = origin; + } else { + result[0] = origin.slice(0, index); + result[1] = origin.slice(index + 1); } + } - executor(null, cb); + return result +} - function executor(resolve, reject) { - var file = vfile(doc); +var minpath = require$$0__default$2['default']; - pipeline.run(processor, {file: file}, done); +var minproc = process; - function done(err) { - if (err) { - reject(err); - } else if (resolve) { - resolve(file); - } else { - cb(null, file); - } - } - } +var p = minpath; +var proc$1 = minproc; +var buffer$1 = isBuffer; + +var core$1 = VFile$1; + +var own$c = {}.hasOwnProperty; + +// Order of setting (least specific to most), we need this because otherwise +// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a +// stem can be set. +var order$3 = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']; + +VFile$1.prototype.toString = toString$6; + +// Access full path (`~/index.min.js`). +Object.defineProperty(VFile$1.prototype, 'path', {get: getPath, set: setPath}); + +// Access parent path (`~`). +Object.defineProperty(VFile$1.prototype, 'dirname', { + get: getDirname, + set: setDirname +}); + +// Access basename (`index.min.js`). +Object.defineProperty(VFile$1.prototype, 'basename', { + get: getBasename, + set: setBasename +}); + +// Access extname (`.js`). +Object.defineProperty(VFile$1.prototype, 'extname', { + get: getExtname, + set: setExtname +}); + +// Access stem (`index.min`). +Object.defineProperty(VFile$1.prototype, 'stem', {get: getStem, set: setStem}); + +// Construct a new file. +function VFile$1(options) { + var prop; + var index; + + if (!options) { + options = {}; + } else if (typeof options === 'string' || buffer$1(options)) { + options = {contents: options}; + } else if ('message' in options && 'messages' in options) { + return options } - // Process the given document (in string or vfile representation), sync. - function processSync(doc) { - var complete = false; - var file; + if (!(this instanceof VFile$1)) { + return new VFile$1(options) + } - freeze(); - assertParser('processSync', processor.Parser); - assertCompiler('processSync', processor.Compiler); - file = vfile(doc); + this.data = {}; + this.messages = []; + this.history = []; + this.cwd = proc$1.cwd(); - process(file, done); + // Set path related properties in the correct order. + index = -1; - assertDone('processSync', 'process', complete); + while (++index < order$3.length) { + prop = order$3[index]; - return file + if (own$c.call(options, prop)) { + this[prop] = options[prop]; + } + } - function done(err) { - complete = true; - bail_1(err); + // Set non-path related properties. + for (prop in options) { + if (order$3.indexOf(prop) < 0) { + this[prop] = options[prop]; } } } -// Check if `value` is a constructor. -function newable(value, name) { - return ( - typeof value === 'function' && - value.prototype && - // A function with keys in its prototype is probably a constructor. - // Classes’ prototype methods are not enumerable, so we check if some value - // exists in the prototype. - (keys(value.prototype) || name in value.prototype) - ) +function getPath() { + return this.history[this.history.length - 1] } -// Check if `value` is an object with keys. -function keys(value) { - var key; - for (key in value) { - return true +function setPath(path) { + assertNonEmpty(path, 'path'); + + if (this.path !== path) { + this.history.push(path); } +} - return false +function getDirname() { + return typeof this.path === 'string' ? p.dirname(this.path) : undefined } -// Assert a parser is available. -function assertParser(name, Parser) { - if (typeof Parser !== 'function') { - throw new Error('Cannot `' + name + '` without `Parser`') - } +function setDirname(dirname) { + assertPath(this.path, 'dirname'); + this.path = p.join(dirname || '', this.basename); } -// Assert a compiler is available. -function assertCompiler(name, Compiler) { - if (typeof Compiler !== 'function') { - throw new Error('Cannot `' + name + '` without `Compiler`') - } +function getBasename() { + return typeof this.path === 'string' ? p.basename(this.path) : undefined } -// Assert the processor is not frozen. -function assertUnfrozen(name, frozen) { - if (frozen) { - throw new Error( - 'Cannot invoke `' + - name + - '` on a frozen processor.\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.' - ) - } +function setBasename(basename) { + assertNonEmpty(basename, 'basename'); + assertPart(basename, 'basename'); + this.path = p.join(this.dirname || '', basename); } -// Assert `node` is a unist node. -function assertNode(node) { - if (!node || typeof node.type !== 'string') { - throw new Error('Expected node, got `' + node + '`') +function getExtname() { + return typeof this.path === 'string' ? p.extname(this.path) : undefined +} + +function setExtname(extname) { + assertPart(extname, 'extname'); + assertPath(this.path, 'extname'); + + if (extname) { + if (extname.charCodeAt(0) !== 46 /* `.` */) { + throw new Error('`extname` must start with `.`') + } + + if (extname.indexOf('.', 1) > -1) { + throw new Error('`extname` cannot contain multiple dots') + } } + + this.path = p.join(this.dirname, this.stem + (extname || '')); } -// Assert that `complete` is `true`. -function assertDone(name, asyncName, complete) { - if (!complete) { +function getStem() { + return typeof this.path === 'string' + ? p.basename(this.path, this.extname) + : undefined +} + +function setStem(stem) { + assertNonEmpty(stem, 'stem'); + assertPart(stem, 'stem'); + this.path = p.join(this.dirname || '', stem + (this.extname || '')); +} + +// Get the value of the file. +function toString$6(encoding) { + return (this.contents || '').toString(encoding) +} + +// Assert that `part` is not a path (i.e., does not contain `p.sep`). +function assertPart(part, name) { + if (part && part.indexOf(p.sep) > -1) { throw new Error( - '`' + name + '` finished async. Use `' + asyncName + '` instead' + '`' + name + '` cannot be a path: did not expect `' + p.sep + '`' ) } } -var mdastUtilToString = toString$3; +// Assert that `part` is not empty. +function assertNonEmpty(part, name) { + if (!part) { + throw new Error('`' + name + '` cannot be empty') + } +} -// Get the text content of a node. -// Prefer the node’s plain-text fields, otherwise serialize its children, -// and if the given value is an array, serialize the nodes in it. -function toString$3(node) { - return ( - (node && - (node.value || - node.alt || - node.title || - ('children' in node && all(node.children)) || - ('length' in node && all(node)))) || - '' - ) +// Assert `path` exists. +function assertPath(path, name) { + if (!path) { + throw new Error('Setting `' + name + '` requires `path` to be set too') + } } -function all(values) { - var result = []; - var index = -1; +var VMessage = vfileMessage; +var VFile = core$1; - while (++index < values.length) { - result[index] = toString$3(values[index]); - } +var lib$1 = VFile; - return result.join('') -} +VFile.prototype.message = message; +VFile.prototype.info = info; +VFile.prototype.fail = fail; -var assign = Object.assign; +// Create a message with `reason` at `position`. +// When an error is passed in as `reason`, copies the stack. +function message(reason, position, origin) { + var message = new VMessage(reason, position, origin); -var assign_1 = assign; + if (this.path) { + message.name = this.path + ':' + message.name; + message.file = this.path; + } -var own$3 = {}.hasOwnProperty; + message.fatal = false; -var hasOwnProperty = own$3; + this.messages.push(message); -function normalizeIdentifier(value) { - return ( - value // Collapse Markdown whitespace. - .replace(/[\t\n\r ]+/g, ' ') // Trim. - .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase - // counterpart is uppercased will result in a different uppercase - // character. - // Hence, to get that form, we perform both lower- and uppercase. - // Upper case makes sure keys will not interact with default prototypal - // methods: no object method is uppercase. - .toLowerCase() - .toUpperCase() - ) + return message } -var normalizeIdentifier_1 = normalizeIdentifier; +// Fail: creates a vmessage, associates it with the file, and throws it. +function fail() { + var message = this.message.apply(this, arguments); -var fromCharCode = String.fromCharCode; + message.fatal = true; -var fromCharCode_1 = fromCharCode; + throw message +} -function safeFromInt(value, base) { - var code = parseInt(value, base); +// Info: creates a vmessage, associates it with the file, and marks the fatality +// as null. +function info() { + var message = this.message.apply(this, arguments); - if ( - // C0 except for HT, LF, FF, CR, space - code < 9 || - code === 11 || - (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls. - (code > 126 && code < 160) || // Lone high surrogates and low surrogates. - (code > 55295 && code < 57344) || // Noncharacters. - (code > 64975 && code < 65008) || - (code & 65535) === 65535 || - (code & 65535) === 65534 || // Out of range - code > 1114111 - ) { - return '\uFFFD' - } + message.fatal = null; - return fromCharCode_1(code) + return message } -var safeFromInt_1 = safeFromInt; +var vfile$1 = lib$1; -function miniflat(value) { - return value === null || value === undefined - ? [] - : 'length' in value - ? value - : [value] -} +var bail = bail_1; +var buffer = isBuffer; +var extend$1 = extend$2; +var plain = isPlainObj; +var trough = trough_1; +var vfile = vfile$1; -var miniflat_1 = miniflat; +// Expose a frozen processor. +var unified_1 = unified$1().freeze(); -function markdownLineEnding(code) { - return code < -2 -} +var slice$1 = [].slice; +var own$b = {}.hasOwnProperty; -var markdownLineEnding_1 = markdownLineEnding; +// Process pipeline. +var pipeline = trough() + .use(pipelineParse) + .use(pipelineRun) + .use(pipelineStringify); -function markdownSpace(code) { - return code === -2 || code === -1 || code === 32 +function pipelineParse(p, ctx) { + ctx.tree = p.parse(ctx.file); } -var markdownSpace_1 = markdownSpace; - -function spaceFactory(effects, ok, type, max) { - var limit = max ? max - 1 : Infinity; - var size = 0; - return start +function pipelineRun(p, ctx, next) { + p.run(ctx.tree, ctx.file, done); - function start(code) { - if (markdownSpace_1(code)) { - effects.enter(type); - return prefix(code) + function done(error, tree, file) { + if (error) { + next(error); + } else { + ctx.tree = tree; + ctx.file = file; + next(); } - - return ok(code) } +} - function prefix(code) { - if (markdownSpace_1(code) && size++ < limit) { - effects.consume(code); - return prefix +function pipelineStringify(p, ctx) { + var result = p.stringify(ctx.tree, ctx.file); + + if (result === undefined || result === null) ; else if (typeof result === 'string' || buffer(result)) { + if ('value' in ctx.file) { + ctx.file.value = result; } - effects.exit(type); - return ok(code) + ctx.file.contents = result; + } else { + ctx.file.result = result; } } -var factorySpace = spaceFactory; +// Function to create the first processor. +function unified$1() { + var attachers = []; + var transformers = trough(); + var namespace = {}; + var freezeIndex = -1; + var frozen; -var tokenize = initializeContent; + // Data management. + processor.data = data; -function initializeContent(effects) { - var contentStart = effects.attempt( - this.parser.constructs.contentInitial, - afterContentStartConstruct, - paragraphInitial - ); - var previous; - return contentStart + // Lock. + processor.freeze = freeze; - function afterContentStartConstruct(code) { - if (code === null) { - effects.consume(code); - return - } + // Plugins. + processor.attachers = attachers; + processor.use = use; - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return factorySpace(effects, contentStart, 'linePrefix') - } + // API. + processor.parse = parse; + processor.stringify = stringify; + processor.run = run; + processor.runSync = runSync; + processor.process = process; + processor.processSync = processSync; - function paragraphInitial(code) { - effects.enter('paragraph'); - return lineStart(code) - } + // Expose. + return processor - function lineStart(code) { - var token = effects.enter('chunkText', { - contentType: 'text', - previous: previous - }); + // Create a new processor based on the processor in the current scope. + function processor() { + var destination = unified$1(); + var index = -1; - if (previous) { - previous.next = token; + while (++index < attachers.length) { + destination.use.apply(null, attachers[index]); } - previous = token; - return data(code) + destination.data(extend$1(true, {}, namespace)); + + return destination } - function data(code) { - if (code === null) { - effects.exit('chunkText'); - effects.exit('paragraph'); - effects.consume(code); - return + // Freeze: used to signal a processor that has finished configuration. + // + // For example, take unified itself: it’s frozen. + // Plugins should not be added to it. + // Rather, it should be extended, by invoking it, before modifying it. + // + // In essence, always invoke this when exporting a processor. + function freeze() { + var values; + var transformer; + + if (frozen) { + return processor } - if (markdownLineEnding_1(code)) { - effects.consume(code); - effects.exit('chunkText'); - return lineStart - } // Data. + while (++freezeIndex < attachers.length) { + values = attachers[freezeIndex]; - effects.consume(code); - return data - } -} + if (values[1] === false) { + continue + } -var tokenize_1 = tokenize; + if (values[1] === true) { + values[1] = undefined; + } -var content = /*#__PURE__*/Object.defineProperty({ - tokenize: tokenize_1 -}, '__esModule', {value: true}); + transformer = values[0].apply(processor, values.slice(1)); -var partialBlankLine = { - tokenize: tokenizePartialBlankLine, - partial: true -}; + if (typeof transformer === 'function') { + transformers.use(transformer); + } + } -function tokenizePartialBlankLine(effects, ok, nok) { - return factorySpace(effects, afterWhitespace, 'linePrefix') + frozen = true; + freezeIndex = Infinity; - function afterWhitespace(code) { - return code === null || markdownLineEnding_1(code) ? ok(code) : nok(code) + return processor } -} - -var partialBlankLine_1 = partialBlankLine; - -var tokenize$1 = initializeDocument; -var containerConstruct = { - tokenize: tokenizeContainer -}; -var lazyFlowConstruct = { - tokenize: tokenizeLazyFlow -}; -function initializeDocument(effects) { - var self = this; - var stack = []; - var continued = 0; - var inspectConstruct = { - tokenize: tokenizeInspect, - partial: true - }; - var inspectResult; - var childFlow; - var childToken; - return start + // Data management. + // Getter / setter for processor-specific informtion. + function data(key, value) { + if (typeof key === 'string') { + // Set `key`. + if (arguments.length === 2) { + assertUnfrozen('data', frozen); + namespace[key] = value; + return processor + } - function start(code) { - if (continued < stack.length) { - self.containerState = stack[continued][1]; - return effects.attempt( - stack[continued][0].continuation, - documentContinue, - documentContinued - )(code) + // Get `key`. + return (own$b.call(namespace, key) && namespace[key]) || null } - return documentContinued(code) - } + // Set space. + if (key) { + assertUnfrozen('data', frozen); + namespace = key; + return processor + } - function documentContinue(code) { - continued++; - return start(code) + // Get space. + return namespace } - function documentContinued(code) { - // If we’re in a concrete construct (such as when expecting another line of + // Plugin management. + // + // Pass it: + // * an attacher and options, + // * a preset, + // * a list of presets, attachers, and arguments (list of attachers and + // options). + function use(value) { + var settings; + + assertUnfrozen('use', frozen); + + if (value === null || value === undefined) ; else if (typeof value === 'function') { + addPlugin.apply(null, arguments); + } else if (typeof value === 'object') { + if ('length' in value) { + addList(value); + } else { + addPreset(value); + } + } else { + throw new Error('Expected usable value, not `' + value + '`') + } + + if (settings) { + namespace.settings = extend$1(namespace.settings || {}, settings); + } + + return processor + + function addPreset(result) { + addList(result.plugins); + + if (result.settings) { + settings = extend$1(settings || {}, result.settings); + } + } + + function add(value) { + if (typeof value === 'function') { + addPlugin(value); + } else if (typeof value === 'object') { + if ('length' in value) { + addPlugin.apply(null, value); + } else { + addPreset(value); + } + } else { + throw new Error('Expected usable value, not `' + value + '`') + } + } + + function addList(plugins) { + var index = -1; + + if (plugins === null || plugins === undefined) ; else if (typeof plugins === 'object' && 'length' in plugins) { + while (++index < plugins.length) { + add(plugins[index]); + } + } else { + throw new Error('Expected a list of plugins, not `' + plugins + '`') + } + } + + function addPlugin(plugin, value) { + var entry = find(plugin); + + if (entry) { + if (plain(entry[1]) && plain(value)) { + value = extend$1(true, entry[1], value); + } + + entry[1] = value; + } else { + attachers.push(slice$1.call(arguments)); + } + } + } + + function find(plugin) { + var index = -1; + + while (++index < attachers.length) { + if (attachers[index][0] === plugin) { + return attachers[index] + } + } + } + + // Parse a file (in string or vfile representation) into a unist node using + // the `Parser` on the processor. + function parse(doc) { + var file = vfile(doc); + var Parser; + + freeze(); + Parser = processor.Parser; + assertParser('parse', Parser); + + if (newable(Parser, 'parse')) { + return new Parser(String(file), file).parse() + } + + return Parser(String(file), file) // eslint-disable-line new-cap + } + + // Run transforms on a unist node representation of a file (in string or + // vfile representation), async. + function run(node, file, cb) { + assertNode(node); + freeze(); + + if (!cb && typeof file === 'function') { + cb = file; + file = null; + } + + if (!cb) { + return new Promise(executor) + } + + executor(null, cb); + + function executor(resolve, reject) { + transformers.run(node, vfile(file), done); + + function done(error, tree, file) { + tree = tree || node; + if (error) { + reject(error); + } else if (resolve) { + resolve(tree); + } else { + cb(null, tree, file); + } + } + } + } + + // Run transforms on a unist node representation of a file (in string or + // vfile representation), sync. + function runSync(node, file) { + var result; + var complete; + + run(node, file, done); + + assertDone('runSync', 'run', complete); + + return result + + function done(error, tree) { + complete = true; + result = tree; + bail(error); + } + } + + // Stringify a unist node representation of a file (in string or vfile + // representation) into a string using the `Compiler` on the processor. + function stringify(node, doc) { + var file = vfile(doc); + var Compiler; + + freeze(); + Compiler = processor.Compiler; + assertCompiler('stringify', Compiler); + assertNode(node); + + if (newable(Compiler, 'compile')) { + return new Compiler(node, file).compile() + } + + return Compiler(node, file) // eslint-disable-line new-cap + } + + // Parse a file (in string or vfile representation) into a unist node using + // the `Parser` on the processor, then run transforms on that node, and + // compile the resulting node using the `Compiler` on the processor, and + // store that result on the vfile. + function process(doc, cb) { + freeze(); + assertParser('process', processor.Parser); + assertCompiler('process', processor.Compiler); + + if (!cb) { + return new Promise(executor) + } + + executor(null, cb); + + function executor(resolve, reject) { + var file = vfile(doc); + + pipeline.run(processor, {file: file}, done); + + function done(error) { + if (error) { + reject(error); + } else if (resolve) { + resolve(file); + } else { + cb(null, file); + } + } + } + } + + // Process the given document (in string or vfile representation), sync. + function processSync(doc) { + var file; + var complete; + + freeze(); + assertParser('processSync', processor.Parser); + assertCompiler('processSync', processor.Compiler); + file = vfile(doc); + + process(file, done); + + assertDone('processSync', 'process', complete); + + return file + + function done(error) { + complete = true; + bail(error); + } + } +} + +// Check if `value` is a constructor. +function newable(value, name) { + return ( + typeof value === 'function' && + value.prototype && + // A function with keys in its prototype is probably a constructor. + // Classes’ prototype methods are not enumerable, so we check if some value + // exists in the prototype. + (keys(value.prototype) || name in value.prototype) + ) +} + +// Check if `value` is an object with keys. +function keys(value) { + var key; + for (key in value) { + return true + } + + return false +} + +// Assert a parser is available. +function assertParser(name, Parser) { + if (typeof Parser !== 'function') { + throw new Error('Cannot `' + name + '` without `Parser`') + } +} + +// Assert a compiler is available. +function assertCompiler(name, Compiler) { + if (typeof Compiler !== 'function') { + throw new Error('Cannot `' + name + '` without `Compiler`') + } +} + +// Assert the processor is not frozen. +function assertUnfrozen(name, frozen) { + if (frozen) { + throw new Error( + 'Cannot invoke `' + + name + + '` on a frozen processor.\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.' + ) + } +} + +// Assert `node` is a unist node. +function assertNode(node) { + if (!node || typeof node.type !== 'string') { + throw new Error('Expected node, got `' + node + '`') + } +} + +// Assert that `complete` is `true`. +function assertDone(name, asyncName, complete) { + if (!complete) { + throw new Error( + '`' + name + '` finished async. Use `' + asyncName + '` instead' + ) + } +} + +var mdastUtilToString$1 = toString$5; + +// Get the text content of a node. +// Prefer the node’s plain-text fields, otherwise serialize its children, +// and if the given value is an array, serialize the nodes in it. +function toString$5(node) { + return ( + (node && + (node.value || + node.alt || + node.title || + ('children' in node && all$2(node.children)) || + ('length' in node && all$2(node)))) || + '' + ) +} + +function all$2(values) { + var result = []; + var index = -1; + + while (++index < values.length) { + result[index] = toString$5(values[index]); + } + + return result.join('') +} + +var assign$5 = Object.assign; + +var assign_1 = assign$5; + +var own$a = {}.hasOwnProperty; + +var hasOwnProperty$2 = own$a; + +function normalizeIdentifier$4(value) { + return ( + value // Collapse Markdown whitespace. + .replace(/[\t\n\r ]+/g, ' ') // Trim. + .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase + // counterpart is uppercased will result in a different uppercase + // character. + // Hence, to get that form, we perform both lower- and uppercase. + // Upper case makes sure keys will not interact with default prototypal + // methods: no object method is uppercase. + .toLowerCase() + .toUpperCase() + ) +} + +var normalizeIdentifier_1 = normalizeIdentifier$4; + +var fromCharCode$4 = String.fromCharCode; + +var fromCharCode_1 = fromCharCode$4; + +var fromCharCode$3 = fromCharCode_1; + +function safeFromInt$1(value, base) { + var code = parseInt(value, base); + + if ( + // C0 except for HT, LF, FF, CR, space + code < 9 || + code === 11 || + (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls. + (code > 126 && code < 160) || // Lone high surrogates and low surrogates. + (code > 55295 && code < 57344) || // Noncharacters. + (code > 64975 && code < 65008) || + (code & 65535) === 65535 || + (code & 65535) === 65534 || // Out of range + code > 1114111 + ) { + return '\uFFFD' + } + + return fromCharCode$3(code) +} + +var safeFromInt_1 = safeFromInt$1; + +var content$3 = {}; + +function markdownLineEnding$k(code) { + return code < -2 +} + +var markdownLineEnding_1 = markdownLineEnding$k; + +function markdownSpace$a(code) { + return code === -2 || code === -1 || code === 32 +} + +var markdownSpace_1 = markdownSpace$a; + +var markdownSpace$9 = markdownSpace_1; + +function spaceFactory(effects, ok, type, max) { + var limit = max ? max - 1 : Infinity; + var size = 0; + return start + + function start(code) { + if (markdownSpace$9(code)) { + effects.enter(type); + return prefix(code) + } + + return ok(code) + } + + function prefix(code) { + if (markdownSpace$9(code) && size++ < limit) { + effects.consume(code); + return prefix + } + + effects.exit(type); + return ok(code) + } +} + +var factorySpace$i = spaceFactory; + +Object.defineProperty(content$3, '__esModule', {value: true}); + +var markdownLineEnding$j = markdownLineEnding_1; +var factorySpace$h = factorySpace$i; + +var tokenize$2 = initializeContent; + +function initializeContent(effects) { + var contentStart = effects.attempt( + this.parser.constructs.contentInitial, + afterContentStartConstruct, + paragraphInitial + ); + var previous; + return contentStart + + function afterContentStartConstruct(code) { + if (code === null) { + effects.consume(code); + return + } + + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return factorySpace$h(effects, contentStart, 'linePrefix') + } + + function paragraphInitial(code) { + effects.enter('paragraph'); + return lineStart(code) + } + + function lineStart(code) { + var token = effects.enter('chunkText', { + contentType: 'text', + previous: previous + }); + + if (previous) { + previous.next = token; + } + + previous = token; + return data(code) + } + + function data(code) { + if (code === null) { + effects.exit('chunkText'); + effects.exit('paragraph'); + effects.consume(code); + return + } + + if (markdownLineEnding$j(code)) { + effects.consume(code); + effects.exit('chunkText'); + return lineStart + } // Data. + + effects.consume(code); + return data + } +} + +content$3.tokenize = tokenize$2; + +var document$3 = {}; + +var markdownLineEnding$i = markdownLineEnding_1; +var factorySpace$g = factorySpace$i; + +var partialBlankLine$4 = { + tokenize: tokenizePartialBlankLine, + partial: true +}; + +function tokenizePartialBlankLine(effects, ok, nok) { + return factorySpace$g(effects, afterWhitespace, 'linePrefix') + + function afterWhitespace(code) { + return code === null || markdownLineEnding$i(code) ? ok(code) : nok(code) + } +} + +var partialBlankLine_1 = partialBlankLine$4; + +Object.defineProperty(document$3, '__esModule', {value: true}); + +var markdownLineEnding$h = markdownLineEnding_1; +var factorySpace$f = factorySpace$i; +var partialBlankLine$3 = partialBlankLine_1; + +var tokenize$1 = initializeDocument; +var containerConstruct = { + tokenize: tokenizeContainer +}; +var lazyFlowConstruct = { + tokenize: tokenizeLazyFlow +}; + +function initializeDocument(effects) { + var self = this; + var stack = []; + var continued = 0; + var inspectConstruct = { + tokenize: tokenizeInspect, + partial: true + }; + var inspectResult; + var childFlow; + var childToken; + return start + + function start(code) { + if (continued < stack.length) { + self.containerState = stack[continued][1]; + return effects.attempt( + stack[continued][0].continuation, + documentContinue, + documentContinued + )(code) + } + + return documentContinued(code) + } + + function documentContinue(code) { + continued++; + return start(code) + } + + function documentContinued(code) { + // If we’re in a concrete construct (such as when expecting another line of // HTML, or we resulted in lazy content), we can immediately start flow. if (inspectResult && inspectResult.flowContinue) { return flowStart(code) @@ -28195,7 +29041,7 @@ function initializeDocument(effects) { return flowStart(code) } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$h(code)) { effects.consume(code); continueFlow(effects.exit('chunkFlow')); return effects.check(inspectConstruct, documentAfterPeek) @@ -28286,7 +29132,7 @@ function initializeDocument(effects) { effects.attempt( lazyFlowConstruct, inspectFlowEnd, - effects.check(partialBlankLine_1, inspectFlowEnd, inspectLazy) + effects.check(partialBlankLine$3, inspectFlowEnd, inspectLazy) ) )(code) } // Otherwise we’re interrupting. @@ -28316,7 +29162,7 @@ function initializeDocument(effects) { } function tokenizeContainer(effects, ok, nok) { - return factorySpace( + return factorySpace$f( effects, effects.attempt(this.parser.constructs.document, ok, nok), 'linePrefix', @@ -28327,7 +29173,7 @@ function tokenizeContainer(effects, ok, nok) { } function tokenizeLazyFlow(effects, ok, nok) { - return factorySpace( + return factorySpace$f( effects, effects.lazy(this.parser.constructs.flow, ok, nok), 'linePrefix', @@ -28337,15 +29183,13 @@ function tokenizeLazyFlow(effects, ok, nok) { ) } -var tokenize_1$1 = tokenize$1; +document$3.tokenize = tokenize$1; -var document$1 = /*#__PURE__*/Object.defineProperty({ - tokenize: tokenize_1$1 -}, '__esModule', {value: true}); +var flow$7 = {}; // Counts tabs based on their expanded size, and CR+LF as one character. -function sizeChunks(chunks) { +function sizeChunks$2(chunks) { var index = -1; var size = 0; @@ -28356,23 +29200,27 @@ function sizeChunks(chunks) { return size } -var sizeChunks_1 = sizeChunks; +var sizeChunks_1 = sizeChunks$2; -function prefixSize(events, type) { +var sizeChunks$1 = sizeChunks_1; + +function prefixSize$4(events, type) { var tail = events[events.length - 1]; if (!tail || tail[1].type !== type) return 0 - return sizeChunks_1(tail[2].sliceStream(tail[1])) + return sizeChunks$1(tail[2].sliceStream(tail[1])) } -var prefixSize_1 = prefixSize; +var prefixSize_1 = prefixSize$4; + +var splice$2 = [].splice; -var splice = [].splice; +var splice_1 = splice$2; -var splice_1 = splice; +var splice$1 = splice_1; // causes a stack overflow in V8 when trying to insert 100k items for instance. -function chunkedSplice(list, start, remove, items) { +function chunkedSplice$8(list, start, remove, items) { var end = list.length; var chunkStart = 0; var parameters; // Make start between zero and `end` (included). @@ -28388,30 +29236,36 @@ function chunkedSplice(list, start, remove, items) { if (items.length < 10000) { parameters = Array.from(items); parameters.unshift(start, remove); - splice_1.apply(list, parameters); + splice$1.apply(list, parameters); } else { // Delete `remove` items starting from `start` - if (remove) splice_1.apply(list, [start, remove]); // Insert the items in chunks to not cause stack overflows. + if (remove) splice$1.apply(list, [start, remove]); // Insert the items in chunks to not cause stack overflows. while (chunkStart < items.length) { parameters = items.slice(chunkStart, chunkStart + 10000); parameters.unshift(start, 0); - splice_1.apply(list, parameters); + splice$1.apply(list, parameters); chunkStart += 10000; start += 10000; } } } -var chunkedSplice_1 = chunkedSplice; +var chunkedSplice_1 = chunkedSplice$8; -function shallow(object) { - return assign_1({}, object) +var assign$4 = assign_1; + +function shallow$6(object) { + return assign$4({}, object) } -var shallow_1 = shallow; +var shallow_1 = shallow$6; + +var assign$3 = assign_1; +var chunkedSplice$7 = chunkedSplice_1; +var shallow$5 = shallow_1; -function subtokenize(events) { +function subtokenize$2(events) { var jumps = {}; var index = -1; var event; @@ -28464,7 +29318,7 @@ function subtokenize(events) { if (event[0] === 'enter') { if (event[1].contentType) { - assign_1(jumps, subcontent(events, index)); + assign$3(jumps, subcontent(events, index)); index = jumps[index]; more = true; } @@ -28495,11 +29349,11 @@ function subtokenize(events) { if (lineIndex) { // Fix position. - event[1].end = shallow_1(events[lineIndex][1].start); // Switch container exit w/ line endings. + event[1].end = shallow$5(events[lineIndex][1].start); // Switch container exit w/ line endings. parameters = events.slice(lineIndex, index); parameters.unshift(event); - chunkedSplice_1(events, lineIndex, index - lineIndex + 1, parameters); + chunkedSplice$7(events, lineIndex, index - lineIndex + 1, parameters); } } } @@ -28599,14 +29453,19 @@ function subcontent(events, eventIndex) { function add(slice) { var start = startPositions.pop(); jumps.unshift([start, start + slice.length - 1]); - chunkedSplice_1(events, start, 2, slice); + chunkedSplice$7(events, start, 2, slice); } } -var subtokenize_1 = subtokenize; +var subtokenize_1 = subtokenize$2; + +var markdownLineEnding$g = markdownLineEnding_1; +var prefixSize$3 = prefixSize_1; +var subtokenize$1 = subtokenize_1; +var factorySpace$e = factorySpace$i; // No name because it must not be turned off. -var content$1 = { +var content$2 = { tokenize: tokenizeContent, resolve: resolveContent, interruptible: true, @@ -28619,7 +29478,7 @@ var continuationConstruct = { // parsed right now: before text in paragraphs (specifically, media) are parsed. function resolveContent(events) { - subtokenize_1(events); + subtokenize$1(events); return events } @@ -28640,7 +29499,7 @@ function tokenizeContent(effects, ok) { return contentEnd(code) } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$g(code)) { return effects.check( continuationConstruct, contentContinue, @@ -28677,17 +29536,17 @@ function tokenizeContinuation(effects, ok, nok) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); - return factorySpace(effects, prefixed, 'linePrefix') + return factorySpace$e(effects, prefixed, 'linePrefix') } function prefixed(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$g(code)) { return nok(code) } if ( self.parser.constructs.disable.null.indexOf('codeIndented') > -1 || - prefixSize_1(self.events, 'linePrefix') < 4 + prefixSize$3(self.events, 'linePrefix') < 4 ) { return effects.interrupt(self.parser.constructs.flow, nok, ok)(code) } @@ -28696,25 +29555,31 @@ function tokenizeContinuation(effects, ok, nok) { } } -var content_1 = content$1; +var content_1 = content$2; + +Object.defineProperty(flow$7, '__esModule', {value: true}); -var tokenize$2 = initializeFlow; +var content$1 = content_1; +var factorySpace$d = factorySpace$i; +var partialBlankLine$2 = partialBlankLine_1; + +var tokenize = initializeFlow; function initializeFlow(effects) { var self = this; var initial = effects.attempt( // Try to parse a blank line. - partialBlankLine_1, + partialBlankLine$2, atBlankEnding, // Try to parse initial flow (essentially, only code). effects.attempt( this.parser.constructs.flowInitial, afterConstruct, - factorySpace( + factorySpace$d( effects, effects.attempt( this.parser.constructs.flow, afterConstruct, - effects.attempt(content_1, afterConstruct) + effects.attempt(content$1, afterConstruct) ), 'linePrefix' ) @@ -28749,14 +29614,17 @@ function initializeFlow(effects) { } } -var tokenize_1$2 = tokenize$2; +flow$7.tokenize = tokenize; + +var text$5 = {}; -var flow = /*#__PURE__*/Object.defineProperty({ - tokenize: tokenize_1$2 -}, '__esModule', {value: true}); +Object.defineProperty(text$5, '__esModule', {value: true}); -var text = initializeFactory('text'); -var string = initializeFactory('string'); +var assign$2 = assign_1; +var shallow$4 = shallow_1; + +var text$4 = initializeFactory('text'); +var string$1 = initializeFactory('string'); var resolver = { resolveAll: createResolver() }; @@ -28922,12 +29790,12 @@ function resolveAllLineSuffixes(events, context) { ? bufferIndex : data.start._bufferIndex + bufferIndex }, - end: shallow_1(data.end) + end: shallow$4(data.end) }; - data.end = shallow_1(token.start); + data.end = shallow$4(token.start); if (data.start.offset === data.end.offset) { - assign_1(data, token); + assign$2(data, token); } else { events.splice( eventIndex, @@ -28946,17 +29814,25 @@ function resolveAllLineSuffixes(events, context) { return events } -var resolver_1 = resolver; -var string_1 = string; -var text_2 = text; +text$5.resolver = resolver; +text$5.string = string$1; +text$5.text = text$4; + +function miniflat$3(value) { + return value === null || value === undefined + ? [] + : 'length' in value + ? value + : [value] +} + +var miniflat_1 = miniflat$3; -var text_1 = /*#__PURE__*/Object.defineProperty({ - resolver: resolver_1, - string: string_1, - text: text_2 -}, '__esModule', {value: true}); +var hasOwnProperty$1 = hasOwnProperty$2; +var chunkedSplice$6 = chunkedSplice_1; +var miniflat$2 = miniflat_1; -function combineExtensions(extensions) { +function combineExtensions$2(extensions) { var all = {}; var index = -1; @@ -28974,19 +29850,19 @@ function extension$1(all, extension) { var code; for (hook in extension) { - left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {}); + left = hasOwnProperty$1.call(all, hook) ? all[hook] : (all[hook] = {}); right = extension[hook]; for (code in right) { - left[code] = constructs( - miniflat_1(right[code]), - hasOwnProperty.call(left, code) ? left[code] : [] + left[code] = constructs$3( + miniflat$2(right[code]), + hasOwnProperty$1.call(left, code) ? left[code] : [] ); } } } -function constructs(list, existing) { +function constructs$3(list, existing) { var index = -1; var before = []; @@ -28994,24 +29870,26 @@ function constructs(list, existing) { (list[index].add === 'after' ? existing : before).push(list[index]); } - chunkedSplice_1(existing, 0, 0, before); + chunkedSplice$6(existing, 0, 0, before); return existing } -var combineExtensions_1 = combineExtensions; +var combineExtensions_1 = combineExtensions$2; -function chunkedPush(list, items) { +var chunkedSplice$5 = chunkedSplice_1; + +function chunkedPush$3(list, items) { if (list.length) { - chunkedSplice_1(list, list.length, 0, items); + chunkedSplice$5(list, list.length, 0, items); return list } return items } -var chunkedPush_1 = chunkedPush; +var chunkedPush_1 = chunkedPush$3; -function resolveAll(constructs, events, context) { +function resolveAll$4(constructs, events, context) { var called = []; var index = -1; var resolve; @@ -29028,9 +29906,11 @@ function resolveAll(constructs, events, context) { return events } -var resolveAll_1 = resolveAll; +var resolveAll_1 = resolveAll$4; -function serializeChunks(chunks) { +var fromCharCode$2 = fromCharCode_1; + +function serializeChunks$1(chunks) { var index = -1; var result = []; var chunk; @@ -29055,7 +29935,7 @@ function serializeChunks(chunks) { value = ' '; } else { // Currently only replacement character. - value = fromCharCode_1(chunk); + value = fromCharCode$2(chunk); } atTab = chunk === -2; @@ -29065,9 +29945,9 @@ function serializeChunks(chunks) { return result.join('') } -var serializeChunks_1 = serializeChunks; +var serializeChunks_1 = serializeChunks$1; -function sliceChunks(chunks, token) { +function sliceChunks$1(chunks, token) { var startIndex = token.start._index; var startBufferIndex = token.start._bufferIndex; var endIndex = token.end._index; @@ -29091,7 +29971,17 @@ function sliceChunks(chunks, token) { return view } -var sliceChunks_1 = sliceChunks; +var sliceChunks_1 = sliceChunks$1; + +var assign$1 = assign_1; +var markdownLineEnding$f = markdownLineEnding_1; +var chunkedPush$2 = chunkedPush_1; +var chunkedSplice$4 = chunkedSplice_1; +var miniflat$1 = miniflat_1; +var resolveAll$3 = resolveAll_1; +var serializeChunks = serializeChunks_1; +var shallow$3 = shallow_1; +var sliceChunks = sliceChunks_1; // Create a tokenizer. // Tokenizers deal with one type of data (e.g., containers, flow, text). @@ -29100,9 +29990,9 @@ var sliceChunks_1 = sliceChunks; // function is used, in which case it doesn’t receive an `ok` or `nok`. // `from` can be given to set the point before the first character, although // when further lines are indented, they must be set with `defineSkip`. -function createTokenizer(parser, initialize, from) { +function createTokenizer$1(parser, initialize, from) { var point = from - ? shallow_1(from) + ? shallow$3(from) : { line: 1, column: 1, @@ -29149,7 +30039,7 @@ function createTokenizer(parser, initialize, from) { return context function write(slice) { - chunks = chunkedPush_1(chunks, slice); + chunks = chunkedPush$2(chunks, slice); main(); // Exit if we’re not done, resolve might change stuff. if (chunks[chunks.length - 1] !== null) { @@ -29158,22 +30048,22 @@ function createTokenizer(parser, initialize, from) { addResult(initialize, 0); // Otherwise, resolve, and exit. - context.events = resolveAll_1(resolveAllConstructs, context.events, context); + context.events = resolveAll$3(resolveAllConstructs, context.events, context); return context.events } // // Tools. // function sliceSerialize(token) { - return serializeChunks_1(sliceStream(token)) + return serializeChunks(sliceStream(token)) } function sliceStream(token) { - return sliceChunks_1(chunks, token) + return sliceChunks(chunks, token) } function now() { - return shallow_1(point) + return shallow$3(point) } function skip(value) { @@ -29220,7 +30110,7 @@ function createTokenizer(parser, initialize, from) { } // Move a character forward. function consume(code) { - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$f(code)) { point.line++; point.column = 1; point.offset += code === -3 ? 2 : 1; @@ -29278,7 +30168,7 @@ function createTokenizer(parser, initialize, from) { var currentConstruct; var info; return constructs.tokenize || 'length' in constructs - ? handleListOfConstructs(miniflat_1(constructs)) + ? handleListOfConstructs(miniflat$1(constructs)) : handleMapOfConstructs function handleMapOfConstructs(code) { @@ -29286,7 +30176,7 @@ function createTokenizer(parser, initialize, from) { return handleListOfConstructs( constructs.null ? /* c8 ignore next */ - miniflat_1(constructs[code]).concat(miniflat_1(constructs.null)) + miniflat$1(constructs[code]).concat(miniflat$1(constructs.null)) : constructs[code] )(code) } @@ -29323,7 +30213,7 @@ function createTokenizer(parser, initialize, from) { } return construct.tokenize.call( - fields ? assign_1({}, context, fields) : context, + fields ? assign$1({}, context, fields) : context, effects, ok, nok @@ -29354,7 +30244,7 @@ function createTokenizer(parser, initialize, from) { } if (construct.resolve) { - chunkedSplice_1( + chunkedSplice$4( context.events, from, context.events.length - from, @@ -29396,23 +30286,15 @@ function createTokenizer(parser, initialize, from) { } } -var createTokenizer_1 = createTokenizer; +var createTokenizer_1 = createTokenizer$1; -function markdownLineEndingOrSpace(code) { - return code < 0 || code === 32 -} - -var markdownLineEndingOrSpace_1 = markdownLineEndingOrSpace; +var constructs$2 = {}; -function regexCheck(regex) { - return check - - function check(code) { - return regex.test(fromCharCode_1(code)) - } +function markdownLineEndingOrSpace$9(code) { + return code < 0 || code === 32 } -var regexCheck_1 = regexCheck; +var markdownLineEndingOrSpace_1 = markdownLineEndingOrSpace$9; // This module is generated by `script/`. // @@ -29420,52 +30302,80 @@ var regexCheck_1 = regexCheck; // before or after them. // One such difference is if those characters are Unicode punctuation. // This script is generated from the Unicode data. -var unicodePunctuation = /[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/; +var unicodePunctuation$3 = /[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/; + +var unicodePunctuationRegex$2 = unicodePunctuation$3; + +var fromCharCode$1 = fromCharCode_1; + +function regexCheck$9(regex) { + return check + + function check(code) { + return regex.test(fromCharCode$1(code)) + } +} -var unicodePunctuationRegex = unicodePunctuation; +var regexCheck_1 = regexCheck$9; + +var unicodePunctuationRegex$1 = unicodePunctuationRegex$2; +var regexCheck$8 = regexCheck_1; // In fact adds to the bundle size. -var unicodePunctuation$1 = regexCheck_1(unicodePunctuationRegex); +var unicodePunctuation$2 = regexCheck$8(unicodePunctuationRegex$1); + +var unicodePunctuation_1 = unicodePunctuation$2; -var unicodePunctuation_1 = unicodePunctuation$1; +var regexCheck$7 = regexCheck_1; -var unicodeWhitespace = regexCheck_1(/\s/); +var unicodeWhitespace$2 = regexCheck$7(/\s/); -var unicodeWhitespace_1 = unicodeWhitespace; +var unicodeWhitespace_1 = unicodeWhitespace$2; + +var markdownLineEndingOrSpace$8 = markdownLineEndingOrSpace_1; +var unicodePunctuation$1 = unicodePunctuation_1; +var unicodeWhitespace$1 = unicodeWhitespace_1; // Classify whether a character is unicode whitespace, unicode punctuation, or // anything else. // Used for attention (emphasis, strong), whose sequences can open or close // based on the class of surrounding characters. -function classifyCharacter(code) { +function classifyCharacter$2(code) { if ( code === null || - markdownLineEndingOrSpace_1(code) || - unicodeWhitespace_1(code) + markdownLineEndingOrSpace$8(code) || + unicodeWhitespace$1(code) ) { return 1 } - if (unicodePunctuation_1(code)) { + if (unicodePunctuation$1(code)) { return 2 } } -var classifyCharacter_1 = classifyCharacter; +var classifyCharacter_1 = classifyCharacter$2; // chunks (replacement characters, tabs, or line endings). -function movePoint(point, offset) { +function movePoint$1(point, offset) { point.column += offset; point.offset += offset; point._bufferIndex += offset; return point } -var movePoint_1 = movePoint; +var movePoint_1 = movePoint$1; -var attention = { +var chunkedPush$1 = chunkedPush_1; +var chunkedSplice$3 = chunkedSplice_1; +var classifyCharacter$1 = classifyCharacter_1; +var movePoint = movePoint_1; +var resolveAll$2 = resolveAll_1; +var shallow$2 = shallow_1; + +var attention$1 = { name: 'attention', tokenize: tokenizeAttention, resolveAll: resolveAllAttention @@ -29528,52 +30438,52 @@ function resolveAllAttention(events, context) { : 1; openingSequence = { type: use > 1 ? 'strongSequence' : 'emphasisSequence', - start: movePoint_1(shallow_1(events[open][1].end), -use), - end: shallow_1(events[open][1].end) + start: movePoint(shallow$2(events[open][1].end), -use), + end: shallow$2(events[open][1].end) }; closingSequence = { type: use > 1 ? 'strongSequence' : 'emphasisSequence', - start: shallow_1(events[index][1].start), - end: movePoint_1(shallow_1(events[index][1].start), use) + start: shallow$2(events[index][1].start), + end: movePoint(shallow$2(events[index][1].start), use) }; text = { type: use > 1 ? 'strongText' : 'emphasisText', - start: shallow_1(events[open][1].end), - end: shallow_1(events[index][1].start) + start: shallow$2(events[open][1].end), + end: shallow$2(events[index][1].start) }; group = { type: use > 1 ? 'strong' : 'emphasis', - start: shallow_1(openingSequence.start), - end: shallow_1(closingSequence.end) + start: shallow$2(openingSequence.start), + end: shallow$2(closingSequence.end) }; - events[open][1].end = shallow_1(openingSequence.start); - events[index][1].start = shallow_1(closingSequence.end); + events[open][1].end = shallow$2(openingSequence.start); + events[index][1].start = shallow$2(closingSequence.end); nextEvents = []; // If there are more markers in the opening, add them before. if (events[open][1].end.offset - events[open][1].start.offset) { - nextEvents = chunkedPush_1(nextEvents, [ + nextEvents = chunkedPush$1(nextEvents, [ ['enter', events[open][1], context], ['exit', events[open][1], context] ]); } // Opening. - nextEvents = chunkedPush_1(nextEvents, [ + nextEvents = chunkedPush$1(nextEvents, [ ['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context] ]); // Between. - nextEvents = chunkedPush_1( + nextEvents = chunkedPush$1( nextEvents, - resolveAll_1( + resolveAll$2( context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context ) ); // Closing. - nextEvents = chunkedPush_1(nextEvents, [ + nextEvents = chunkedPush$1(nextEvents, [ ['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], @@ -29582,7 +30492,7 @@ function resolveAllAttention(events, context) { if (events[index][1].end.offset - events[index][1].start.offset) { offset = 2; - nextEvents = chunkedPush_1(nextEvents, [ + nextEvents = chunkedPush$1(nextEvents, [ ['enter', events[index][1], context], ['exit', events[index][1], context] ]); @@ -29590,7 +30500,7 @@ function resolveAllAttention(events, context) { offset = 0; } - chunkedSplice_1(events, open - 1, index - open + 3, nextEvents); + chunkedSplice$3(events, open - 1, index - open + 3, nextEvents); index = open + nextEvents.length - offset - 2; break } @@ -29610,7 +30520,7 @@ function resolveAllAttention(events, context) { } function tokenizeAttention(effects, ok) { - var before = classifyCharacter_1(this.previous); + var before = classifyCharacter$1(this.previous); var marker; return start @@ -29632,7 +30542,7 @@ function tokenizeAttention(effects, ok) { } token = effects.exit('attentionSequence'); - after = classifyCharacter_1(code); + after = classifyCharacter$1(code); open = !after || (after === 2 && before); close = !before || (before === 2 && after); token._open = marker === 42 ? open : open && (before || !close); @@ -29641,22 +30551,28 @@ function tokenizeAttention(effects, ok) { } } -var attention_1 = attention; +var attention_1 = attention$1; + +var regexCheck$6 = regexCheck_1; -var asciiAlphanumeric = regexCheck_1(/[\dA-Za-z]/); +var asciiAlpha$4 = regexCheck$6(/[A-Za-z]/); -var asciiAlphanumeric_1 = asciiAlphanumeric; +var asciiAlpha_1 = asciiAlpha$4; -var asciiAlpha = regexCheck_1(/[A-Za-z]/); +var regexCheck$5 = regexCheck_1; -var asciiAlpha_1 = asciiAlpha; +var asciiAlphanumeric$5 = regexCheck$5(/[\dA-Za-z]/); -var asciiAtext = regexCheck_1(/[#-'*+\--9=?A-Z^-~]/); +var asciiAlphanumeric_1 = asciiAlphanumeric$5; -var asciiAtext_1 = asciiAtext; +var regexCheck$4 = regexCheck_1; + +var asciiAtext$1 = regexCheck$4(/[#-'*+\--9=?A-Z^-~]/); + +var asciiAtext_1 = asciiAtext$1; // Note: EOF is seen as ASCII control here, because `null < 32 == true`. -function asciiControl(code) { +function asciiControl$3(code) { return ( // Special whitespace codes (which have negative values), C0 and Control // character DEL @@ -29664,9 +30580,14 @@ function asciiControl(code) { ) } -var asciiControl_1 = asciiControl; +var asciiControl_1 = asciiControl$3; + +var asciiAlpha$3 = asciiAlpha_1; +var asciiAlphanumeric$4 = asciiAlphanumeric_1; +var asciiAtext = asciiAtext_1; +var asciiControl$2 = asciiControl_1; -var autolink = { +var autolink$1 = { name: 'autolink', tokenize: tokenizeAutolink }; @@ -29685,16 +30606,16 @@ function tokenizeAutolink(effects, ok, nok) { } function open(code) { - if (asciiAlpha_1(code)) { + if (asciiAlpha$3(code)) { effects.consume(code); return schemeOrEmailAtext } - return asciiAtext_1(code) ? emailAtext(code) : nok(code) + return asciiAtext(code) ? emailAtext(code) : nok(code) } function schemeOrEmailAtext(code) { - return code === 43 || code === 45 || code === 46 || asciiAlphanumeric_1(code) + return code === 43 || code === 45 || code === 46 || asciiAlphanumeric$4(code) ? schemeInsideOrEmailAtext(code) : emailAtext(code) } @@ -29706,7 +30627,7 @@ function tokenizeAutolink(effects, ok, nok) { } if ( - (code === 43 || code === 45 || code === 46 || asciiAlphanumeric_1(code)) && + (code === 43 || code === 45 || code === 46 || asciiAlphanumeric$4(code)) && size++ < 32 ) { effects.consume(code); @@ -29722,7 +30643,7 @@ function tokenizeAutolink(effects, ok, nok) { return end(code) } - if (code === 32 || code === 60 || asciiControl_1(code)) { + if (code === 32 || code === 60 || asciiControl$2(code)) { return nok(code) } @@ -29737,7 +30658,7 @@ function tokenizeAutolink(effects, ok, nok) { return emailAtSignOrDot } - if (asciiAtext_1(code)) { + if (asciiAtext(code)) { effects.consume(code); return emailAtext } @@ -29746,7 +30667,7 @@ function tokenizeAutolink(effects, ok, nok) { } function emailAtSignOrDot(code) { - return asciiAlphanumeric_1(code) ? emailLabel(code) : nok(code) + return asciiAlphanumeric$4(code) ? emailLabel(code) : nok(code) } function emailLabel(code) { @@ -29766,7 +30687,7 @@ function tokenizeAutolink(effects, ok, nok) { } function emailValue(code) { - if ((code === 45 || asciiAlphanumeric_1(code)) && size++ < 63) { + if ((code === 45 || asciiAlphanumeric$4(code)) && size++ < 63) { effects.consume(code); return code === 45 ? emailValue : emailLabel } @@ -29783,15 +30704,18 @@ function tokenizeAutolink(effects, ok, nok) { } } -var autolink_1 = autolink; +var autolink_1 = autolink$1; -var blockQuote = { +var markdownSpace$8 = markdownSpace_1; +var factorySpace$c = factorySpace$i; + +var blockQuote$1 = { name: 'blockQuote', tokenize: tokenizeBlockQuoteStart, continuation: { tokenize: tokenizeBlockQuoteContinuation }, - exit: exit + exit: exit$1 }; function tokenizeBlockQuoteStart(effects, ok, nok) { @@ -29818,7 +30742,7 @@ function tokenizeBlockQuoteStart(effects, ok, nok) { } function after(code) { - if (markdownSpace_1(code)) { + if (markdownSpace$8(code)) { effects.enter('blockQuotePrefixWhitespace'); effects.consume(code); effects.exit('blockQuotePrefixWhitespace'); @@ -29832,9 +30756,9 @@ function tokenizeBlockQuoteStart(effects, ok, nok) { } function tokenizeBlockQuoteContinuation(effects, ok, nok) { - return factorySpace( + return factorySpace$c( effects, - effects.attempt(blockQuote, ok, nok), + effects.attempt(blockQuote$1, ok, nok), 'linePrefix', this.parser.constructs.disable.null.indexOf('codeIndented') > -1 ? undefined @@ -29842,17 +30766,21 @@ function tokenizeBlockQuoteContinuation(effects, ok, nok) { ) } -function exit(effects) { +function exit$1(effects) { effects.exit('blockQuote'); } -var blockQuote_1 = blockQuote; +var blockQuote_1 = blockQuote$1; + +var regexCheck$3 = regexCheck_1; -var asciiPunctuation = regexCheck_1(/[!-/:-@[-`{-~]/); +var asciiPunctuation$1 = regexCheck$3(/[!-/:-@[-`{-~]/); -var asciiPunctuation_1 = asciiPunctuation; +var asciiPunctuation_1 = asciiPunctuation$1; -var characterEscape = { +var asciiPunctuation = asciiPunctuation_1; + +var characterEscape$2 = { name: 'characterEscape', tokenize: tokenizeCharacterEscape }; @@ -29869,7 +30797,7 @@ function tokenizeCharacterEscape(effects, ok, nok) { } function open(code) { - if (asciiPunctuation_1(code)) { + if (asciiPunctuation(code)) { effects.enter('characterEscapeValue'); effects.consume(code); effects.exit('characterEscapeValue'); @@ -29881,4478 +30809,4489 @@ function tokenizeCharacterEscape(effects, ok, nok) { } } -var characterEscape_1 = characterEscape; +var characterEscape_1 = characterEscape$2; + +const AEli$2 = "Æ"; +const AElig$2 = "Æ"; +const AM$2 = "&"; +const AMP$2 = "&"; +const Aacut$2 = "Á"; +const Aacute$2 = "Á"; +const Abreve$2 = "Ă"; +const Acir$2 = "Â"; +const Acirc$2 = "Â"; +const Acy$2 = "А"; +const Afr$2 = "𝔄"; +const Agrav$2 = "À"; +const Agrave$2 = "À"; +const Alpha$2 = "Α"; +const Amacr$2 = "Ā"; +const And$2 = "⩓"; +const Aogon$2 = "Ą"; +const Aopf$2 = "𝔸"; +const ApplyFunction$2 = "⁡"; +const Arin$2 = "Å"; +const Aring$2 = "Å"; +const Ascr$2 = "𝒜"; +const Assign$2 = "≔"; +const Atild$2 = "Ã"; +const Atilde$2 = "Ã"; +const Aum$2 = "Ä"; +const Auml$2 = "Ä"; +const Backslash$2 = "∖"; +const Barv$2 = "⫧"; +const Barwed$2 = "⌆"; +const Bcy$2 = "Б"; +const Because$2 = "∵"; +const Bernoullis$2 = "ℬ"; +const Beta$2 = "Β"; +const Bfr$2 = "𝔅"; +const Bopf$2 = "𝔹"; +const Breve$2 = "˘"; +const Bscr$2 = "ℬ"; +const Bumpeq$2 = "≎"; +const CHcy$2 = "Ч"; +const COP$2 = "©"; +const COPY$2 = "©"; +const Cacute$2 = "Ć"; +const Cap$2 = "⋒"; +const CapitalDifferentialD$2 = "ⅅ"; +const Cayleys$2 = "ℭ"; +const Ccaron$2 = "Č"; +const Ccedi$2 = "Ç"; +const Ccedil$2 = "Ç"; +const Ccirc$2 = "Ĉ"; +const Cconint$2 = "∰"; +const Cdot$2 = "Ċ"; +const Cedilla$2 = "¸"; +const CenterDot$2 = "·"; +const Cfr$2 = "ℭ"; +const Chi$2 = "Χ"; +const CircleDot$2 = "⊙"; +const CircleMinus$2 = "⊖"; +const CirclePlus$2 = "⊕"; +const CircleTimes$2 = "⊗"; +const ClockwiseContourIntegral$2 = "∲"; +const CloseCurlyDoubleQuote$2 = "”"; +const CloseCurlyQuote$2 = "’"; +const Colon$2 = "∷"; +const Colone$2 = "⩴"; +const Congruent$2 = "≡"; +const Conint$2 = "∯"; +const ContourIntegral$2 = "∮"; +const Copf$2 = "ℂ"; +const Coproduct$2 = "∐"; +const CounterClockwiseContourIntegral$2 = "∳"; +const Cross$2 = "⨯"; +const Cscr$2 = "𝒞"; +const Cup$2 = "⋓"; +const CupCap$2 = "≍"; +const DD$2 = "ⅅ"; +const DDotrahd$2 = "⤑"; +const DJcy$2 = "Ђ"; +const DScy$2 = "Ѕ"; +const DZcy$2 = "Џ"; +const Dagger$2 = "‡"; +const Darr$2 = "↡"; +const Dashv$2 = "⫤"; +const Dcaron$2 = "Ď"; +const Dcy$2 = "Д"; +const Del$2 = "∇"; +const Delta$2 = "Δ"; +const Dfr$2 = "𝔇"; +const DiacriticalAcute$2 = "´"; +const DiacriticalDot$2 = "˙"; +const DiacriticalDoubleAcute$2 = "˝"; +const DiacriticalGrave$2 = "`"; +const DiacriticalTilde$2 = "˜"; +const Diamond$2 = "⋄"; +const DifferentialD$2 = "ⅆ"; +const Dopf$2 = "𝔻"; +const Dot$2 = "¨"; +const DotDot$2 = "⃜"; +const DotEqual$2 = "≐"; +const DoubleContourIntegral$2 = "∯"; +const DoubleDot$2 = "¨"; +const DoubleDownArrow$2 = "⇓"; +const DoubleLeftArrow$2 = "⇐"; +const DoubleLeftRightArrow$2 = "⇔"; +const DoubleLeftTee$2 = "⫤"; +const DoubleLongLeftArrow$2 = "⟸"; +const DoubleLongLeftRightArrow$2 = "⟺"; +const DoubleLongRightArrow$2 = "⟹"; +const DoubleRightArrow$2 = "⇒"; +const DoubleRightTee$2 = "⊨"; +const DoubleUpArrow$2 = "⇑"; +const DoubleUpDownArrow$2 = "⇕"; +const DoubleVerticalBar$2 = "∥"; +const DownArrow$2 = "↓"; +const DownArrowBar$2 = "⤓"; +const DownArrowUpArrow$2 = "⇵"; +const DownBreve$2 = "̑"; +const DownLeftRightVector$2 = "⥐"; +const DownLeftTeeVector$2 = "⥞"; +const DownLeftVector$2 = "↽"; +const DownLeftVectorBar$2 = "⥖"; +const DownRightTeeVector$2 = "⥟"; +const DownRightVector$2 = "⇁"; +const DownRightVectorBar$2 = "⥗"; +const DownTee$2 = "⊤"; +const DownTeeArrow$2 = "↧"; +const Downarrow$2 = "⇓"; +const Dscr$2 = "𝒟"; +const Dstrok$2 = "Đ"; +const ENG$2 = "Ŋ"; +const ET$2 = "Ð"; +const ETH$2 = "Ð"; +const Eacut$2 = "É"; +const Eacute$2 = "É"; +const Ecaron$2 = "Ě"; +const Ecir$2 = "Ê"; +const Ecirc$2 = "Ê"; +const Ecy$2 = "Э"; +const Edot$2 = "Ė"; +const Efr$2 = "𝔈"; +const Egrav$2 = "È"; +const Egrave$2 = "È"; +const Element$2 = "∈"; +const Emacr$2 = "Ē"; +const EmptySmallSquare$2 = "◻"; +const EmptyVerySmallSquare$2 = "▫"; +const Eogon$2 = "Ę"; +const Eopf$2 = "𝔼"; +const Epsilon$2 = "Ε"; +const Equal$2 = "⩵"; +const EqualTilde$2 = "≂"; +const Equilibrium$2 = "⇌"; +const Escr$2 = "ℰ"; +const Esim$2 = "⩳"; +const Eta$2 = "Η"; +const Eum$2 = "Ë"; +const Euml$2 = "Ë"; +const Exists$2 = "∃"; +const ExponentialE$2 = "ⅇ"; +const Fcy$2 = "Ф"; +const Ffr$2 = "𝔉"; +const FilledSmallSquare$2 = "◼"; +const FilledVerySmallSquare$2 = "▪"; +const Fopf$2 = "𝔽"; +const ForAll$2 = "∀"; +const Fouriertrf$2 = "ℱ"; +const Fscr$2 = "ℱ"; +const GJcy$2 = "Ѓ"; +const G$2 = ">"; +const GT$2 = ">"; +const Gamma$2 = "Γ"; +const Gammad$2 = "Ϝ"; +const Gbreve$2 = "Ğ"; +const Gcedil$2 = "Ģ"; +const Gcirc$2 = "Ĝ"; +const Gcy$2 = "Г"; +const Gdot$2 = "Ġ"; +const Gfr$2 = "𝔊"; +const Gg$2 = "⋙"; +const Gopf$2 = "𝔾"; +const GreaterEqual$2 = "≥"; +const GreaterEqualLess$2 = "⋛"; +const GreaterFullEqual$2 = "≧"; +const GreaterGreater$2 = "⪢"; +const GreaterLess$2 = "≷"; +const GreaterSlantEqual$2 = "⩾"; +const GreaterTilde$2 = "≳"; +const Gscr$2 = "𝒢"; +const Gt$2 = "≫"; +const HARDcy$2 = "Ъ"; +const Hacek$2 = "ˇ"; +const Hat$2 = "^"; +const Hcirc$2 = "Ĥ"; +const Hfr$2 = "ℌ"; +const HilbertSpace$2 = "ℋ"; +const Hopf$2 = "ℍ"; +const HorizontalLine$2 = "─"; +const Hscr$2 = "ℋ"; +const Hstrok$2 = "Ħ"; +const HumpDownHump$2 = "≎"; +const HumpEqual$2 = "≏"; +const IEcy$2 = "Е"; +const IJlig$2 = "IJ"; +const IOcy$2 = "Ё"; +const Iacut$2 = "Í"; +const Iacute$2 = "Í"; +const Icir$2 = "Î"; +const Icirc$2 = "Î"; +const Icy$2 = "И"; +const Idot$2 = "İ"; +const Ifr$2 = "ℑ"; +const Igrav$2 = "Ì"; +const Igrave$2 = "Ì"; +const Im$2 = "ℑ"; +const Imacr$2 = "Ī"; +const ImaginaryI$2 = "ⅈ"; +const Implies$2 = "⇒"; +const Int$2 = "∬"; +const Integral$2 = "∫"; +const Intersection$2 = "⋂"; +const InvisibleComma$2 = "⁣"; +const InvisibleTimes$2 = "⁢"; +const Iogon$2 = "Į"; +const Iopf$2 = "𝕀"; +const Iota$2 = "Ι"; +const Iscr$2 = "ℐ"; +const Itilde$2 = "Ĩ"; +const Iukcy$2 = "І"; +const Ium$2 = "Ï"; +const Iuml$2 = "Ï"; +const Jcirc$2 = "Ĵ"; +const Jcy$2 = "Й"; +const Jfr$2 = "𝔍"; +const Jopf$2 = "𝕁"; +const Jscr$2 = "𝒥"; +const Jsercy$2 = "Ј"; +const Jukcy$2 = "Є"; +const KHcy$2 = "Х"; +const KJcy$2 = "Ќ"; +const Kappa$2 = "Κ"; +const Kcedil$2 = "Ķ"; +const Kcy$2 = "К"; +const Kfr$2 = "𝔎"; +const Kopf$2 = "𝕂"; +const Kscr$2 = "𝒦"; +const LJcy$2 = "Љ"; +const L$2 = "<"; +const LT$2 = "<"; +const Lacute$2 = "Ĺ"; +const Lambda$2 = "Λ"; +const Lang$2 = "⟪"; +const Laplacetrf$2 = "ℒ"; +const Larr$2 = "↞"; +const Lcaron$2 = "Ľ"; +const Lcedil$2 = "Ļ"; +const Lcy$2 = "Л"; +const LeftAngleBracket$2 = "⟨"; +const LeftArrow$2 = "←"; +const LeftArrowBar$2 = "⇤"; +const LeftArrowRightArrow$2 = "⇆"; +const LeftCeiling$2 = "⌈"; +const LeftDoubleBracket$2 = "⟦"; +const LeftDownTeeVector$2 = "⥡"; +const LeftDownVector$2 = "⇃"; +const LeftDownVectorBar$2 = "⥙"; +const LeftFloor$2 = "⌊"; +const LeftRightArrow$2 = "↔"; +const LeftRightVector$2 = "⥎"; +const LeftTee$2 = "⊣"; +const LeftTeeArrow$2 = "↤"; +const LeftTeeVector$2 = "⥚"; +const LeftTriangle$2 = "⊲"; +const LeftTriangleBar$2 = "⧏"; +const LeftTriangleEqual$2 = "⊴"; +const LeftUpDownVector$2 = "⥑"; +const LeftUpTeeVector$2 = "⥠"; +const LeftUpVector$2 = "↿"; +const LeftUpVectorBar$2 = "⥘"; +const LeftVector$2 = "↼"; +const LeftVectorBar$2 = "⥒"; +const Leftarrow$2 = "⇐"; +const Leftrightarrow$2 = "⇔"; +const LessEqualGreater$2 = "⋚"; +const LessFullEqual$2 = "≦"; +const LessGreater$2 = "≶"; +const LessLess$2 = "⪡"; +const LessSlantEqual$2 = "⩽"; +const LessTilde$2 = "≲"; +const Lfr$2 = "𝔏"; +const Ll$2 = "⋘"; +const Lleftarrow$2 = "⇚"; +const Lmidot$2 = "Ŀ"; +const LongLeftArrow$2 = "⟵"; +const LongLeftRightArrow$2 = "⟷"; +const LongRightArrow$2 = "⟶"; +const Longleftarrow$2 = "⟸"; +const Longleftrightarrow$2 = "⟺"; +const Longrightarrow$2 = "⟹"; +const Lopf$2 = "𝕃"; +const LowerLeftArrow$2 = "↙"; +const LowerRightArrow$2 = "↘"; +const Lscr$2 = "ℒ"; +const Lsh$2 = "↰"; +const Lstrok$2 = "Ł"; +const Lt$2 = "≪"; +const Mcy$2 = "М"; +const MediumSpace$2 = " "; +const Mellintrf$2 = "ℳ"; +const Mfr$2 = "𝔐"; +const MinusPlus$2 = "∓"; +const Mopf$2 = "𝕄"; +const Mscr$2 = "ℳ"; +const Mu$2 = "Μ"; +const NJcy$2 = "Њ"; +const Nacute$2 = "Ń"; +const Ncaron$2 = "Ň"; +const Ncedil$2 = "Ņ"; +const Ncy$2 = "Н"; +const NegativeMediumSpace$2 = "​"; +const NegativeThickSpace$2 = "​"; +const NegativeThinSpace$2 = "​"; +const NegativeVeryThinSpace$2 = "​"; +const NestedGreaterGreater$2 = "≫"; +const NestedLessLess$2 = "≪"; +const NewLine$2 = "\n"; +const Nfr$2 = "𝔑"; +const NoBreak$2 = "⁠"; +const NonBreakingSpace$2 = " "; +const Nopf$2 = "ℕ"; +const Not$2 = "⫬"; +const NotCongruent$2 = "≢"; +const NotCupCap$2 = "≭"; +const NotDoubleVerticalBar$2 = "∦"; +const NotElement$2 = "∉"; +const NotEqual$2 = "≠"; +const NotEqualTilde$2 = "≂̸"; +const NotExists$2 = "∄"; +const NotGreater$2 = "≯"; +const NotGreaterEqual$2 = "≱"; +const NotGreaterFullEqual$2 = "≧̸"; +const NotGreaterGreater$2 = "≫̸"; +const NotGreaterLess$2 = "≹"; +const NotGreaterSlantEqual$2 = "⩾̸"; +const NotGreaterTilde$2 = "≵"; +const NotHumpDownHump$2 = "≎̸"; +const NotHumpEqual$2 = "≏̸"; +const NotLeftTriangle$2 = "⋪"; +const NotLeftTriangleBar$2 = "⧏̸"; +const NotLeftTriangleEqual$2 = "⋬"; +const NotLess$2 = "≮"; +const NotLessEqual$2 = "≰"; +const NotLessGreater$2 = "≸"; +const NotLessLess$2 = "≪̸"; +const NotLessSlantEqual$2 = "⩽̸"; +const NotLessTilde$2 = "≴"; +const NotNestedGreaterGreater$2 = "⪢̸"; +const NotNestedLessLess$2 = "⪡̸"; +const NotPrecedes$2 = "⊀"; +const NotPrecedesEqual$2 = "⪯̸"; +const NotPrecedesSlantEqual$2 = "⋠"; +const NotReverseElement$2 = "∌"; +const NotRightTriangle$2 = "⋫"; +const NotRightTriangleBar$2 = "⧐̸"; +const NotRightTriangleEqual$2 = "⋭"; +const NotSquareSubset$2 = "⊏̸"; +const NotSquareSubsetEqual$2 = "⋢"; +const NotSquareSuperset$2 = "⊐̸"; +const NotSquareSupersetEqual$2 = "⋣"; +const NotSubset$2 = "⊂⃒"; +const NotSubsetEqual$2 = "⊈"; +const NotSucceeds$2 = "⊁"; +const NotSucceedsEqual$2 = "⪰̸"; +const NotSucceedsSlantEqual$2 = "⋡"; +const NotSucceedsTilde$2 = "≿̸"; +const NotSuperset$2 = "⊃⃒"; +const NotSupersetEqual$2 = "⊉"; +const NotTilde$2 = "≁"; +const NotTildeEqual$2 = "≄"; +const NotTildeFullEqual$2 = "≇"; +const NotTildeTilde$2 = "≉"; +const NotVerticalBar$2 = "∤"; +const Nscr$2 = "𝒩"; +const Ntild$2 = "Ñ"; +const Ntilde$2 = "Ñ"; +const Nu$2 = "Ν"; +const OElig$2 = "Œ"; +const Oacut$2 = "Ó"; +const Oacute$2 = "Ó"; +const Ocir$2 = "Ô"; +const Ocirc$2 = "Ô"; +const Ocy$2 = "О"; +const Odblac$2 = "Ő"; +const Ofr$2 = "𝔒"; +const Ograv$2 = "Ò"; +const Ograve$2 = "Ò"; +const Omacr$2 = "Ō"; +const Omega$2 = "Ω"; +const Omicron$2 = "Ο"; +const Oopf$2 = "𝕆"; +const OpenCurlyDoubleQuote$2 = "“"; +const OpenCurlyQuote$2 = "‘"; +const Or$2 = "⩔"; +const Oscr$2 = "𝒪"; +const Oslas$2 = "Ø"; +const Oslash$2 = "Ø"; +const Otild$2 = "Õ"; +const Otilde$2 = "Õ"; +const Otimes$2 = "⨷"; +const Oum$2 = "Ö"; +const Ouml$2 = "Ö"; +const OverBar$2 = "‾"; +const OverBrace$2 = "⏞"; +const OverBracket$2 = "⎴"; +const OverParenthesis$2 = "⏜"; +const PartialD$2 = "∂"; +const Pcy$2 = "П"; +const Pfr$2 = "𝔓"; +const Phi$2 = "Φ"; +const Pi$2 = "Π"; +const PlusMinus$2 = "±"; +const Poincareplane$2 = "ℌ"; +const Popf$2 = "ℙ"; +const Pr$2 = "⪻"; +const Precedes$2 = "≺"; +const PrecedesEqual$2 = "⪯"; +const PrecedesSlantEqual$2 = "≼"; +const PrecedesTilde$2 = "≾"; +const Prime$2 = "″"; +const Product$2 = "∏"; +const Proportion$2 = "∷"; +const Proportional$2 = "∝"; +const Pscr$2 = "𝒫"; +const Psi$2 = "Ψ"; +const QUO$2 = "\""; +const QUOT$2 = "\""; +const Qfr$2 = "𝔔"; +const Qopf$2 = "ℚ"; +const Qscr$2 = "𝒬"; +const RBarr$2 = "⤐"; +const RE$2 = "®"; +const REG$2 = "®"; +const Racute$2 = "Ŕ"; +const Rang$2 = "⟫"; +const Rarr$2 = "↠"; +const Rarrtl$2 = "⤖"; +const Rcaron$2 = "Ř"; +const Rcedil$2 = "Ŗ"; +const Rcy$2 = "Р"; +const Re$2 = "ℜ"; +const ReverseElement$2 = "∋"; +const ReverseEquilibrium$2 = "⇋"; +const ReverseUpEquilibrium$2 = "⥯"; +const Rfr$2 = "ℜ"; +const Rho$2 = "Ρ"; +const RightAngleBracket$2 = "⟩"; +const RightArrow$2 = "→"; +const RightArrowBar$2 = "⇥"; +const RightArrowLeftArrow$2 = "⇄"; +const RightCeiling$2 = "⌉"; +const RightDoubleBracket$2 = "⟧"; +const RightDownTeeVector$2 = "⥝"; +const RightDownVector$2 = "⇂"; +const RightDownVectorBar$2 = "⥕"; +const RightFloor$2 = "⌋"; +const RightTee$2 = "⊢"; +const RightTeeArrow$2 = "↦"; +const RightTeeVector$2 = "⥛"; +const RightTriangle$2 = "⊳"; +const RightTriangleBar$2 = "⧐"; +const RightTriangleEqual$2 = "⊵"; +const RightUpDownVector$2 = "⥏"; +const RightUpTeeVector$2 = "⥜"; +const RightUpVector$2 = "↾"; +const RightUpVectorBar$2 = "⥔"; +const RightVector$2 = "⇀"; +const RightVectorBar$2 = "⥓"; +const Rightarrow$2 = "⇒"; +const Ropf$2 = "ℝ"; +const RoundImplies$2 = "⥰"; +const Rrightarrow$2 = "⇛"; +const Rscr$2 = "ℛ"; +const Rsh$2 = "↱"; +const RuleDelayed$2 = "⧴"; +const SHCHcy$2 = "Щ"; +const SHcy$2 = "Ш"; +const SOFTcy$2 = "Ь"; +const Sacute$2 = "Ś"; +const Sc$2 = "⪼"; +const Scaron$2 = "Š"; +const Scedil$2 = "Ş"; +const Scirc$2 = "Ŝ"; +const Scy$2 = "С"; +const Sfr$2 = "𝔖"; +const ShortDownArrow$2 = "↓"; +const ShortLeftArrow$2 = "←"; +const ShortRightArrow$2 = "→"; +const ShortUpArrow$2 = "↑"; +const Sigma$2 = "Σ"; +const SmallCircle$2 = "∘"; +const Sopf$2 = "𝕊"; +const Sqrt$2 = "√"; +const Square$2 = "□"; +const SquareIntersection$2 = "⊓"; +const SquareSubset$2 = "⊏"; +const SquareSubsetEqual$2 = "⊑"; +const SquareSuperset$2 = "⊐"; +const SquareSupersetEqual$2 = "⊒"; +const SquareUnion$2 = "⊔"; +const Sscr$2 = "𝒮"; +const Star$2 = "⋆"; +const Sub$2 = "⋐"; +const Subset$2 = "⋐"; +const SubsetEqual$2 = "⊆"; +const Succeeds$2 = "≻"; +const SucceedsEqual$2 = "⪰"; +const SucceedsSlantEqual$2 = "≽"; +const SucceedsTilde$2 = "≿"; +const SuchThat$2 = "∋"; +const Sum$2 = "∑"; +const Sup$2 = "⋑"; +const Superset$2 = "⊃"; +const SupersetEqual$2 = "⊇"; +const Supset$2 = "⋑"; +const THOR$2 = "Þ"; +const THORN$2 = "Þ"; +const TRADE$2 = "™"; +const TSHcy$2 = "Ћ"; +const TScy$2 = "Ц"; +const Tab$2 = "\t"; +const Tau$2 = "Τ"; +const Tcaron$2 = "Ť"; +const Tcedil$2 = "Ţ"; +const Tcy$2 = "Т"; +const Tfr$2 = "𝔗"; +const Therefore$2 = "∴"; +const Theta$2 = "Θ"; +const ThickSpace$2 = "  "; +const ThinSpace$2 = " "; +const Tilde$2 = "∼"; +const TildeEqual$2 = "≃"; +const TildeFullEqual$2 = "≅"; +const TildeTilde$2 = "≈"; +const Topf$2 = "𝕋"; +const TripleDot$2 = "⃛"; +const Tscr$2 = "𝒯"; +const Tstrok$2 = "Ŧ"; +const Uacut$2 = "Ú"; +const Uacute$2 = "Ú"; +const Uarr$2 = "↟"; +const Uarrocir$2 = "⥉"; +const Ubrcy$2 = "Ў"; +const Ubreve$2 = "Ŭ"; +const Ucir$2 = "Û"; +const Ucirc$2 = "Û"; +const Ucy$2 = "У"; +const Udblac$2 = "Ű"; +const Ufr$2 = "𝔘"; +const Ugrav$2 = "Ù"; +const Ugrave$2 = "Ù"; +const Umacr$2 = "Ū"; +const UnderBar$2 = "_"; +const UnderBrace$2 = "⏟"; +const UnderBracket$2 = "⎵"; +const UnderParenthesis$2 = "⏝"; +const Union$2 = "⋃"; +const UnionPlus$2 = "⊎"; +const Uogon$2 = "Ų"; +const Uopf$2 = "𝕌"; +const UpArrow$2 = "↑"; +const UpArrowBar$2 = "⤒"; +const UpArrowDownArrow$2 = "⇅"; +const UpDownArrow$2 = "↕"; +const UpEquilibrium$2 = "⥮"; +const UpTee$2 = "⊥"; +const UpTeeArrow$2 = "↥"; +const Uparrow$2 = "⇑"; +const Updownarrow$2 = "⇕"; +const UpperLeftArrow$2 = "↖"; +const UpperRightArrow$2 = "↗"; +const Upsi$2 = "ϒ"; +const Upsilon$2 = "Υ"; +const Uring$2 = "Ů"; +const Uscr$2 = "𝒰"; +const Utilde$2 = "Ũ"; +const Uum$2 = "Ü"; +const Uuml$2 = "Ü"; +const VDash$2 = "⊫"; +const Vbar$2 = "⫫"; +const Vcy$2 = "В"; +const Vdash$2 = "⊩"; +const Vdashl$2 = "⫦"; +const Vee$2 = "⋁"; +const Verbar$2 = "‖"; +const Vert$2 = "‖"; +const VerticalBar$2 = "∣"; +const VerticalLine$2 = "|"; +const VerticalSeparator$2 = "❘"; +const VerticalTilde$2 = "≀"; +const VeryThinSpace$2 = " "; +const Vfr$2 = "𝔙"; +const Vopf$2 = "𝕍"; +const Vscr$2 = "𝒱"; +const Vvdash$2 = "⊪"; +const Wcirc$2 = "Ŵ"; +const Wedge$2 = "⋀"; +const Wfr$2 = "𝔚"; +const Wopf$2 = "𝕎"; +const Wscr$2 = "𝒲"; +const Xfr$2 = "𝔛"; +const Xi$2 = "Ξ"; +const Xopf$2 = "𝕏"; +const Xscr$2 = "𝒳"; +const YAcy$2 = "Я"; +const YIcy$2 = "Ї"; +const YUcy$2 = "Ю"; +const Yacut$2 = "Ý"; +const Yacute$2 = "Ý"; +const Ycirc$2 = "Ŷ"; +const Ycy$2 = "Ы"; +const Yfr$2 = "𝔜"; +const Yopf$2 = "𝕐"; +const Yscr$2 = "𝒴"; +const Yuml$2 = "Ÿ"; +const ZHcy$2 = "Ж"; +const Zacute$2 = "Ź"; +const Zcaron$2 = "Ž"; +const Zcy$2 = "З"; +const Zdot$2 = "Ż"; +const ZeroWidthSpace$2 = "​"; +const Zeta$2 = "Ζ"; +const Zfr$2 = "ℨ"; +const Zopf$2 = "ℤ"; +const Zscr$2 = "𝒵"; +const aacut$2 = "á"; +const aacute$2 = "á"; +const abreve$2 = "ă"; +const ac$2 = "∾"; +const acE$2 = "∾̳"; +const acd$2 = "∿"; +const acir$2 = "â"; +const acirc$2 = "â"; +const acut$2 = "´"; +const acute$2 = "´"; +const acy$2 = "а"; +const aeli$2 = "æ"; +const aelig$2 = "æ"; +const af$2 = "⁡"; +const afr$2 = "𝔞"; +const agrav$2 = "à"; +const agrave$2 = "à"; +const alefsym$2 = "ℵ"; +const aleph$2 = "ℵ"; +const alpha$2 = "α"; +const amacr$2 = "ā"; +const amalg$2 = "⨿"; +const am$2 = "&"; +const amp$2 = "&"; +const and$2 = "∧"; +const andand$2 = "⩕"; +const andd$2 = "⩜"; +const andslope$2 = "⩘"; +const andv$2 = "⩚"; +const ang$2 = "∠"; +const ange$2 = "⦤"; +const angle$2 = "∠"; +const angmsd$2 = "∡"; +const angmsdaa$2 = "⦨"; +const angmsdab$2 = "⦩"; +const angmsdac$2 = "⦪"; +const angmsdad$2 = "⦫"; +const angmsdae$2 = "⦬"; +const angmsdaf$2 = "⦭"; +const angmsdag$2 = "⦮"; +const angmsdah$2 = "⦯"; +const angrt$2 = "∟"; +const angrtvb$2 = "⊾"; +const angrtvbd$2 = "⦝"; +const angsph$2 = "∢"; +const angst$2 = "Å"; +const angzarr$2 = "⍼"; +const aogon$2 = "ą"; +const aopf$2 = "𝕒"; +const ap$2 = "≈"; +const apE$2 = "⩰"; +const apacir$2 = "⩯"; +const ape$2 = "≊"; +const apid$2 = "≋"; +const apos$2 = "'"; +const approx$2 = "≈"; +const approxeq$2 = "≊"; +const arin$2 = "å"; +const aring$2 = "å"; +const ascr$2 = "𝒶"; +const ast$2 = "*"; +const asymp$2 = "≈"; +const asympeq$2 = "≍"; +const atild$2 = "ã"; +const atilde$2 = "ã"; +const aum$2 = "ä"; +const auml$2 = "ä"; +const awconint$2 = "∳"; +const awint$2 = "⨑"; +const bNot$2 = "⫭"; +const backcong$2 = "≌"; +const backepsilon$2 = "϶"; +const backprime$2 = "‵"; +const backsim$2 = "∽"; +const backsimeq$2 = "⋍"; +const barvee$2 = "⊽"; +const barwed$2 = "⌅"; +const barwedge$2 = "⌅"; +const bbrk$2 = "⎵"; +const bbrktbrk$2 = "⎶"; +const bcong$2 = "≌"; +const bcy$2 = "б"; +const bdquo$2 = "„"; +const becaus$2 = "∵"; +const because$2 = "∵"; +const bemptyv$2 = "⦰"; +const bepsi$2 = "϶"; +const bernou$2 = "ℬ"; +const beta$2 = "β"; +const beth$2 = "ℶ"; +const between$2 = "≬"; +const bfr$2 = "𝔟"; +const bigcap$2 = "⋂"; +const bigcirc$2 = "◯"; +const bigcup$2 = "⋃"; +const bigodot$2 = "⨀"; +const bigoplus$2 = "⨁"; +const bigotimes$2 = "⨂"; +const bigsqcup$2 = "⨆"; +const bigstar$2 = "★"; +const bigtriangledown$2 = "▽"; +const bigtriangleup$2 = "△"; +const biguplus$2 = "⨄"; +const bigvee$2 = "⋁"; +const bigwedge$2 = "⋀"; +const bkarow$2 = "⤍"; +const blacklozenge$2 = "⧫"; +const blacksquare$2 = "▪"; +const blacktriangle$2 = "▴"; +const blacktriangledown$2 = "▾"; +const blacktriangleleft$2 = "◂"; +const blacktriangleright$2 = "▸"; +const blank$2 = "␣"; +const blk12$2 = "▒"; +const blk14$2 = "░"; +const blk34$2 = "▓"; +const block$2 = "█"; +const bne$2 = "=⃥"; +const bnequiv$2 = "≡⃥"; +const bnot$2 = "⌐"; +const bopf$2 = "𝕓"; +const bot$2 = "⊥"; +const bottom$2 = "⊥"; +const bowtie$2 = "⋈"; +const boxDL$2 = "╗"; +const boxDR$2 = "╔"; +const boxDl$2 = "╖"; +const boxDr$2 = "╓"; +const boxH$2 = "═"; +const boxHD$2 = "╦"; +const boxHU$2 = "╩"; +const boxHd$2 = "╤"; +const boxHu$2 = "╧"; +const boxUL$2 = "╝"; +const boxUR$2 = "╚"; +const boxUl$2 = "╜"; +const boxUr$2 = "╙"; +const boxV$2 = "║"; +const boxVH$2 = "╬"; +const boxVL$2 = "╣"; +const boxVR$2 = "╠"; +const boxVh$2 = "╫"; +const boxVl$2 = "╢"; +const boxVr$2 = "╟"; +const boxbox$2 = "⧉"; +const boxdL$2 = "╕"; +const boxdR$2 = "╒"; +const boxdl$2 = "┐"; +const boxdr$2 = "┌"; +const boxh$2 = "─"; +const boxhD$2 = "╥"; +const boxhU$2 = "╨"; +const boxhd$2 = "┬"; +const boxhu$2 = "┴"; +const boxminus$2 = "⊟"; +const boxplus$2 = "⊞"; +const boxtimes$2 = "⊠"; +const boxuL$2 = "╛"; +const boxuR$2 = "╘"; +const boxul$2 = "┘"; +const boxur$2 = "└"; +const boxv$2 = "│"; +const boxvH$2 = "╪"; +const boxvL$2 = "╡"; +const boxvR$2 = "╞"; +const boxvh$2 = "┼"; +const boxvl$2 = "┤"; +const boxvr$2 = "├"; +const bprime$2 = "‵"; +const breve$2 = "˘"; +const brvba$2 = "¦"; +const brvbar$2 = "¦"; +const bscr$2 = "𝒷"; +const bsemi$2 = "⁏"; +const bsim$2 = "∽"; +const bsime$2 = "⋍"; +const bsol$2 = "\\"; +const bsolb$2 = "⧅"; +const bsolhsub$2 = "⟈"; +const bull$2 = "•"; +const bullet$2 = "•"; +const bump$2 = "≎"; +const bumpE$2 = "⪮"; +const bumpe$2 = "≏"; +const bumpeq$2 = "≏"; +const cacute$2 = "ć"; +const cap$2 = "∩"; +const capand$2 = "⩄"; +const capbrcup$2 = "⩉"; +const capcap$2 = "⩋"; +const capcup$2 = "⩇"; +const capdot$2 = "⩀"; +const caps$2 = "∩︀"; +const caret$2 = "⁁"; +const caron$2 = "ˇ"; +const ccaps$2 = "⩍"; +const ccaron$2 = "č"; +const ccedi$2 = "ç"; +const ccedil$2 = "ç"; +const ccirc$2 = "ĉ"; +const ccups$2 = "⩌"; +const ccupssm$2 = "⩐"; +const cdot$2 = "ċ"; +const cedi$2 = "¸"; +const cedil$2 = "¸"; +const cemptyv$2 = "⦲"; +const cen$2 = "¢"; +const cent$2 = "¢"; +const centerdot$2 = "·"; +const cfr$2 = "𝔠"; +const chcy$2 = "ч"; +const check$3 = "✓"; +const checkmark$2 = "✓"; +const chi$2 = "χ"; +const cir$2 = "○"; +const cirE$2 = "⧃"; +const circ$2 = "ˆ"; +const circeq$2 = "≗"; +const circlearrowleft$2 = "↺"; +const circlearrowright$2 = "↻"; +const circledR$2 = "®"; +const circledS$2 = "Ⓢ"; +const circledast$2 = "⊛"; +const circledcirc$2 = "⊚"; +const circleddash$2 = "⊝"; +const cire$2 = "≗"; +const cirfnint$2 = "⨐"; +const cirmid$2 = "⫯"; +const cirscir$2 = "⧂"; +const clubs$2 = "♣"; +const clubsuit$2 = "♣"; +const colon$2 = ":"; +const colone$2 = "≔"; +const coloneq$2 = "≔"; +const comma$2 = ","; +const commat$2 = "@"; +const comp$2 = "∁"; +const compfn$2 = "∘"; +const complement$2 = "∁"; +const complexes$2 = "ℂ"; +const cong$2 = "≅"; +const congdot$2 = "⩭"; +const conint$2 = "∮"; +const copf$2 = "𝕔"; +const coprod$2 = "∐"; +const cop$2 = "©"; +const copy$2 = "©"; +const copysr$2 = "℗"; +const crarr$2 = "↵"; +const cross$2 = "✗"; +const cscr$2 = "𝒸"; +const csub$2 = "⫏"; +const csube$2 = "⫑"; +const csup$2 = "⫐"; +const csupe$2 = "⫒"; +const ctdot$2 = "⋯"; +const cudarrl$2 = "⤸"; +const cudarrr$2 = "⤵"; +const cuepr$2 = "⋞"; +const cuesc$2 = "⋟"; +const cularr$2 = "↶"; +const cularrp$2 = "⤽"; +const cup$2 = "∪"; +const cupbrcap$2 = "⩈"; +const cupcap$2 = "⩆"; +const cupcup$2 = "⩊"; +const cupdot$2 = "⊍"; +const cupor$2 = "⩅"; +const cups$2 = "∪︀"; +const curarr$2 = "↷"; +const curarrm$2 = "⤼"; +const curlyeqprec$2 = "⋞"; +const curlyeqsucc$2 = "⋟"; +const curlyvee$2 = "⋎"; +const curlywedge$2 = "⋏"; +const curre$2 = "¤"; +const curren$2 = "¤"; +const curvearrowleft$2 = "↶"; +const curvearrowright$2 = "↷"; +const cuvee$2 = "⋎"; +const cuwed$2 = "⋏"; +const cwconint$2 = "∲"; +const cwint$2 = "∱"; +const cylcty$2 = "⌭"; +const dArr$2 = "⇓"; +const dHar$2 = "⥥"; +const dagger$2 = "†"; +const daleth$2 = "ℸ"; +const darr$2 = "↓"; +const dash$2 = "‐"; +const dashv$2 = "⊣"; +const dbkarow$2 = "⤏"; +const dblac$2 = "˝"; +const dcaron$2 = "ď"; +const dcy$2 = "д"; +const dd$2 = "ⅆ"; +const ddagger$2 = "‡"; +const ddarr$2 = "⇊"; +const ddotseq$2 = "⩷"; +const de$2 = "°"; +const deg$2 = "°"; +const delta$2 = "δ"; +const demptyv$2 = "⦱"; +const dfisht$2 = "⥿"; +const dfr$2 = "𝔡"; +const dharl$2 = "⇃"; +const dharr$2 = "⇂"; +const diam$2 = "⋄"; +const diamond$2 = "⋄"; +const diamondsuit$2 = "♦"; +const diams$2 = "♦"; +const die$2 = "¨"; +const digamma$2 = "ϝ"; +const disin$2 = "⋲"; +const div$2 = "÷"; +const divid$2 = "÷"; +const divide$2 = "÷"; +const divideontimes$2 = "⋇"; +const divonx$2 = "⋇"; +const djcy$2 = "ђ"; +const dlcorn$2 = "⌞"; +const dlcrop$2 = "⌍"; +const dollar$2 = "$"; +const dopf$2 = "𝕕"; +const dot$2 = "˙"; +const doteq$2 = "≐"; +const doteqdot$2 = "≑"; +const dotminus$2 = "∸"; +const dotplus$2 = "∔"; +const dotsquare$2 = "⊡"; +const doublebarwedge$2 = "⌆"; +const downarrow$2 = "↓"; +const downdownarrows$2 = "⇊"; +const downharpoonleft$2 = "⇃"; +const downharpoonright$2 = "⇂"; +const drbkarow$2 = "⤐"; +const drcorn$2 = "⌟"; +const drcrop$2 = "⌌"; +const dscr$2 = "𝒹"; +const dscy$2 = "ѕ"; +const dsol$2 = "⧶"; +const dstrok$2 = "đ"; +const dtdot$2 = "⋱"; +const dtri$2 = "▿"; +const dtrif$2 = "▾"; +const duarr$2 = "⇵"; +const duhar$2 = "⥯"; +const dwangle$2 = "⦦"; +const dzcy$2 = "џ"; +const dzigrarr$2 = "⟿"; +const eDDot$2 = "⩷"; +const eDot$2 = "≑"; +const eacut$2 = "é"; +const eacute$2 = "é"; +const easter$2 = "⩮"; +const ecaron$2 = "ě"; +const ecir$2 = "ê"; +const ecirc$2 = "ê"; +const ecolon$2 = "≕"; +const ecy$2 = "э"; +const edot$2 = "ė"; +const ee$2 = "ⅇ"; +const efDot$2 = "≒"; +const efr$2 = "𝔢"; +const eg$2 = "⪚"; +const egrav$2 = "è"; +const egrave$2 = "è"; +const egs$2 = "⪖"; +const egsdot$2 = "⪘"; +const el$2 = "⪙"; +const elinters$2 = "⏧"; +const ell$2 = "ℓ"; +const els$2 = "⪕"; +const elsdot$2 = "⪗"; +const emacr$2 = "ē"; +const empty$2 = "∅"; +const emptyset$2 = "∅"; +const emptyv$2 = "∅"; +const emsp13$2 = " "; +const emsp14$2 = " "; +const emsp$2 = " "; +const eng$2 = "ŋ"; +const ensp$2 = " "; +const eogon$2 = "ę"; +const eopf$2 = "𝕖"; +const epar$2 = "⋕"; +const eparsl$2 = "⧣"; +const eplus$2 = "⩱"; +const epsi$2 = "ε"; +const epsilon$2 = "ε"; +const epsiv$2 = "ϵ"; +const eqcirc$2 = "≖"; +const eqcolon$2 = "≕"; +const eqsim$2 = "≂"; +const eqslantgtr$2 = "⪖"; +const eqslantless$2 = "⪕"; +const equals$2 = "="; +const equest$2 = "≟"; +const equiv$2 = "≡"; +const equivDD$2 = "⩸"; +const eqvparsl$2 = "⧥"; +const erDot$2 = "≓"; +const erarr$2 = "⥱"; +const escr$2 = "ℯ"; +const esdot$2 = "≐"; +const esim$2 = "≂"; +const eta$2 = "η"; +const et$2 = "ð"; +const eth$2 = "ð"; +const eum$2 = "ë"; +const euml$2 = "ë"; +const euro$2 = "€"; +const excl$2 = "!"; +const exist$2 = "∃"; +const expectation$2 = "ℰ"; +const exponentiale$2 = "ⅇ"; +const fallingdotseq$2 = "≒"; +const fcy$2 = "ф"; +const female$2 = "♀"; +const ffilig$2 = "ffi"; +const fflig$2 = "ff"; +const ffllig$2 = "ffl"; +const ffr$2 = "𝔣"; +const filig$2 = "fi"; +const fjlig$2 = "fj"; +const flat$2 = "♭"; +const fllig$2 = "fl"; +const fltns$2 = "▱"; +const fnof$2 = "ƒ"; +const fopf$2 = "𝕗"; +const forall$2 = "∀"; +const fork$2 = "⋔"; +const forkv$2 = "⫙"; +const fpartint$2 = "⨍"; +const frac1$2 = "¼"; +const frac12$2 = "½"; +const frac13$2 = "⅓"; +const frac14$2 = "¼"; +const frac15$2 = "⅕"; +const frac16$2 = "⅙"; +const frac18$2 = "⅛"; +const frac23$2 = "⅔"; +const frac25$2 = "⅖"; +const frac3$2 = "¾"; +const frac34$2 = "¾"; +const frac35$2 = "⅗"; +const frac38$2 = "⅜"; +const frac45$2 = "⅘"; +const frac56$2 = "⅚"; +const frac58$2 = "⅝"; +const frac78$2 = "⅞"; +const frasl$2 = "⁄"; +const frown$2 = "⌢"; +const fscr$2 = "𝒻"; +const gE$2 = "≧"; +const gEl$2 = "⪌"; +const gacute$2 = "ǵ"; +const gamma$2 = "γ"; +const gammad$2 = "ϝ"; +const gap$2 = "⪆"; +const gbreve$2 = "ğ"; +const gcirc$2 = "ĝ"; +const gcy$2 = "г"; +const gdot$2 = "ġ"; +const ge$2 = "≥"; +const gel$2 = "⋛"; +const geq$2 = "≥"; +const geqq$2 = "≧"; +const geqslant$2 = "⩾"; +const ges$2 = "⩾"; +const gescc$2 = "⪩"; +const gesdot$2 = "⪀"; +const gesdoto$2 = "⪂"; +const gesdotol$2 = "⪄"; +const gesl$2 = "⋛︀"; +const gesles$2 = "⪔"; +const gfr$2 = "𝔤"; +const gg$2 = "≫"; +const ggg$2 = "⋙"; +const gimel$2 = "ℷ"; +const gjcy$2 = "ѓ"; +const gl$2 = "≷"; +const glE$2 = "⪒"; +const gla$2 = "⪥"; +const glj$2 = "⪤"; +const gnE$2 = "≩"; +const gnap$2 = "⪊"; +const gnapprox$2 = "⪊"; +const gne$2 = "⪈"; +const gneq$2 = "⪈"; +const gneqq$2 = "≩"; +const gnsim$2 = "⋧"; +const gopf$2 = "𝕘"; +const grave$2 = "`"; +const gscr$2 = "ℊ"; +const gsim$2 = "≳"; +const gsime$2 = "⪎"; +const gsiml$2 = "⪐"; +const g$2 = ">"; +const gt$2 = ">"; +const gtcc$2 = "⪧"; +const gtcir$2 = "⩺"; +const gtdot$2 = "⋗"; +const gtlPar$2 = "⦕"; +const gtquest$2 = "⩼"; +const gtrapprox$2 = "⪆"; +const gtrarr$2 = "⥸"; +const gtrdot$2 = "⋗"; +const gtreqless$2 = "⋛"; +const gtreqqless$2 = "⪌"; +const gtrless$2 = "≷"; +const gtrsim$2 = "≳"; +const gvertneqq$2 = "≩︀"; +const gvnE$2 = "≩︀"; +const hArr$2 = "⇔"; +const hairsp$2 = " "; +const half$2 = "½"; +const hamilt$2 = "ℋ"; +const hardcy$2 = "ъ"; +const harr$2 = "↔"; +const harrcir$2 = "⥈"; +const harrw$2 = "↭"; +const hbar$2 = "ℏ"; +const hcirc$2 = "ĥ"; +const hearts$2 = "♥"; +const heartsuit$2 = "♥"; +const hellip$2 = "…"; +const hercon$2 = "⊹"; +const hfr$2 = "𝔥"; +const hksearow$2 = "⤥"; +const hkswarow$2 = "⤦"; +const hoarr$2 = "⇿"; +const homtht$2 = "∻"; +const hookleftarrow$2 = "↩"; +const hookrightarrow$2 = "↪"; +const hopf$2 = "𝕙"; +const horbar$2 = "―"; +const hscr$2 = "𝒽"; +const hslash$2 = "ℏ"; +const hstrok$2 = "ħ"; +const hybull$2 = "⁃"; +const hyphen$2 = "‐"; +const iacut$2 = "í"; +const iacute$2 = "í"; +const ic$2 = "⁣"; +const icir$2 = "î"; +const icirc$2 = "î"; +const icy$2 = "и"; +const iecy$2 = "е"; +const iexc$2 = "¡"; +const iexcl$2 = "¡"; +const iff$2 = "⇔"; +const ifr$2 = "𝔦"; +const igrav$2 = "ì"; +const igrave$2 = "ì"; +const ii$2 = "ⅈ"; +const iiiint$2 = "⨌"; +const iiint$2 = "∭"; +const iinfin$2 = "⧜"; +const iiota$2 = "℩"; +const ijlig$2 = "ij"; +const imacr$2 = "ī"; +const image$3 = "ℑ"; +const imagline$2 = "ℐ"; +const imagpart$2 = "ℑ"; +const imath$2 = "ı"; +const imof$2 = "⊷"; +const imped$2 = "Ƶ"; +const incare$2 = "℅"; +const infin$2 = "∞"; +const infintie$2 = "⧝"; +const inodot$2 = "ı"; +const int$3 = "∫"; +const intcal$2 = "⊺"; +const integers$2 = "ℤ"; +const intercal$2 = "⊺"; +const intlarhk$2 = "⨗"; +const intprod$2 = "⨼"; +const iocy$2 = "ё"; +const iogon$2 = "į"; +const iopf$2 = "𝕚"; +const iota$2 = "ι"; +const iprod$2 = "⨼"; +const iques$2 = "¿"; +const iquest$2 = "¿"; +const iscr$2 = "𝒾"; +const isin$2 = "∈"; +const isinE$2 = "⋹"; +const isindot$2 = "⋵"; +const isins$2 = "⋴"; +const isinsv$2 = "⋳"; +const isinv$2 = "∈"; +const it$2 = "⁢"; +const itilde$2 = "ĩ"; +const iukcy$2 = "і"; +const ium$2 = "ï"; +const iuml$2 = "ï"; +const jcirc$2 = "ĵ"; +const jcy$2 = "й"; +const jfr$2 = "𝔧"; +const jmath$2 = "ȷ"; +const jopf$2 = "𝕛"; +const jscr$2 = "𝒿"; +const jsercy$2 = "ј"; +const jukcy$2 = "є"; +const kappa$2 = "κ"; +const kappav$2 = "ϰ"; +const kcedil$2 = "ķ"; +const kcy$2 = "к"; +const kfr$2 = "𝔨"; +const kgreen$2 = "ĸ"; +const khcy$2 = "х"; +const kjcy$2 = "ќ"; +const kopf$2 = "𝕜"; +const kscr$2 = "𝓀"; +const lAarr$2 = "⇚"; +const lArr$2 = "⇐"; +const lAtail$2 = "⤛"; +const lBarr$2 = "⤎"; +const lE$2 = "≦"; +const lEg$2 = "⪋"; +const lHar$2 = "⥢"; +const lacute$2 = "ĺ"; +const laemptyv$2 = "⦴"; +const lagran$2 = "ℒ"; +const lambda$2 = "λ"; +const lang$2 = "⟨"; +const langd$2 = "⦑"; +const langle$2 = "⟨"; +const lap$2 = "⪅"; +const laqu$2 = "«"; +const laquo$2 = "«"; +const larr$2 = "←"; +const larrb$2 = "⇤"; +const larrbfs$2 = "⤟"; +const larrfs$2 = "⤝"; +const larrhk$2 = "↩"; +const larrlp$2 = "↫"; +const larrpl$2 = "⤹"; +const larrsim$2 = "⥳"; +const larrtl$2 = "↢"; +const lat$2 = "⪫"; +const latail$2 = "⤙"; +const late$2 = "⪭"; +const lates$2 = "⪭︀"; +const lbarr$2 = "⤌"; +const lbbrk$2 = "❲"; +const lbrace$2 = "{"; +const lbrack$2 = "["; +const lbrke$2 = "⦋"; +const lbrksld$2 = "⦏"; +const lbrkslu$2 = "⦍"; +const lcaron$2 = "ľ"; +const lcedil$2 = "ļ"; +const lceil$2 = "⌈"; +const lcub$2 = "{"; +const lcy$2 = "л"; +const ldca$2 = "⤶"; +const ldquo$2 = "“"; +const ldquor$2 = "„"; +const ldrdhar$2 = "⥧"; +const ldrushar$2 = "⥋"; +const ldsh$2 = "↲"; +const le$2 = "≤"; +const leftarrow$2 = "←"; +const leftarrowtail$2 = "↢"; +const leftharpoondown$2 = "↽"; +const leftharpoonup$2 = "↼"; +const leftleftarrows$2 = "⇇"; +const leftrightarrow$2 = "↔"; +const leftrightarrows$2 = "⇆"; +const leftrightharpoons$2 = "⇋"; +const leftrightsquigarrow$2 = "↭"; +const leftthreetimes$2 = "⋋"; +const leg$2 = "⋚"; +const leq$2 = "≤"; +const leqq$2 = "≦"; +const leqslant$2 = "⩽"; +const les$2 = "⩽"; +const lescc$2 = "⪨"; +const lesdot$2 = "⩿"; +const lesdoto$2 = "⪁"; +const lesdotor$2 = "⪃"; +const lesg$2 = "⋚︀"; +const lesges$2 = "⪓"; +const lessapprox$2 = "⪅"; +const lessdot$2 = "⋖"; +const lesseqgtr$2 = "⋚"; +const lesseqqgtr$2 = "⪋"; +const lessgtr$2 = "≶"; +const lesssim$2 = "≲"; +const lfisht$2 = "⥼"; +const lfloor$2 = "⌊"; +const lfr$2 = "𝔩"; +const lg$2 = "≶"; +const lgE$2 = "⪑"; +const lhard$2 = "↽"; +const lharu$2 = "↼"; +const lharul$2 = "⥪"; +const lhblk$2 = "▄"; +const ljcy$2 = "љ"; +const ll$2 = "≪"; +const llarr$2 = "⇇"; +const llcorner$2 = "⌞"; +const llhard$2 = "⥫"; +const lltri$2 = "◺"; +const lmidot$2 = "ŀ"; +const lmoust$2 = "⎰"; +const lmoustache$2 = "⎰"; +const lnE$2 = "≨"; +const lnap$2 = "⪉"; +const lnapprox$2 = "⪉"; +const lne$2 = "⪇"; +const lneq$2 = "⪇"; +const lneqq$2 = "≨"; +const lnsim$2 = "⋦"; +const loang$2 = "⟬"; +const loarr$2 = "⇽"; +const lobrk$2 = "⟦"; +const longleftarrow$2 = "⟵"; +const longleftrightarrow$2 = "⟷"; +const longmapsto$2 = "⟼"; +const longrightarrow$2 = "⟶"; +const looparrowleft$2 = "↫"; +const looparrowright$2 = "↬"; +const lopar$2 = "⦅"; +const lopf$2 = "𝕝"; +const loplus$2 = "⨭"; +const lotimes$2 = "⨴"; +const lowast$2 = "∗"; +const lowbar$2 = "_"; +const loz$2 = "◊"; +const lozenge$2 = "◊"; +const lozf$2 = "⧫"; +const lpar$2 = "("; +const lparlt$2 = "⦓"; +const lrarr$2 = "⇆"; +const lrcorner$2 = "⌟"; +const lrhar$2 = "⇋"; +const lrhard$2 = "⥭"; +const lrm$2 = "‎"; +const lrtri$2 = "⊿"; +const lsaquo$2 = "‹"; +const lscr$2 = "𝓁"; +const lsh$2 = "↰"; +const lsim$2 = "≲"; +const lsime$2 = "⪍"; +const lsimg$2 = "⪏"; +const lsqb$2 = "["; +const lsquo$2 = "‘"; +const lsquor$2 = "‚"; +const lstrok$2 = "ł"; +const l$2 = "<"; +const lt$3 = "<"; +const ltcc$2 = "⪦"; +const ltcir$2 = "⩹"; +const ltdot$2 = "⋖"; +const lthree$2 = "⋋"; +const ltimes$2 = "⋉"; +const ltlarr$2 = "⥶"; +const ltquest$2 = "⩻"; +const ltrPar$2 = "⦖"; +const ltri$2 = "◃"; +const ltrie$2 = "⊴"; +const ltrif$2 = "◂"; +const lurdshar$2 = "⥊"; +const luruhar$2 = "⥦"; +const lvertneqq$2 = "≨︀"; +const lvnE$2 = "≨︀"; +const mDDot$2 = "∺"; +const mac$2 = "¯"; +const macr$2 = "¯"; +const male$2 = "♂"; +const malt$2 = "✠"; +const maltese$2 = "✠"; +const map$5 = "↦"; +const mapsto$2 = "↦"; +const mapstodown$2 = "↧"; +const mapstoleft$2 = "↤"; +const mapstoup$2 = "↥"; +const marker$2 = "▮"; +const mcomma$2 = "⨩"; +const mcy$2 = "м"; +const mdash$2 = "—"; +const measuredangle$2 = "∡"; +const mfr$2 = "𝔪"; +const mho$2 = "℧"; +const micr$2 = "µ"; +const micro$2 = "µ"; +const mid$2 = "∣"; +const midast$2 = "*"; +const midcir$2 = "⫰"; +const middo$2 = "·"; +const middot$2 = "·"; +const minus$2 = "−"; +const minusb$2 = "⊟"; +const minusd$2 = "∸"; +const minusdu$2 = "⨪"; +const mlcp$2 = "⫛"; +const mldr$2 = "…"; +const mnplus$2 = "∓"; +const models$2 = "⊧"; +const mopf$2 = "𝕞"; +const mp$2 = "∓"; +const mscr$2 = "𝓂"; +const mstpos$2 = "∾"; +const mu$2 = "μ"; +const multimap$2 = "⊸"; +const mumap$2 = "⊸"; +const nGg$2 = "⋙̸"; +const nGt$2 = "≫⃒"; +const nGtv$2 = "≫̸"; +const nLeftarrow$2 = "⇍"; +const nLeftrightarrow$2 = "⇎"; +const nLl$2 = "⋘̸"; +const nLt$2 = "≪⃒"; +const nLtv$2 = "≪̸"; +const nRightarrow$2 = "⇏"; +const nVDash$2 = "⊯"; +const nVdash$2 = "⊮"; +const nabla$2 = "∇"; +const nacute$2 = "ń"; +const nang$2 = "∠⃒"; +const nap$2 = "≉"; +const napE$2 = "⩰̸"; +const napid$2 = "≋̸"; +const napos$2 = "ʼn"; +const napprox$2 = "≉"; +const natur$2 = "♮"; +const natural$2 = "♮"; +const naturals$2 = "ℕ"; +const nbs$2 = " "; +const nbsp$2 = " "; +const nbump$2 = "≎̸"; +const nbumpe$2 = "≏̸"; +const ncap$2 = "⩃"; +const ncaron$2 = "ň"; +const ncedil$2 = "ņ"; +const ncong$2 = "≇"; +const ncongdot$2 = "⩭̸"; +const ncup$2 = "⩂"; +const ncy$2 = "н"; +const ndash$2 = "–"; +const ne$2 = "≠"; +const neArr$2 = "⇗"; +const nearhk$2 = "⤤"; +const nearr$2 = "↗"; +const nearrow$2 = "↗"; +const nedot$2 = "≐̸"; +const nequiv$2 = "≢"; +const nesear$2 = "⤨"; +const nesim$2 = "≂̸"; +const nexist$2 = "∄"; +const nexists$2 = "∄"; +const nfr$2 = "𝔫"; +const ngE$2 = "≧̸"; +const nge$2 = "≱"; +const ngeq$2 = "≱"; +const ngeqq$2 = "≧̸"; +const ngeqslant$2 = "⩾̸"; +const nges$2 = "⩾̸"; +const ngsim$2 = "≵"; +const ngt$2 = "≯"; +const ngtr$2 = "≯"; +const nhArr$2 = "⇎"; +const nharr$2 = "↮"; +const nhpar$2 = "⫲"; +const ni$2 = "∋"; +const nis$2 = "⋼"; +const nisd$2 = "⋺"; +const niv$2 = "∋"; +const njcy$2 = "њ"; +const nlArr$2 = "⇍"; +const nlE$2 = "≦̸"; +const nlarr$2 = "↚"; +const nldr$2 = "‥"; +const nle$2 = "≰"; +const nleftarrow$2 = "↚"; +const nleftrightarrow$2 = "↮"; +const nleq$2 = "≰"; +const nleqq$2 = "≦̸"; +const nleqslant$2 = "⩽̸"; +const nles$2 = "⩽̸"; +const nless$2 = "≮"; +const nlsim$2 = "≴"; +const nlt$2 = "≮"; +const nltri$2 = "⋪"; +const nltrie$2 = "⋬"; +const nmid$2 = "∤"; +const nopf$2 = "𝕟"; +const no$2 = "¬"; +const not$2 = "¬"; +const notin$2 = "∉"; +const notinE$2 = "⋹̸"; +const notindot$2 = "⋵̸"; +const notinva$2 = "∉"; +const notinvb$2 = "⋷"; +const notinvc$2 = "⋶"; +const notni$2 = "∌"; +const notniva$2 = "∌"; +const notnivb$2 = "⋾"; +const notnivc$2 = "⋽"; +const npar$2 = "∦"; +const nparallel$2 = "∦"; +const nparsl$2 = "⫽⃥"; +const npart$2 = "∂̸"; +const npolint$2 = "⨔"; +const npr$2 = "⊀"; +const nprcue$2 = "⋠"; +const npre$2 = "⪯̸"; +const nprec$2 = "⊀"; +const npreceq$2 = "⪯̸"; +const nrArr$2 = "⇏"; +const nrarr$2 = "↛"; +const nrarrc$2 = "⤳̸"; +const nrarrw$2 = "↝̸"; +const nrightarrow$2 = "↛"; +const nrtri$2 = "⋫"; +const nrtrie$2 = "⋭"; +const nsc$2 = "⊁"; +const nsccue$2 = "⋡"; +const nsce$2 = "⪰̸"; +const nscr$2 = "𝓃"; +const nshortmid$2 = "∤"; +const nshortparallel$2 = "∦"; +const nsim$2 = "≁"; +const nsime$2 = "≄"; +const nsimeq$2 = "≄"; +const nsmid$2 = "∤"; +const nspar$2 = "∦"; +const nsqsube$2 = "⋢"; +const nsqsupe$2 = "⋣"; +const nsub$2 = "⊄"; +const nsubE$2 = "⫅̸"; +const nsube$2 = "⊈"; +const nsubset$2 = "⊂⃒"; +const nsubseteq$2 = "⊈"; +const nsubseteqq$2 = "⫅̸"; +const nsucc$2 = "⊁"; +const nsucceq$2 = "⪰̸"; +const nsup$2 = "⊅"; +const nsupE$2 = "⫆̸"; +const nsupe$2 = "⊉"; +const nsupset$2 = "⊃⃒"; +const nsupseteq$2 = "⊉"; +const nsupseteqq$2 = "⫆̸"; +const ntgl$2 = "≹"; +const ntild$2 = "ñ"; +const ntilde$2 = "ñ"; +const ntlg$2 = "≸"; +const ntriangleleft$2 = "⋪"; +const ntrianglelefteq$2 = "⋬"; +const ntriangleright$2 = "⋫"; +const ntrianglerighteq$2 = "⋭"; +const nu$2 = "ν"; +const num$2 = "#"; +const numero$2 = "№"; +const numsp$2 = " "; +const nvDash$2 = "⊭"; +const nvHarr$2 = "⤄"; +const nvap$2 = "≍⃒"; +const nvdash$2 = "⊬"; +const nvge$2 = "≥⃒"; +const nvgt$2 = ">⃒"; +const nvinfin$2 = "⧞"; +const nvlArr$2 = "⤂"; +const nvle$2 = "≤⃒"; +const nvlt$2 = "<⃒"; +const nvltrie$2 = "⊴⃒"; +const nvrArr$2 = "⤃"; +const nvrtrie$2 = "⊵⃒"; +const nvsim$2 = "∼⃒"; +const nwArr$2 = "⇖"; +const nwarhk$2 = "⤣"; +const nwarr$2 = "↖"; +const nwarrow$2 = "↖"; +const nwnear$2 = "⤧"; +const oS$2 = "Ⓢ"; +const oacut$2 = "ó"; +const oacute$2 = "ó"; +const oast$2 = "⊛"; +const ocir$2 = "ô"; +const ocirc$2 = "ô"; +const ocy$2 = "о"; +const odash$2 = "⊝"; +const odblac$2 = "ő"; +const odiv$2 = "⨸"; +const odot$2 = "⊙"; +const odsold$2 = "⦼"; +const oelig$2 = "œ"; +const ofcir$2 = "⦿"; +const ofr$2 = "𝔬"; +const ogon$2 = "˛"; +const ograv$2 = "ò"; +const ograve$2 = "ò"; +const ogt$2 = "⧁"; +const ohbar$2 = "⦵"; +const ohm$2 = "Ω"; +const oint$2 = "∮"; +const olarr$2 = "↺"; +const olcir$2 = "⦾"; +const olcross$2 = "⦻"; +const oline$2 = "‾"; +const olt$2 = "⧀"; +const omacr$2 = "ō"; +const omega$2 = "ω"; +const omicron$2 = "ο"; +const omid$2 = "⦶"; +const ominus$2 = "⊖"; +const oopf$2 = "𝕠"; +const opar$2 = "⦷"; +const operp$2 = "⦹"; +const oplus$2 = "⊕"; +const or$2 = "∨"; +const orarr$2 = "↻"; +const ord$2 = "º"; +const order$2 = "ℴ"; +const orderof$2 = "ℴ"; +const ordf$2 = "ª"; +const ordm$2 = "º"; +const origof$2 = "⊶"; +const oror$2 = "⩖"; +const orslope$2 = "⩗"; +const orv$2 = "⩛"; +const oscr$2 = "ℴ"; +const oslas$2 = "ø"; +const oslash$2 = "ø"; +const osol$2 = "⊘"; +const otild$2 = "õ"; +const otilde$2 = "õ"; +const otimes$2 = "⊗"; +const otimesas$2 = "⨶"; +const oum$2 = "ö"; +const ouml$2 = "ö"; +const ovbar$2 = "⌽"; +const par$2 = "¶"; +const para$2 = "¶"; +const parallel$2 = "∥"; +const parsim$2 = "⫳"; +const parsl$2 = "⫽"; +const part$2 = "∂"; +const pcy$2 = "п"; +const percnt$2 = "%"; +const period$2 = "."; +const permil$2 = "‰"; +const perp$2 = "⊥"; +const pertenk$2 = "‱"; +const pfr$2 = "𝔭"; +const phi$2 = "φ"; +const phiv$2 = "ϕ"; +const phmmat$2 = "ℳ"; +const phone$2 = "☎"; +const pi$2 = "π"; +const pitchfork$2 = "⋔"; +const piv$2 = "ϖ"; +const planck$2 = "ℏ"; +const planckh$2 = "ℎ"; +const plankv$2 = "ℏ"; +const plus$2 = "+"; +const plusacir$2 = "⨣"; +const plusb$2 = "⊞"; +const pluscir$2 = "⨢"; +const plusdo$2 = "∔"; +const plusdu$2 = "⨥"; +const pluse$2 = "⩲"; +const plusm$2 = "±"; +const plusmn$2 = "±"; +const plussim$2 = "⨦"; +const plustwo$2 = "⨧"; +const pm$2 = "±"; +const pointint$2 = "⨕"; +const popf$2 = "𝕡"; +const poun$2 = "£"; +const pound$2 = "£"; +const pr$2 = "≺"; +const prE$2 = "⪳"; +const prap$2 = "⪷"; +const prcue$2 = "≼"; +const pre$2 = "⪯"; +const prec$2 = "≺"; +const precapprox$2 = "⪷"; +const preccurlyeq$2 = "≼"; +const preceq$2 = "⪯"; +const precnapprox$2 = "⪹"; +const precneqq$2 = "⪵"; +const precnsim$2 = "⋨"; +const precsim$2 = "≾"; +const prime$2 = "′"; +const primes$2 = "ℙ"; +const prnE$2 = "⪵"; +const prnap$2 = "⪹"; +const prnsim$2 = "⋨"; +const prod$2 = "∏"; +const profalar$2 = "⌮"; +const profline$2 = "⌒"; +const profsurf$2 = "⌓"; +const prop$2 = "∝"; +const propto$2 = "∝"; +const prsim$2 = "≾"; +const prurel$2 = "⊰"; +const pscr$2 = "𝓅"; +const psi$2 = "ψ"; +const puncsp$2 = " "; +const qfr$2 = "𝔮"; +const qint$2 = "⨌"; +const qopf$2 = "𝕢"; +const qprime$2 = "⁗"; +const qscr$2 = "𝓆"; +const quaternions$2 = "ℍ"; +const quatint$2 = "⨖"; +const quest$2 = "?"; +const questeq$2 = "≟"; +const quo$2 = "\""; +const quot$2 = "\""; +const rAarr$2 = "⇛"; +const rArr$2 = "⇒"; +const rAtail$2 = "⤜"; +const rBarr$2 = "⤏"; +const rHar$2 = "⥤"; +const race$2 = "∽̱"; +const racute$2 = "ŕ"; +const radic$2 = "√"; +const raemptyv$2 = "⦳"; +const rang$2 = "⟩"; +const rangd$2 = "⦒"; +const range$2 = "⦥"; +const rangle$2 = "⟩"; +const raqu$2 = "»"; +const raquo$2 = "»"; +const rarr$2 = "→"; +const rarrap$2 = "⥵"; +const rarrb$2 = "⇥"; +const rarrbfs$2 = "⤠"; +const rarrc$2 = "⤳"; +const rarrfs$2 = "⤞"; +const rarrhk$2 = "↪"; +const rarrlp$2 = "↬"; +const rarrpl$2 = "⥅"; +const rarrsim$2 = "⥴"; +const rarrtl$2 = "↣"; +const rarrw$2 = "↝"; +const ratail$2 = "⤚"; +const ratio$2 = "∶"; +const rationals$2 = "ℚ"; +const rbarr$2 = "⤍"; +const rbbrk$2 = "❳"; +const rbrace$2 = "}"; +const rbrack$2 = "]"; +const rbrke$2 = "⦌"; +const rbrksld$2 = "⦎"; +const rbrkslu$2 = "⦐"; +const rcaron$2 = "ř"; +const rcedil$2 = "ŗ"; +const rceil$2 = "⌉"; +const rcub$2 = "}"; +const rcy$2 = "р"; +const rdca$2 = "⤷"; +const rdldhar$2 = "⥩"; +const rdquo$2 = "”"; +const rdquor$2 = "”"; +const rdsh$2 = "↳"; +const real$2 = "ℜ"; +const realine$2 = "ℛ"; +const realpart$2 = "ℜ"; +const reals$2 = "ℝ"; +const rect$2 = "▭"; +const re$6 = "®"; +const reg$2 = "®"; +const rfisht$2 = "⥽"; +const rfloor$2 = "⌋"; +const rfr$2 = "𝔯"; +const rhard$2 = "⇁"; +const rharu$2 = "⇀"; +const rharul$2 = "⥬"; +const rho$2 = "ρ"; +const rhov$2 = "ϱ"; +const rightarrow$2 = "→"; +const rightarrowtail$2 = "↣"; +const rightharpoondown$2 = "⇁"; +const rightharpoonup$2 = "⇀"; +const rightleftarrows$2 = "⇄"; +const rightleftharpoons$2 = "⇌"; +const rightrightarrows$2 = "⇉"; +const rightsquigarrow$2 = "↝"; +const rightthreetimes$2 = "⋌"; +const ring$2 = "˚"; +const risingdotseq$2 = "≓"; +const rlarr$2 = "⇄"; +const rlhar$2 = "⇌"; +const rlm$2 = "‏"; +const rmoust$2 = "⎱"; +const rmoustache$2 = "⎱"; +const rnmid$2 = "⫮"; +const roang$2 = "⟭"; +const roarr$2 = "⇾"; +const robrk$2 = "⟧"; +const ropar$2 = "⦆"; +const ropf$2 = "𝕣"; +const roplus$2 = "⨮"; +const rotimes$2 = "⨵"; +const rpar$2 = ")"; +const rpargt$2 = "⦔"; +const rppolint$2 = "⨒"; +const rrarr$2 = "⇉"; +const rsaquo$2 = "›"; +const rscr$2 = "𝓇"; +const rsh$2 = "↱"; +const rsqb$2 = "]"; +const rsquo$2 = "’"; +const rsquor$2 = "’"; +const rthree$2 = "⋌"; +const rtimes$2 = "⋊"; +const rtri$2 = "▹"; +const rtrie$2 = "⊵"; +const rtrif$2 = "▸"; +const rtriltri$2 = "⧎"; +const ruluhar$2 = "⥨"; +const rx$2 = "℞"; +const sacute$2 = "ś"; +const sbquo$2 = "‚"; +const sc$2 = "≻"; +const scE$2 = "⪴"; +const scap$2 = "⪸"; +const scaron$2 = "š"; +const sccue$2 = "≽"; +const sce$2 = "⪰"; +const scedil$2 = "ş"; +const scirc$2 = "ŝ"; +const scnE$2 = "⪶"; +const scnap$2 = "⪺"; +const scnsim$2 = "⋩"; +const scpolint$2 = "⨓"; +const scsim$2 = "≿"; +const scy$2 = "с"; +const sdot$2 = "⋅"; +const sdotb$2 = "⊡"; +const sdote$2 = "⩦"; +const seArr$2 = "⇘"; +const searhk$2 = "⤥"; +const searr$2 = "↘"; +const searrow$2 = "↘"; +const sec$2 = "§"; +const sect$2 = "§"; +const semi$2 = ";"; +const seswar$2 = "⤩"; +const setminus$2 = "∖"; +const setmn$2 = "∖"; +const sext$2 = "✶"; +const sfr$2 = "𝔰"; +const sfrown$2 = "⌢"; +const sharp$2 = "♯"; +const shchcy$2 = "щ"; +const shcy$2 = "ш"; +const shortmid$2 = "∣"; +const shortparallel$2 = "∥"; +const sh$2 = "­"; +const shy$2 = "­"; +const sigma$2 = "σ"; +const sigmaf$2 = "ς"; +const sigmav$2 = "ς"; +const sim$2 = "∼"; +const simdot$2 = "⩪"; +const sime$2 = "≃"; +const simeq$2 = "≃"; +const simg$2 = "⪞"; +const simgE$2 = "⪠"; +const siml$2 = "⪝"; +const simlE$2 = "⪟"; +const simne$2 = "≆"; +const simplus$2 = "⨤"; +const simrarr$2 = "⥲"; +const slarr$2 = "←"; +const smallsetminus$2 = "∖"; +const smashp$2 = "⨳"; +const smeparsl$2 = "⧤"; +const smid$2 = "∣"; +const smile$2 = "⌣"; +const smt$2 = "⪪"; +const smte$2 = "⪬"; +const smtes$2 = "⪬︀"; +const softcy$2 = "ь"; +const sol$2 = "/"; +const solb$2 = "⧄"; +const solbar$2 = "⌿"; +const sopf$2 = "𝕤"; +const spades$2 = "♠"; +const spadesuit$2 = "♠"; +const spar$2 = "∥"; +const sqcap$2 = "⊓"; +const sqcaps$2 = "⊓︀"; +const sqcup$2 = "⊔"; +const sqcups$2 = "⊔︀"; +const sqsub$2 = "⊏"; +const sqsube$2 = "⊑"; +const sqsubset$2 = "⊏"; +const sqsubseteq$2 = "⊑"; +const sqsup$2 = "⊐"; +const sqsupe$2 = "⊒"; +const sqsupset$2 = "⊐"; +const sqsupseteq$2 = "⊒"; +const squ$2 = "□"; +const square$2 = "□"; +const squarf$2 = "▪"; +const squf$2 = "▪"; +const srarr$2 = "→"; +const sscr$2 = "𝓈"; +const ssetmn$2 = "∖"; +const ssmile$2 = "⌣"; +const sstarf$2 = "⋆"; +const star$2 = "☆"; +const starf$2 = "★"; +const straightepsilon$2 = "ϵ"; +const straightphi$2 = "ϕ"; +const strns$2 = "¯"; +const sub$2 = "⊂"; +const subE$2 = "⫅"; +const subdot$2 = "⪽"; +const sube$2 = "⊆"; +const subedot$2 = "⫃"; +const submult$2 = "⫁"; +const subnE$2 = "⫋"; +const subne$2 = "⊊"; +const subplus$2 = "⪿"; +const subrarr$2 = "⥹"; +const subset$2 = "⊂"; +const subseteq$2 = "⊆"; +const subseteqq$2 = "⫅"; +const subsetneq$2 = "⊊"; +const subsetneqq$2 = "⫋"; +const subsim$2 = "⫇"; +const subsub$2 = "⫕"; +const subsup$2 = "⫓"; +const succ$2 = "≻"; +const succapprox$2 = "⪸"; +const succcurlyeq$2 = "≽"; +const succeq$2 = "⪰"; +const succnapprox$2 = "⪺"; +const succneqq$2 = "⪶"; +const succnsim$2 = "⋩"; +const succsim$2 = "≿"; +const sum$2 = "∑"; +const sung$2 = "♪"; +const sup$2 = "⊃"; +const sup1$2 = "¹"; +const sup2$2 = "²"; +const sup3$2 = "³"; +const supE$2 = "⫆"; +const supdot$2 = "⪾"; +const supdsub$2 = "⫘"; +const supe$2 = "⊇"; +const supedot$2 = "⫄"; +const suphsol$2 = "⟉"; +const suphsub$2 = "⫗"; +const suplarr$2 = "⥻"; +const supmult$2 = "⫂"; +const supnE$2 = "⫌"; +const supne$2 = "⊋"; +const supplus$2 = "⫀"; +const supset$2 = "⊃"; +const supseteq$2 = "⊇"; +const supseteqq$2 = "⫆"; +const supsetneq$2 = "⊋"; +const supsetneqq$2 = "⫌"; +const supsim$2 = "⫈"; +const supsub$2 = "⫔"; +const supsup$2 = "⫖"; +const swArr$2 = "⇙"; +const swarhk$2 = "⤦"; +const swarr$2 = "↙"; +const swarrow$2 = "↙"; +const swnwar$2 = "⤪"; +const szli$2 = "ß"; +const szlig$2 = "ß"; +const target$2 = "⌖"; +const tau$2 = "τ"; +const tbrk$2 = "⎴"; +const tcaron$2 = "ť"; +const tcedil$2 = "ţ"; +const tcy$2 = "т"; +const tdot$2 = "⃛"; +const telrec$2 = "⌕"; +const tfr$2 = "𝔱"; +const there4$2 = "∴"; +const therefore$2 = "∴"; +const theta$2 = "θ"; +const thetasym$2 = "ϑ"; +const thetav$2 = "ϑ"; +const thickapprox$2 = "≈"; +const thicksim$2 = "∼"; +const thinsp$2 = " "; +const thkap$2 = "≈"; +const thksim$2 = "∼"; +const thor$2 = "þ"; +const thorn$2 = "þ"; +const tilde$2 = "˜"; +const time$2 = "×"; +const times$2 = "×"; +const timesb$2 = "⊠"; +const timesbar$2 = "⨱"; +const timesd$2 = "⨰"; +const tint$2 = "∭"; +const toea$2 = "⤨"; +const top$2 = "⊤"; +const topbot$2 = "⌶"; +const topcir$2 = "⫱"; +const topf$2 = "𝕥"; +const topfork$2 = "⫚"; +const tosa$2 = "⤩"; +const tprime$2 = "‴"; +const trade$2 = "™"; +const triangle$2 = "▵"; +const triangledown$2 = "▿"; +const triangleleft$2 = "◃"; +const trianglelefteq$2 = "⊴"; +const triangleq$2 = "≜"; +const triangleright$2 = "▹"; +const trianglerighteq$2 = "⊵"; +const tridot$2 = "◬"; +const trie$2 = "≜"; +const triminus$2 = "⨺"; +const triplus$2 = "⨹"; +const trisb$2 = "⧍"; +const tritime$2 = "⨻"; +const trpezium$2 = "⏢"; +const tscr$2 = "𝓉"; +const tscy$2 = "ц"; +const tshcy$2 = "ћ"; +const tstrok$2 = "ŧ"; +const twixt$2 = "≬"; +const twoheadleftarrow$2 = "↞"; +const twoheadrightarrow$2 = "↠"; +const uArr$2 = "⇑"; +const uHar$2 = "⥣"; +const uacut$2 = "ú"; +const uacute$2 = "ú"; +const uarr$2 = "↑"; +const ubrcy$2 = "ў"; +const ubreve$2 = "ŭ"; +const ucir$2 = "û"; +const ucirc$2 = "û"; +const ucy$2 = "у"; +const udarr$2 = "⇅"; +const udblac$2 = "ű"; +const udhar$2 = "⥮"; +const ufisht$2 = "⥾"; +const ufr$2 = "𝔲"; +const ugrav$2 = "ù"; +const ugrave$2 = "ù"; +const uharl$2 = "↿"; +const uharr$2 = "↾"; +const uhblk$2 = "▀"; +const ulcorn$2 = "⌜"; +const ulcorner$2 = "⌜"; +const ulcrop$2 = "⌏"; +const ultri$2 = "◸"; +const umacr$2 = "ū"; +const um$2 = "¨"; +const uml$2 = "¨"; +const uogon$2 = "ų"; +const uopf$2 = "𝕦"; +const uparrow$2 = "↑"; +const updownarrow$2 = "↕"; +const upharpoonleft$2 = "↿"; +const upharpoonright$2 = "↾"; +const uplus$2 = "⊎"; +const upsi$2 = "υ"; +const upsih$2 = "ϒ"; +const upsilon$2 = "υ"; +const upuparrows$2 = "⇈"; +const urcorn$2 = "⌝"; +const urcorner$2 = "⌝"; +const urcrop$2 = "⌎"; +const uring$2 = "ů"; +const urtri$2 = "◹"; +const uscr$2 = "𝓊"; +const utdot$2 = "⋰"; +const utilde$2 = "ũ"; +const utri$2 = "▵"; +const utrif$2 = "▴"; +const uuarr$2 = "⇈"; +const uum$2 = "ü"; +const uuml$2 = "ü"; +const uwangle$2 = "⦧"; +const vArr$2 = "⇕"; +const vBar$2 = "⫨"; +const vBarv$2 = "⫩"; +const vDash$2 = "⊨"; +const vangrt$2 = "⦜"; +const varepsilon$2 = "ϵ"; +const varkappa$2 = "ϰ"; +const varnothing$2 = "∅"; +const varphi$2 = "ϕ"; +const varpi$2 = "ϖ"; +const varpropto$2 = "∝"; +const varr$2 = "↕"; +const varrho$2 = "ϱ"; +const varsigma$2 = "ς"; +const varsubsetneq$2 = "⊊︀"; +const varsubsetneqq$2 = "⫋︀"; +const varsupsetneq$2 = "⊋︀"; +const varsupsetneqq$2 = "⫌︀"; +const vartheta$2 = "ϑ"; +const vartriangleleft$2 = "⊲"; +const vartriangleright$2 = "⊳"; +const vcy$2 = "в"; +const vdash$2 = "⊢"; +const vee$2 = "∨"; +const veebar$2 = "⊻"; +const veeeq$2 = "≚"; +const vellip$2 = "⋮"; +const verbar$2 = "|"; +const vert$2 = "|"; +const vfr$2 = "𝔳"; +const vltri$2 = "⊲"; +const vnsub$2 = "⊂⃒"; +const vnsup$2 = "⊃⃒"; +const vopf$2 = "𝕧"; +const vprop$2 = "∝"; +const vrtri$2 = "⊳"; +const vscr$2 = "𝓋"; +const vsubnE$2 = "⫋︀"; +const vsubne$2 = "⊊︀"; +const vsupnE$2 = "⫌︀"; +const vsupne$2 = "⊋︀"; +const vzigzag$2 = "⦚"; +const wcirc$2 = "ŵ"; +const wedbar$2 = "⩟"; +const wedge$2 = "∧"; +const wedgeq$2 = "≙"; +const weierp$2 = "℘"; +const wfr$2 = "𝔴"; +const wopf$2 = "𝕨"; +const wp$2 = "℘"; +const wr$2 = "≀"; +const wreath$2 = "≀"; +const wscr$2 = "𝓌"; +const xcap$2 = "⋂"; +const xcirc$2 = "◯"; +const xcup$2 = "⋃"; +const xdtri$2 = "▽"; +const xfr$2 = "𝔵"; +const xhArr$2 = "⟺"; +const xharr$2 = "⟷"; +const xi$2 = "ξ"; +const xlArr$2 = "⟸"; +const xlarr$2 = "⟵"; +const xmap$2 = "⟼"; +const xnis$2 = "⋻"; +const xodot$2 = "⨀"; +const xopf$2 = "𝕩"; +const xoplus$2 = "⨁"; +const xotime$2 = "⨂"; +const xrArr$2 = "⟹"; +const xrarr$2 = "⟶"; +const xscr$2 = "𝓍"; +const xsqcup$2 = "⨆"; +const xuplus$2 = "⨄"; +const xutri$2 = "△"; +const xvee$2 = "⋁"; +const xwedge$2 = "⋀"; +const yacut$2 = "ý"; +const yacute$2 = "ý"; +const yacy$2 = "я"; +const ycirc$2 = "ŷ"; +const ycy$2 = "ы"; +const ye$2 = "¥"; +const yen$2 = "¥"; +const yfr$2 = "𝔶"; +const yicy$2 = "ї"; +const yopf$2 = "𝕪"; +const yscr$2 = "𝓎"; +const yucy$2 = "ю"; +const yum$2 = "ÿ"; +const yuml$2 = "ÿ"; +const zacute$2 = "ź"; +const zcaron$2 = "ž"; +const zcy$2 = "з"; +const zdot$2 = "ż"; +const zeetrf$2 = "ℨ"; +const zeta$2 = "ζ"; +const zfr$2 = "𝔷"; +const zhcy$2 = "ж"; +const zigrarr$2 = "⇝"; +const zopf$2 = "𝕫"; +const zscr$2 = "𝓏"; +const zwj$2 = "‍"; +const zwnj$2 = "‌"; +var require$$0$2 = { + AEli: AEli$2, + AElig: AElig$2, + AM: AM$2, + AMP: AMP$2, + Aacut: Aacut$2, + Aacute: Aacute$2, + Abreve: Abreve$2, + Acir: Acir$2, + Acirc: Acirc$2, + Acy: Acy$2, + Afr: Afr$2, + Agrav: Agrav$2, + Agrave: Agrave$2, + Alpha: Alpha$2, + Amacr: Amacr$2, + And: And$2, + Aogon: Aogon$2, + Aopf: Aopf$2, + ApplyFunction: ApplyFunction$2, + Arin: Arin$2, + Aring: Aring$2, + Ascr: Ascr$2, + Assign: Assign$2, + Atild: Atild$2, + Atilde: Atilde$2, + Aum: Aum$2, + Auml: Auml$2, + Backslash: Backslash$2, + Barv: Barv$2, + Barwed: Barwed$2, + Bcy: Bcy$2, + Because: Because$2, + Bernoullis: Bernoullis$2, + Beta: Beta$2, + Bfr: Bfr$2, + Bopf: Bopf$2, + Breve: Breve$2, + Bscr: Bscr$2, + Bumpeq: Bumpeq$2, + CHcy: CHcy$2, + COP: COP$2, + COPY: COPY$2, + Cacute: Cacute$2, + Cap: Cap$2, + CapitalDifferentialD: CapitalDifferentialD$2, + Cayleys: Cayleys$2, + Ccaron: Ccaron$2, + Ccedi: Ccedi$2, + Ccedil: Ccedil$2, + Ccirc: Ccirc$2, + Cconint: Cconint$2, + Cdot: Cdot$2, + Cedilla: Cedilla$2, + CenterDot: CenterDot$2, + Cfr: Cfr$2, + Chi: Chi$2, + CircleDot: CircleDot$2, + CircleMinus: CircleMinus$2, + CirclePlus: CirclePlus$2, + CircleTimes: CircleTimes$2, + ClockwiseContourIntegral: ClockwiseContourIntegral$2, + CloseCurlyDoubleQuote: CloseCurlyDoubleQuote$2, + CloseCurlyQuote: CloseCurlyQuote$2, + Colon: Colon$2, + Colone: Colone$2, + Congruent: Congruent$2, + Conint: Conint$2, + ContourIntegral: ContourIntegral$2, + Copf: Copf$2, + Coproduct: Coproduct$2, + CounterClockwiseContourIntegral: CounterClockwiseContourIntegral$2, + Cross: Cross$2, + Cscr: Cscr$2, + Cup: Cup$2, + CupCap: CupCap$2, + DD: DD$2, + DDotrahd: DDotrahd$2, + DJcy: DJcy$2, + DScy: DScy$2, + DZcy: DZcy$2, + Dagger: Dagger$2, + Darr: Darr$2, + Dashv: Dashv$2, + Dcaron: Dcaron$2, + Dcy: Dcy$2, + Del: Del$2, + Delta: Delta$2, + Dfr: Dfr$2, + DiacriticalAcute: DiacriticalAcute$2, + DiacriticalDot: DiacriticalDot$2, + DiacriticalDoubleAcute: DiacriticalDoubleAcute$2, + DiacriticalGrave: DiacriticalGrave$2, + DiacriticalTilde: DiacriticalTilde$2, + Diamond: Diamond$2, + DifferentialD: DifferentialD$2, + Dopf: Dopf$2, + Dot: Dot$2, + DotDot: DotDot$2, + DotEqual: DotEqual$2, + DoubleContourIntegral: DoubleContourIntegral$2, + DoubleDot: DoubleDot$2, + DoubleDownArrow: DoubleDownArrow$2, + DoubleLeftArrow: DoubleLeftArrow$2, + DoubleLeftRightArrow: DoubleLeftRightArrow$2, + DoubleLeftTee: DoubleLeftTee$2, + DoubleLongLeftArrow: DoubleLongLeftArrow$2, + DoubleLongLeftRightArrow: DoubleLongLeftRightArrow$2, + DoubleLongRightArrow: DoubleLongRightArrow$2, + DoubleRightArrow: DoubleRightArrow$2, + DoubleRightTee: DoubleRightTee$2, + DoubleUpArrow: DoubleUpArrow$2, + DoubleUpDownArrow: DoubleUpDownArrow$2, + DoubleVerticalBar: DoubleVerticalBar$2, + DownArrow: DownArrow$2, + DownArrowBar: DownArrowBar$2, + DownArrowUpArrow: DownArrowUpArrow$2, + DownBreve: DownBreve$2, + DownLeftRightVector: DownLeftRightVector$2, + DownLeftTeeVector: DownLeftTeeVector$2, + DownLeftVector: DownLeftVector$2, + DownLeftVectorBar: DownLeftVectorBar$2, + DownRightTeeVector: DownRightTeeVector$2, + DownRightVector: DownRightVector$2, + DownRightVectorBar: DownRightVectorBar$2, + DownTee: DownTee$2, + DownTeeArrow: DownTeeArrow$2, + Downarrow: Downarrow$2, + Dscr: Dscr$2, + Dstrok: Dstrok$2, + ENG: ENG$2, + ET: ET$2, + ETH: ETH$2, + Eacut: Eacut$2, + Eacute: Eacute$2, + Ecaron: Ecaron$2, + Ecir: Ecir$2, + Ecirc: Ecirc$2, + Ecy: Ecy$2, + Edot: Edot$2, + Efr: Efr$2, + Egrav: Egrav$2, + Egrave: Egrave$2, + Element: Element$2, + Emacr: Emacr$2, + EmptySmallSquare: EmptySmallSquare$2, + EmptyVerySmallSquare: EmptyVerySmallSquare$2, + Eogon: Eogon$2, + Eopf: Eopf$2, + Epsilon: Epsilon$2, + Equal: Equal$2, + EqualTilde: EqualTilde$2, + Equilibrium: Equilibrium$2, + Escr: Escr$2, + Esim: Esim$2, + Eta: Eta$2, + Eum: Eum$2, + Euml: Euml$2, + Exists: Exists$2, + ExponentialE: ExponentialE$2, + Fcy: Fcy$2, + Ffr: Ffr$2, + FilledSmallSquare: FilledSmallSquare$2, + FilledVerySmallSquare: FilledVerySmallSquare$2, + Fopf: Fopf$2, + ForAll: ForAll$2, + Fouriertrf: Fouriertrf$2, + Fscr: Fscr$2, + GJcy: GJcy$2, + G: G$2, + GT: GT$2, + Gamma: Gamma$2, + Gammad: Gammad$2, + Gbreve: Gbreve$2, + Gcedil: Gcedil$2, + Gcirc: Gcirc$2, + Gcy: Gcy$2, + Gdot: Gdot$2, + Gfr: Gfr$2, + Gg: Gg$2, + Gopf: Gopf$2, + GreaterEqual: GreaterEqual$2, + GreaterEqualLess: GreaterEqualLess$2, + GreaterFullEqual: GreaterFullEqual$2, + GreaterGreater: GreaterGreater$2, + GreaterLess: GreaterLess$2, + GreaterSlantEqual: GreaterSlantEqual$2, + GreaterTilde: GreaterTilde$2, + Gscr: Gscr$2, + Gt: Gt$2, + HARDcy: HARDcy$2, + Hacek: Hacek$2, + Hat: Hat$2, + Hcirc: Hcirc$2, + Hfr: Hfr$2, + HilbertSpace: HilbertSpace$2, + Hopf: Hopf$2, + HorizontalLine: HorizontalLine$2, + Hscr: Hscr$2, + Hstrok: Hstrok$2, + HumpDownHump: HumpDownHump$2, + HumpEqual: HumpEqual$2, + IEcy: IEcy$2, + IJlig: IJlig$2, + IOcy: IOcy$2, + Iacut: Iacut$2, + Iacute: Iacute$2, + Icir: Icir$2, + Icirc: Icirc$2, + Icy: Icy$2, + Idot: Idot$2, + Ifr: Ifr$2, + Igrav: Igrav$2, + Igrave: Igrave$2, + Im: Im$2, + Imacr: Imacr$2, + ImaginaryI: ImaginaryI$2, + Implies: Implies$2, + Int: Int$2, + Integral: Integral$2, + Intersection: Intersection$2, + InvisibleComma: InvisibleComma$2, + InvisibleTimes: InvisibleTimes$2, + Iogon: Iogon$2, + Iopf: Iopf$2, + Iota: Iota$2, + Iscr: Iscr$2, + Itilde: Itilde$2, + Iukcy: Iukcy$2, + Ium: Ium$2, + Iuml: Iuml$2, + Jcirc: Jcirc$2, + Jcy: Jcy$2, + Jfr: Jfr$2, + Jopf: Jopf$2, + Jscr: Jscr$2, + Jsercy: Jsercy$2, + Jukcy: Jukcy$2, + KHcy: KHcy$2, + KJcy: KJcy$2, + Kappa: Kappa$2, + Kcedil: Kcedil$2, + Kcy: Kcy$2, + Kfr: Kfr$2, + Kopf: Kopf$2, + Kscr: Kscr$2, + LJcy: LJcy$2, + L: L$2, + LT: LT$2, + Lacute: Lacute$2, + Lambda: Lambda$2, + Lang: Lang$2, + Laplacetrf: Laplacetrf$2, + Larr: Larr$2, + Lcaron: Lcaron$2, + Lcedil: Lcedil$2, + Lcy: Lcy$2, + LeftAngleBracket: LeftAngleBracket$2, + LeftArrow: LeftArrow$2, + LeftArrowBar: LeftArrowBar$2, + LeftArrowRightArrow: LeftArrowRightArrow$2, + LeftCeiling: LeftCeiling$2, + LeftDoubleBracket: LeftDoubleBracket$2, + LeftDownTeeVector: LeftDownTeeVector$2, + LeftDownVector: LeftDownVector$2, + LeftDownVectorBar: LeftDownVectorBar$2, + LeftFloor: LeftFloor$2, + LeftRightArrow: LeftRightArrow$2, + LeftRightVector: LeftRightVector$2, + LeftTee: LeftTee$2, + LeftTeeArrow: LeftTeeArrow$2, + LeftTeeVector: LeftTeeVector$2, + LeftTriangle: LeftTriangle$2, + LeftTriangleBar: LeftTriangleBar$2, + LeftTriangleEqual: LeftTriangleEqual$2, + LeftUpDownVector: LeftUpDownVector$2, + LeftUpTeeVector: LeftUpTeeVector$2, + LeftUpVector: LeftUpVector$2, + LeftUpVectorBar: LeftUpVectorBar$2, + LeftVector: LeftVector$2, + LeftVectorBar: LeftVectorBar$2, + Leftarrow: Leftarrow$2, + Leftrightarrow: Leftrightarrow$2, + LessEqualGreater: LessEqualGreater$2, + LessFullEqual: LessFullEqual$2, + LessGreater: LessGreater$2, + LessLess: LessLess$2, + LessSlantEqual: LessSlantEqual$2, + LessTilde: LessTilde$2, + Lfr: Lfr$2, + Ll: Ll$2, + Lleftarrow: Lleftarrow$2, + Lmidot: Lmidot$2, + LongLeftArrow: LongLeftArrow$2, + LongLeftRightArrow: LongLeftRightArrow$2, + LongRightArrow: LongRightArrow$2, + Longleftarrow: Longleftarrow$2, + Longleftrightarrow: Longleftrightarrow$2, + Longrightarrow: Longrightarrow$2, + Lopf: Lopf$2, + LowerLeftArrow: LowerLeftArrow$2, + LowerRightArrow: LowerRightArrow$2, + Lscr: Lscr$2, + Lsh: Lsh$2, + Lstrok: Lstrok$2, + Lt: Lt$2, + "Map": "⤅", + Mcy: Mcy$2, + MediumSpace: MediumSpace$2, + Mellintrf: Mellintrf$2, + Mfr: Mfr$2, + MinusPlus: MinusPlus$2, + Mopf: Mopf$2, + Mscr: Mscr$2, + Mu: Mu$2, + NJcy: NJcy$2, + Nacute: Nacute$2, + Ncaron: Ncaron$2, + Ncedil: Ncedil$2, + Ncy: Ncy$2, + NegativeMediumSpace: NegativeMediumSpace$2, + NegativeThickSpace: NegativeThickSpace$2, + NegativeThinSpace: NegativeThinSpace$2, + NegativeVeryThinSpace: NegativeVeryThinSpace$2, + NestedGreaterGreater: NestedGreaterGreater$2, + NestedLessLess: NestedLessLess$2, + NewLine: NewLine$2, + Nfr: Nfr$2, + NoBreak: NoBreak$2, + NonBreakingSpace: NonBreakingSpace$2, + Nopf: Nopf$2, + Not: Not$2, + NotCongruent: NotCongruent$2, + NotCupCap: NotCupCap$2, + NotDoubleVerticalBar: NotDoubleVerticalBar$2, + NotElement: NotElement$2, + NotEqual: NotEqual$2, + NotEqualTilde: NotEqualTilde$2, + NotExists: NotExists$2, + NotGreater: NotGreater$2, + NotGreaterEqual: NotGreaterEqual$2, + NotGreaterFullEqual: NotGreaterFullEqual$2, + NotGreaterGreater: NotGreaterGreater$2, + NotGreaterLess: NotGreaterLess$2, + NotGreaterSlantEqual: NotGreaterSlantEqual$2, + NotGreaterTilde: NotGreaterTilde$2, + NotHumpDownHump: NotHumpDownHump$2, + NotHumpEqual: NotHumpEqual$2, + NotLeftTriangle: NotLeftTriangle$2, + NotLeftTriangleBar: NotLeftTriangleBar$2, + NotLeftTriangleEqual: NotLeftTriangleEqual$2, + NotLess: NotLess$2, + NotLessEqual: NotLessEqual$2, + NotLessGreater: NotLessGreater$2, + NotLessLess: NotLessLess$2, + NotLessSlantEqual: NotLessSlantEqual$2, + NotLessTilde: NotLessTilde$2, + NotNestedGreaterGreater: NotNestedGreaterGreater$2, + NotNestedLessLess: NotNestedLessLess$2, + NotPrecedes: NotPrecedes$2, + NotPrecedesEqual: NotPrecedesEqual$2, + NotPrecedesSlantEqual: NotPrecedesSlantEqual$2, + NotReverseElement: NotReverseElement$2, + NotRightTriangle: NotRightTriangle$2, + NotRightTriangleBar: NotRightTriangleBar$2, + NotRightTriangleEqual: NotRightTriangleEqual$2, + NotSquareSubset: NotSquareSubset$2, + NotSquareSubsetEqual: NotSquareSubsetEqual$2, + NotSquareSuperset: NotSquareSuperset$2, + NotSquareSupersetEqual: NotSquareSupersetEqual$2, + NotSubset: NotSubset$2, + NotSubsetEqual: NotSubsetEqual$2, + NotSucceeds: NotSucceeds$2, + NotSucceedsEqual: NotSucceedsEqual$2, + NotSucceedsSlantEqual: NotSucceedsSlantEqual$2, + NotSucceedsTilde: NotSucceedsTilde$2, + NotSuperset: NotSuperset$2, + NotSupersetEqual: NotSupersetEqual$2, + NotTilde: NotTilde$2, + NotTildeEqual: NotTildeEqual$2, + NotTildeFullEqual: NotTildeFullEqual$2, + NotTildeTilde: NotTildeTilde$2, + NotVerticalBar: NotVerticalBar$2, + Nscr: Nscr$2, + Ntild: Ntild$2, + Ntilde: Ntilde$2, + Nu: Nu$2, + OElig: OElig$2, + Oacut: Oacut$2, + Oacute: Oacute$2, + Ocir: Ocir$2, + Ocirc: Ocirc$2, + Ocy: Ocy$2, + Odblac: Odblac$2, + Ofr: Ofr$2, + Ograv: Ograv$2, + Ograve: Ograve$2, + Omacr: Omacr$2, + Omega: Omega$2, + Omicron: Omicron$2, + Oopf: Oopf$2, + OpenCurlyDoubleQuote: OpenCurlyDoubleQuote$2, + OpenCurlyQuote: OpenCurlyQuote$2, + Or: Or$2, + Oscr: Oscr$2, + Oslas: Oslas$2, + Oslash: Oslash$2, + Otild: Otild$2, + Otilde: Otilde$2, + Otimes: Otimes$2, + Oum: Oum$2, + Ouml: Ouml$2, + OverBar: OverBar$2, + OverBrace: OverBrace$2, + OverBracket: OverBracket$2, + OverParenthesis: OverParenthesis$2, + PartialD: PartialD$2, + Pcy: Pcy$2, + Pfr: Pfr$2, + Phi: Phi$2, + Pi: Pi$2, + PlusMinus: PlusMinus$2, + Poincareplane: Poincareplane$2, + Popf: Popf$2, + Pr: Pr$2, + Precedes: Precedes$2, + PrecedesEqual: PrecedesEqual$2, + PrecedesSlantEqual: PrecedesSlantEqual$2, + PrecedesTilde: PrecedesTilde$2, + Prime: Prime$2, + Product: Product$2, + Proportion: Proportion$2, + Proportional: Proportional$2, + Pscr: Pscr$2, + Psi: Psi$2, + QUO: QUO$2, + QUOT: QUOT$2, + Qfr: Qfr$2, + Qopf: Qopf$2, + Qscr: Qscr$2, + RBarr: RBarr$2, + RE: RE$2, + REG: REG$2, + Racute: Racute$2, + Rang: Rang$2, + Rarr: Rarr$2, + Rarrtl: Rarrtl$2, + Rcaron: Rcaron$2, + Rcedil: Rcedil$2, + Rcy: Rcy$2, + Re: Re$2, + ReverseElement: ReverseElement$2, + ReverseEquilibrium: ReverseEquilibrium$2, + ReverseUpEquilibrium: ReverseUpEquilibrium$2, + Rfr: Rfr$2, + Rho: Rho$2, + RightAngleBracket: RightAngleBracket$2, + RightArrow: RightArrow$2, + RightArrowBar: RightArrowBar$2, + RightArrowLeftArrow: RightArrowLeftArrow$2, + RightCeiling: RightCeiling$2, + RightDoubleBracket: RightDoubleBracket$2, + RightDownTeeVector: RightDownTeeVector$2, + RightDownVector: RightDownVector$2, + RightDownVectorBar: RightDownVectorBar$2, + RightFloor: RightFloor$2, + RightTee: RightTee$2, + RightTeeArrow: RightTeeArrow$2, + RightTeeVector: RightTeeVector$2, + RightTriangle: RightTriangle$2, + RightTriangleBar: RightTriangleBar$2, + RightTriangleEqual: RightTriangleEqual$2, + RightUpDownVector: RightUpDownVector$2, + RightUpTeeVector: RightUpTeeVector$2, + RightUpVector: RightUpVector$2, + RightUpVectorBar: RightUpVectorBar$2, + RightVector: RightVector$2, + RightVectorBar: RightVectorBar$2, + Rightarrow: Rightarrow$2, + Ropf: Ropf$2, + RoundImplies: RoundImplies$2, + Rrightarrow: Rrightarrow$2, + Rscr: Rscr$2, + Rsh: Rsh$2, + RuleDelayed: RuleDelayed$2, + SHCHcy: SHCHcy$2, + SHcy: SHcy$2, + SOFTcy: SOFTcy$2, + Sacute: Sacute$2, + Sc: Sc$2, + Scaron: Scaron$2, + Scedil: Scedil$2, + Scirc: Scirc$2, + Scy: Scy$2, + Sfr: Sfr$2, + ShortDownArrow: ShortDownArrow$2, + ShortLeftArrow: ShortLeftArrow$2, + ShortRightArrow: ShortRightArrow$2, + ShortUpArrow: ShortUpArrow$2, + Sigma: Sigma$2, + SmallCircle: SmallCircle$2, + Sopf: Sopf$2, + Sqrt: Sqrt$2, + Square: Square$2, + SquareIntersection: SquareIntersection$2, + SquareSubset: SquareSubset$2, + SquareSubsetEqual: SquareSubsetEqual$2, + SquareSuperset: SquareSuperset$2, + SquareSupersetEqual: SquareSupersetEqual$2, + SquareUnion: SquareUnion$2, + Sscr: Sscr$2, + Star: Star$2, + Sub: Sub$2, + Subset: Subset$2, + SubsetEqual: SubsetEqual$2, + Succeeds: Succeeds$2, + SucceedsEqual: SucceedsEqual$2, + SucceedsSlantEqual: SucceedsSlantEqual$2, + SucceedsTilde: SucceedsTilde$2, + SuchThat: SuchThat$2, + Sum: Sum$2, + Sup: Sup$2, + Superset: Superset$2, + SupersetEqual: SupersetEqual$2, + Supset: Supset$2, + THOR: THOR$2, + THORN: THORN$2, + TRADE: TRADE$2, + TSHcy: TSHcy$2, + TScy: TScy$2, + Tab: Tab$2, + Tau: Tau$2, + Tcaron: Tcaron$2, + Tcedil: Tcedil$2, + Tcy: Tcy$2, + Tfr: Tfr$2, + Therefore: Therefore$2, + Theta: Theta$2, + ThickSpace: ThickSpace$2, + ThinSpace: ThinSpace$2, + Tilde: Tilde$2, + TildeEqual: TildeEqual$2, + TildeFullEqual: TildeFullEqual$2, + TildeTilde: TildeTilde$2, + Topf: Topf$2, + TripleDot: TripleDot$2, + Tscr: Tscr$2, + Tstrok: Tstrok$2, + Uacut: Uacut$2, + Uacute: Uacute$2, + Uarr: Uarr$2, + Uarrocir: Uarrocir$2, + Ubrcy: Ubrcy$2, + Ubreve: Ubreve$2, + Ucir: Ucir$2, + Ucirc: Ucirc$2, + Ucy: Ucy$2, + Udblac: Udblac$2, + Ufr: Ufr$2, + Ugrav: Ugrav$2, + Ugrave: Ugrave$2, + Umacr: Umacr$2, + UnderBar: UnderBar$2, + UnderBrace: UnderBrace$2, + UnderBracket: UnderBracket$2, + UnderParenthesis: UnderParenthesis$2, + Union: Union$2, + UnionPlus: UnionPlus$2, + Uogon: Uogon$2, + Uopf: Uopf$2, + UpArrow: UpArrow$2, + UpArrowBar: UpArrowBar$2, + UpArrowDownArrow: UpArrowDownArrow$2, + UpDownArrow: UpDownArrow$2, + UpEquilibrium: UpEquilibrium$2, + UpTee: UpTee$2, + UpTeeArrow: UpTeeArrow$2, + Uparrow: Uparrow$2, + Updownarrow: Updownarrow$2, + UpperLeftArrow: UpperLeftArrow$2, + UpperRightArrow: UpperRightArrow$2, + Upsi: Upsi$2, + Upsilon: Upsilon$2, + Uring: Uring$2, + Uscr: Uscr$2, + Utilde: Utilde$2, + Uum: Uum$2, + Uuml: Uuml$2, + VDash: VDash$2, + Vbar: Vbar$2, + Vcy: Vcy$2, + Vdash: Vdash$2, + Vdashl: Vdashl$2, + Vee: Vee$2, + Verbar: Verbar$2, + Vert: Vert$2, + VerticalBar: VerticalBar$2, + VerticalLine: VerticalLine$2, + VerticalSeparator: VerticalSeparator$2, + VerticalTilde: VerticalTilde$2, + VeryThinSpace: VeryThinSpace$2, + Vfr: Vfr$2, + Vopf: Vopf$2, + Vscr: Vscr$2, + Vvdash: Vvdash$2, + Wcirc: Wcirc$2, + Wedge: Wedge$2, + Wfr: Wfr$2, + Wopf: Wopf$2, + Wscr: Wscr$2, + Xfr: Xfr$2, + Xi: Xi$2, + Xopf: Xopf$2, + Xscr: Xscr$2, + YAcy: YAcy$2, + YIcy: YIcy$2, + YUcy: YUcy$2, + Yacut: Yacut$2, + Yacute: Yacute$2, + Ycirc: Ycirc$2, + Ycy: Ycy$2, + Yfr: Yfr$2, + Yopf: Yopf$2, + Yscr: Yscr$2, + Yuml: Yuml$2, + ZHcy: ZHcy$2, + Zacute: Zacute$2, + Zcaron: Zcaron$2, + Zcy: Zcy$2, + Zdot: Zdot$2, + ZeroWidthSpace: ZeroWidthSpace$2, + Zeta: Zeta$2, + Zfr: Zfr$2, + Zopf: Zopf$2, + Zscr: Zscr$2, + aacut: aacut$2, + aacute: aacute$2, + abreve: abreve$2, + ac: ac$2, + acE: acE$2, + acd: acd$2, + acir: acir$2, + acirc: acirc$2, + acut: acut$2, + acute: acute$2, + acy: acy$2, + aeli: aeli$2, + aelig: aelig$2, + af: af$2, + afr: afr$2, + agrav: agrav$2, + agrave: agrave$2, + alefsym: alefsym$2, + aleph: aleph$2, + alpha: alpha$2, + amacr: amacr$2, + amalg: amalg$2, + am: am$2, + amp: amp$2, + and: and$2, + andand: andand$2, + andd: andd$2, + andslope: andslope$2, + andv: andv$2, + ang: ang$2, + ange: ange$2, + angle: angle$2, + angmsd: angmsd$2, + angmsdaa: angmsdaa$2, + angmsdab: angmsdab$2, + angmsdac: angmsdac$2, + angmsdad: angmsdad$2, + angmsdae: angmsdae$2, + angmsdaf: angmsdaf$2, + angmsdag: angmsdag$2, + angmsdah: angmsdah$2, + angrt: angrt$2, + angrtvb: angrtvb$2, + angrtvbd: angrtvbd$2, + angsph: angsph$2, + angst: angst$2, + angzarr: angzarr$2, + aogon: aogon$2, + aopf: aopf$2, + ap: ap$2, + apE: apE$2, + apacir: apacir$2, + ape: ape$2, + apid: apid$2, + apos: apos$2, + approx: approx$2, + approxeq: approxeq$2, + arin: arin$2, + aring: aring$2, + ascr: ascr$2, + ast: ast$2, + asymp: asymp$2, + asympeq: asympeq$2, + atild: atild$2, + atilde: atilde$2, + aum: aum$2, + auml: auml$2, + awconint: awconint$2, + awint: awint$2, + bNot: bNot$2, + backcong: backcong$2, + backepsilon: backepsilon$2, + backprime: backprime$2, + backsim: backsim$2, + backsimeq: backsimeq$2, + barvee: barvee$2, + barwed: barwed$2, + barwedge: barwedge$2, + bbrk: bbrk$2, + bbrktbrk: bbrktbrk$2, + bcong: bcong$2, + bcy: bcy$2, + bdquo: bdquo$2, + becaus: becaus$2, + because: because$2, + bemptyv: bemptyv$2, + bepsi: bepsi$2, + bernou: bernou$2, + beta: beta$2, + beth: beth$2, + between: between$2, + bfr: bfr$2, + bigcap: bigcap$2, + bigcirc: bigcirc$2, + bigcup: bigcup$2, + bigodot: bigodot$2, + bigoplus: bigoplus$2, + bigotimes: bigotimes$2, + bigsqcup: bigsqcup$2, + bigstar: bigstar$2, + bigtriangledown: bigtriangledown$2, + bigtriangleup: bigtriangleup$2, + biguplus: biguplus$2, + bigvee: bigvee$2, + bigwedge: bigwedge$2, + bkarow: bkarow$2, + blacklozenge: blacklozenge$2, + blacksquare: blacksquare$2, + blacktriangle: blacktriangle$2, + blacktriangledown: blacktriangledown$2, + blacktriangleleft: blacktriangleleft$2, + blacktriangleright: blacktriangleright$2, + blank: blank$2, + blk12: blk12$2, + blk14: blk14$2, + blk34: blk34$2, + block: block$2, + bne: bne$2, + bnequiv: bnequiv$2, + bnot: bnot$2, + bopf: bopf$2, + bot: bot$2, + bottom: bottom$2, + bowtie: bowtie$2, + boxDL: boxDL$2, + boxDR: boxDR$2, + boxDl: boxDl$2, + boxDr: boxDr$2, + boxH: boxH$2, + boxHD: boxHD$2, + boxHU: boxHU$2, + boxHd: boxHd$2, + boxHu: boxHu$2, + boxUL: boxUL$2, + boxUR: boxUR$2, + boxUl: boxUl$2, + boxUr: boxUr$2, + boxV: boxV$2, + boxVH: boxVH$2, + boxVL: boxVL$2, + boxVR: boxVR$2, + boxVh: boxVh$2, + boxVl: boxVl$2, + boxVr: boxVr$2, + boxbox: boxbox$2, + boxdL: boxdL$2, + boxdR: boxdR$2, + boxdl: boxdl$2, + boxdr: boxdr$2, + boxh: boxh$2, + boxhD: boxhD$2, + boxhU: boxhU$2, + boxhd: boxhd$2, + boxhu: boxhu$2, + boxminus: boxminus$2, + boxplus: boxplus$2, + boxtimes: boxtimes$2, + boxuL: boxuL$2, + boxuR: boxuR$2, + boxul: boxul$2, + boxur: boxur$2, + boxv: boxv$2, + boxvH: boxvH$2, + boxvL: boxvL$2, + boxvR: boxvR$2, + boxvh: boxvh$2, + boxvl: boxvl$2, + boxvr: boxvr$2, + bprime: bprime$2, + breve: breve$2, + brvba: brvba$2, + brvbar: brvbar$2, + bscr: bscr$2, + bsemi: bsemi$2, + bsim: bsim$2, + bsime: bsime$2, + bsol: bsol$2, + bsolb: bsolb$2, + bsolhsub: bsolhsub$2, + bull: bull$2, + bullet: bullet$2, + bump: bump$2, + bumpE: bumpE$2, + bumpe: bumpe$2, + bumpeq: bumpeq$2, + cacute: cacute$2, + cap: cap$2, + capand: capand$2, + capbrcup: capbrcup$2, + capcap: capcap$2, + capcup: capcup$2, + capdot: capdot$2, + caps: caps$2, + caret: caret$2, + caron: caron$2, + ccaps: ccaps$2, + ccaron: ccaron$2, + ccedi: ccedi$2, + ccedil: ccedil$2, + ccirc: ccirc$2, + ccups: ccups$2, + ccupssm: ccupssm$2, + cdot: cdot$2, + cedi: cedi$2, + cedil: cedil$2, + cemptyv: cemptyv$2, + cen: cen$2, + cent: cent$2, + centerdot: centerdot$2, + cfr: cfr$2, + chcy: chcy$2, + check: check$3, + checkmark: checkmark$2, + chi: chi$2, + cir: cir$2, + cirE: cirE$2, + circ: circ$2, + circeq: circeq$2, + circlearrowleft: circlearrowleft$2, + circlearrowright: circlearrowright$2, + circledR: circledR$2, + circledS: circledS$2, + circledast: circledast$2, + circledcirc: circledcirc$2, + circleddash: circleddash$2, + cire: cire$2, + cirfnint: cirfnint$2, + cirmid: cirmid$2, + cirscir: cirscir$2, + clubs: clubs$2, + clubsuit: clubsuit$2, + colon: colon$2, + colone: colone$2, + coloneq: coloneq$2, + comma: comma$2, + commat: commat$2, + comp: comp$2, + compfn: compfn$2, + complement: complement$2, + complexes: complexes$2, + cong: cong$2, + congdot: congdot$2, + conint: conint$2, + copf: copf$2, + coprod: coprod$2, + cop: cop$2, + copy: copy$2, + copysr: copysr$2, + crarr: crarr$2, + cross: cross$2, + cscr: cscr$2, + csub: csub$2, + csube: csube$2, + csup: csup$2, + csupe: csupe$2, + ctdot: ctdot$2, + cudarrl: cudarrl$2, + cudarrr: cudarrr$2, + cuepr: cuepr$2, + cuesc: cuesc$2, + cularr: cularr$2, + cularrp: cularrp$2, + cup: cup$2, + cupbrcap: cupbrcap$2, + cupcap: cupcap$2, + cupcup: cupcup$2, + cupdot: cupdot$2, + cupor: cupor$2, + cups: cups$2, + curarr: curarr$2, + curarrm: curarrm$2, + curlyeqprec: curlyeqprec$2, + curlyeqsucc: curlyeqsucc$2, + curlyvee: curlyvee$2, + curlywedge: curlywedge$2, + curre: curre$2, + curren: curren$2, + curvearrowleft: curvearrowleft$2, + curvearrowright: curvearrowright$2, + cuvee: cuvee$2, + cuwed: cuwed$2, + cwconint: cwconint$2, + cwint: cwint$2, + cylcty: cylcty$2, + dArr: dArr$2, + dHar: dHar$2, + dagger: dagger$2, + daleth: daleth$2, + darr: darr$2, + dash: dash$2, + dashv: dashv$2, + dbkarow: dbkarow$2, + dblac: dblac$2, + dcaron: dcaron$2, + dcy: dcy$2, + dd: dd$2, + ddagger: ddagger$2, + ddarr: ddarr$2, + ddotseq: ddotseq$2, + de: de$2, + deg: deg$2, + delta: delta$2, + demptyv: demptyv$2, + dfisht: dfisht$2, + dfr: dfr$2, + dharl: dharl$2, + dharr: dharr$2, + diam: diam$2, + diamond: diamond$2, + diamondsuit: diamondsuit$2, + diams: diams$2, + die: die$2, + digamma: digamma$2, + disin: disin$2, + div: div$2, + divid: divid$2, + divide: divide$2, + divideontimes: divideontimes$2, + divonx: divonx$2, + djcy: djcy$2, + dlcorn: dlcorn$2, + dlcrop: dlcrop$2, + dollar: dollar$2, + dopf: dopf$2, + dot: dot$2, + doteq: doteq$2, + doteqdot: doteqdot$2, + dotminus: dotminus$2, + dotplus: dotplus$2, + dotsquare: dotsquare$2, + doublebarwedge: doublebarwedge$2, + downarrow: downarrow$2, + downdownarrows: downdownarrows$2, + downharpoonleft: downharpoonleft$2, + downharpoonright: downharpoonright$2, + drbkarow: drbkarow$2, + drcorn: drcorn$2, + drcrop: drcrop$2, + dscr: dscr$2, + dscy: dscy$2, + dsol: dsol$2, + dstrok: dstrok$2, + dtdot: dtdot$2, + dtri: dtri$2, + dtrif: dtrif$2, + duarr: duarr$2, + duhar: duhar$2, + dwangle: dwangle$2, + dzcy: dzcy$2, + dzigrarr: dzigrarr$2, + eDDot: eDDot$2, + eDot: eDot$2, + eacut: eacut$2, + eacute: eacute$2, + easter: easter$2, + ecaron: ecaron$2, + ecir: ecir$2, + ecirc: ecirc$2, + ecolon: ecolon$2, + ecy: ecy$2, + edot: edot$2, + ee: ee$2, + efDot: efDot$2, + efr: efr$2, + eg: eg$2, + egrav: egrav$2, + egrave: egrave$2, + egs: egs$2, + egsdot: egsdot$2, + el: el$2, + elinters: elinters$2, + ell: ell$2, + els: els$2, + elsdot: elsdot$2, + emacr: emacr$2, + empty: empty$2, + emptyset: emptyset$2, + emptyv: emptyv$2, + emsp13: emsp13$2, + emsp14: emsp14$2, + emsp: emsp$2, + eng: eng$2, + ensp: ensp$2, + eogon: eogon$2, + eopf: eopf$2, + epar: epar$2, + eparsl: eparsl$2, + eplus: eplus$2, + epsi: epsi$2, + epsilon: epsilon$2, + epsiv: epsiv$2, + eqcirc: eqcirc$2, + eqcolon: eqcolon$2, + eqsim: eqsim$2, + eqslantgtr: eqslantgtr$2, + eqslantless: eqslantless$2, + equals: equals$2, + equest: equest$2, + equiv: equiv$2, + equivDD: equivDD$2, + eqvparsl: eqvparsl$2, + erDot: erDot$2, + erarr: erarr$2, + escr: escr$2, + esdot: esdot$2, + esim: esim$2, + eta: eta$2, + et: et$2, + eth: eth$2, + eum: eum$2, + euml: euml$2, + euro: euro$2, + excl: excl$2, + exist: exist$2, + expectation: expectation$2, + exponentiale: exponentiale$2, + fallingdotseq: fallingdotseq$2, + fcy: fcy$2, + female: female$2, + ffilig: ffilig$2, + fflig: fflig$2, + ffllig: ffllig$2, + ffr: ffr$2, + filig: filig$2, + fjlig: fjlig$2, + flat: flat$2, + fllig: fllig$2, + fltns: fltns$2, + fnof: fnof$2, + fopf: fopf$2, + forall: forall$2, + fork: fork$2, + forkv: forkv$2, + fpartint: fpartint$2, + frac1: frac1$2, + frac12: frac12$2, + frac13: frac13$2, + frac14: frac14$2, + frac15: frac15$2, + frac16: frac16$2, + frac18: frac18$2, + frac23: frac23$2, + frac25: frac25$2, + frac3: frac3$2, + frac34: frac34$2, + frac35: frac35$2, + frac38: frac38$2, + frac45: frac45$2, + frac56: frac56$2, + frac58: frac58$2, + frac78: frac78$2, + frasl: frasl$2, + frown: frown$2, + fscr: fscr$2, + gE: gE$2, + gEl: gEl$2, + gacute: gacute$2, + gamma: gamma$2, + gammad: gammad$2, + gap: gap$2, + gbreve: gbreve$2, + gcirc: gcirc$2, + gcy: gcy$2, + gdot: gdot$2, + ge: ge$2, + gel: gel$2, + geq: geq$2, + geqq: geqq$2, + geqslant: geqslant$2, + ges: ges$2, + gescc: gescc$2, + gesdot: gesdot$2, + gesdoto: gesdoto$2, + gesdotol: gesdotol$2, + gesl: gesl$2, + gesles: gesles$2, + gfr: gfr$2, + gg: gg$2, + ggg: ggg$2, + gimel: gimel$2, + gjcy: gjcy$2, + gl: gl$2, + glE: glE$2, + gla: gla$2, + glj: glj$2, + gnE: gnE$2, + gnap: gnap$2, + gnapprox: gnapprox$2, + gne: gne$2, + gneq: gneq$2, + gneqq: gneqq$2, + gnsim: gnsim$2, + gopf: gopf$2, + grave: grave$2, + gscr: gscr$2, + gsim: gsim$2, + gsime: gsime$2, + gsiml: gsiml$2, + g: g$2, + gt: gt$2, + gtcc: gtcc$2, + gtcir: gtcir$2, + gtdot: gtdot$2, + gtlPar: gtlPar$2, + gtquest: gtquest$2, + gtrapprox: gtrapprox$2, + gtrarr: gtrarr$2, + gtrdot: gtrdot$2, + gtreqless: gtreqless$2, + gtreqqless: gtreqqless$2, + gtrless: gtrless$2, + gtrsim: gtrsim$2, + gvertneqq: gvertneqq$2, + gvnE: gvnE$2, + hArr: hArr$2, + hairsp: hairsp$2, + half: half$2, + hamilt: hamilt$2, + hardcy: hardcy$2, + harr: harr$2, + harrcir: harrcir$2, + harrw: harrw$2, + hbar: hbar$2, + hcirc: hcirc$2, + hearts: hearts$2, + heartsuit: heartsuit$2, + hellip: hellip$2, + hercon: hercon$2, + hfr: hfr$2, + hksearow: hksearow$2, + hkswarow: hkswarow$2, + hoarr: hoarr$2, + homtht: homtht$2, + hookleftarrow: hookleftarrow$2, + hookrightarrow: hookrightarrow$2, + hopf: hopf$2, + horbar: horbar$2, + hscr: hscr$2, + hslash: hslash$2, + hstrok: hstrok$2, + hybull: hybull$2, + hyphen: hyphen$2, + iacut: iacut$2, + iacute: iacute$2, + ic: ic$2, + icir: icir$2, + icirc: icirc$2, + icy: icy$2, + iecy: iecy$2, + iexc: iexc$2, + iexcl: iexcl$2, + iff: iff$2, + ifr: ifr$2, + igrav: igrav$2, + igrave: igrave$2, + ii: ii$2, + iiiint: iiiint$2, + iiint: iiint$2, + iinfin: iinfin$2, + iiota: iiota$2, + ijlig: ijlig$2, + imacr: imacr$2, + image: image$3, + imagline: imagline$2, + imagpart: imagpart$2, + imath: imath$2, + imof: imof$2, + imped: imped$2, + "in": "∈", + incare: incare$2, + infin: infin$2, + infintie: infintie$2, + inodot: inodot$2, + int: int$3, + intcal: intcal$2, + integers: integers$2, + intercal: intercal$2, + intlarhk: intlarhk$2, + intprod: intprod$2, + iocy: iocy$2, + iogon: iogon$2, + iopf: iopf$2, + iota: iota$2, + iprod: iprod$2, + iques: iques$2, + iquest: iquest$2, + iscr: iscr$2, + isin: isin$2, + isinE: isinE$2, + isindot: isindot$2, + isins: isins$2, + isinsv: isinsv$2, + isinv: isinv$2, + it: it$2, + itilde: itilde$2, + iukcy: iukcy$2, + ium: ium$2, + iuml: iuml$2, + jcirc: jcirc$2, + jcy: jcy$2, + jfr: jfr$2, + jmath: jmath$2, + jopf: jopf$2, + jscr: jscr$2, + jsercy: jsercy$2, + jukcy: jukcy$2, + kappa: kappa$2, + kappav: kappav$2, + kcedil: kcedil$2, + kcy: kcy$2, + kfr: kfr$2, + kgreen: kgreen$2, + khcy: khcy$2, + kjcy: kjcy$2, + kopf: kopf$2, + kscr: kscr$2, + lAarr: lAarr$2, + lArr: lArr$2, + lAtail: lAtail$2, + lBarr: lBarr$2, + lE: lE$2, + lEg: lEg$2, + lHar: lHar$2, + lacute: lacute$2, + laemptyv: laemptyv$2, + lagran: lagran$2, + lambda: lambda$2, + lang: lang$2, + langd: langd$2, + langle: langle$2, + lap: lap$2, + laqu: laqu$2, + laquo: laquo$2, + larr: larr$2, + larrb: larrb$2, + larrbfs: larrbfs$2, + larrfs: larrfs$2, + larrhk: larrhk$2, + larrlp: larrlp$2, + larrpl: larrpl$2, + larrsim: larrsim$2, + larrtl: larrtl$2, + lat: lat$2, + latail: latail$2, + late: late$2, + lates: lates$2, + lbarr: lbarr$2, + lbbrk: lbbrk$2, + lbrace: lbrace$2, + lbrack: lbrack$2, + lbrke: lbrke$2, + lbrksld: lbrksld$2, + lbrkslu: lbrkslu$2, + lcaron: lcaron$2, + lcedil: lcedil$2, + lceil: lceil$2, + lcub: lcub$2, + lcy: lcy$2, + ldca: ldca$2, + ldquo: ldquo$2, + ldquor: ldquor$2, + ldrdhar: ldrdhar$2, + ldrushar: ldrushar$2, + ldsh: ldsh$2, + le: le$2, + leftarrow: leftarrow$2, + leftarrowtail: leftarrowtail$2, + leftharpoondown: leftharpoondown$2, + leftharpoonup: leftharpoonup$2, + leftleftarrows: leftleftarrows$2, + leftrightarrow: leftrightarrow$2, + leftrightarrows: leftrightarrows$2, + leftrightharpoons: leftrightharpoons$2, + leftrightsquigarrow: leftrightsquigarrow$2, + leftthreetimes: leftthreetimes$2, + leg: leg$2, + leq: leq$2, + leqq: leqq$2, + leqslant: leqslant$2, + les: les$2, + lescc: lescc$2, + lesdot: lesdot$2, + lesdoto: lesdoto$2, + lesdotor: lesdotor$2, + lesg: lesg$2, + lesges: lesges$2, + lessapprox: lessapprox$2, + lessdot: lessdot$2, + lesseqgtr: lesseqgtr$2, + lesseqqgtr: lesseqqgtr$2, + lessgtr: lessgtr$2, + lesssim: lesssim$2, + lfisht: lfisht$2, + lfloor: lfloor$2, + lfr: lfr$2, + lg: lg$2, + lgE: lgE$2, + lhard: lhard$2, + lharu: lharu$2, + lharul: lharul$2, + lhblk: lhblk$2, + ljcy: ljcy$2, + ll: ll$2, + llarr: llarr$2, + llcorner: llcorner$2, + llhard: llhard$2, + lltri: lltri$2, + lmidot: lmidot$2, + lmoust: lmoust$2, + lmoustache: lmoustache$2, + lnE: lnE$2, + lnap: lnap$2, + lnapprox: lnapprox$2, + lne: lne$2, + lneq: lneq$2, + lneqq: lneqq$2, + lnsim: lnsim$2, + loang: loang$2, + loarr: loarr$2, + lobrk: lobrk$2, + longleftarrow: longleftarrow$2, + longleftrightarrow: longleftrightarrow$2, + longmapsto: longmapsto$2, + longrightarrow: longrightarrow$2, + looparrowleft: looparrowleft$2, + looparrowright: looparrowright$2, + lopar: lopar$2, + lopf: lopf$2, + loplus: loplus$2, + lotimes: lotimes$2, + lowast: lowast$2, + lowbar: lowbar$2, + loz: loz$2, + lozenge: lozenge$2, + lozf: lozf$2, + lpar: lpar$2, + lparlt: lparlt$2, + lrarr: lrarr$2, + lrcorner: lrcorner$2, + lrhar: lrhar$2, + lrhard: lrhard$2, + lrm: lrm$2, + lrtri: lrtri$2, + lsaquo: lsaquo$2, + lscr: lscr$2, + lsh: lsh$2, + lsim: lsim$2, + lsime: lsime$2, + lsimg: lsimg$2, + lsqb: lsqb$2, + lsquo: lsquo$2, + lsquor: lsquor$2, + lstrok: lstrok$2, + l: l$2, + lt: lt$3, + ltcc: ltcc$2, + ltcir: ltcir$2, + ltdot: ltdot$2, + lthree: lthree$2, + ltimes: ltimes$2, + ltlarr: ltlarr$2, + ltquest: ltquest$2, + ltrPar: ltrPar$2, + ltri: ltri$2, + ltrie: ltrie$2, + ltrif: ltrif$2, + lurdshar: lurdshar$2, + luruhar: luruhar$2, + lvertneqq: lvertneqq$2, + lvnE: lvnE$2, + mDDot: mDDot$2, + mac: mac$2, + macr: macr$2, + male: male$2, + malt: malt$2, + maltese: maltese$2, + map: map$5, + mapsto: mapsto$2, + mapstodown: mapstodown$2, + mapstoleft: mapstoleft$2, + mapstoup: mapstoup$2, + marker: marker$2, + mcomma: mcomma$2, + mcy: mcy$2, + mdash: mdash$2, + measuredangle: measuredangle$2, + mfr: mfr$2, + mho: mho$2, + micr: micr$2, + micro: micro$2, + mid: mid$2, + midast: midast$2, + midcir: midcir$2, + middo: middo$2, + middot: middot$2, + minus: minus$2, + minusb: minusb$2, + minusd: minusd$2, + minusdu: minusdu$2, + mlcp: mlcp$2, + mldr: mldr$2, + mnplus: mnplus$2, + models: models$2, + mopf: mopf$2, + mp: mp$2, + mscr: mscr$2, + mstpos: mstpos$2, + mu: mu$2, + multimap: multimap$2, + mumap: mumap$2, + nGg: nGg$2, + nGt: nGt$2, + nGtv: nGtv$2, + nLeftarrow: nLeftarrow$2, + nLeftrightarrow: nLeftrightarrow$2, + nLl: nLl$2, + nLt: nLt$2, + nLtv: nLtv$2, + nRightarrow: nRightarrow$2, + nVDash: nVDash$2, + nVdash: nVdash$2, + nabla: nabla$2, + nacute: nacute$2, + nang: nang$2, + nap: nap$2, + napE: napE$2, + napid: napid$2, + napos: napos$2, + napprox: napprox$2, + natur: natur$2, + natural: natural$2, + naturals: naturals$2, + nbs: nbs$2, + nbsp: nbsp$2, + nbump: nbump$2, + nbumpe: nbumpe$2, + ncap: ncap$2, + ncaron: ncaron$2, + ncedil: ncedil$2, + ncong: ncong$2, + ncongdot: ncongdot$2, + ncup: ncup$2, + ncy: ncy$2, + ndash: ndash$2, + ne: ne$2, + neArr: neArr$2, + nearhk: nearhk$2, + nearr: nearr$2, + nearrow: nearrow$2, + nedot: nedot$2, + nequiv: nequiv$2, + nesear: nesear$2, + nesim: nesim$2, + nexist: nexist$2, + nexists: nexists$2, + nfr: nfr$2, + ngE: ngE$2, + nge: nge$2, + ngeq: ngeq$2, + ngeqq: ngeqq$2, + ngeqslant: ngeqslant$2, + nges: nges$2, + ngsim: ngsim$2, + ngt: ngt$2, + ngtr: ngtr$2, + nhArr: nhArr$2, + nharr: nharr$2, + nhpar: nhpar$2, + ni: ni$2, + nis: nis$2, + nisd: nisd$2, + niv: niv$2, + njcy: njcy$2, + nlArr: nlArr$2, + nlE: nlE$2, + nlarr: nlarr$2, + nldr: nldr$2, + nle: nle$2, + nleftarrow: nleftarrow$2, + nleftrightarrow: nleftrightarrow$2, + nleq: nleq$2, + nleqq: nleqq$2, + nleqslant: nleqslant$2, + nles: nles$2, + nless: nless$2, + nlsim: nlsim$2, + nlt: nlt$2, + nltri: nltri$2, + nltrie: nltrie$2, + nmid: nmid$2, + nopf: nopf$2, + no: no$2, + not: not$2, + notin: notin$2, + notinE: notinE$2, + notindot: notindot$2, + notinva: notinva$2, + notinvb: notinvb$2, + notinvc: notinvc$2, + notni: notni$2, + notniva: notniva$2, + notnivb: notnivb$2, + notnivc: notnivc$2, + npar: npar$2, + nparallel: nparallel$2, + nparsl: nparsl$2, + npart: npart$2, + npolint: npolint$2, + npr: npr$2, + nprcue: nprcue$2, + npre: npre$2, + nprec: nprec$2, + npreceq: npreceq$2, + nrArr: nrArr$2, + nrarr: nrarr$2, + nrarrc: nrarrc$2, + nrarrw: nrarrw$2, + nrightarrow: nrightarrow$2, + nrtri: nrtri$2, + nrtrie: nrtrie$2, + nsc: nsc$2, + nsccue: nsccue$2, + nsce: nsce$2, + nscr: nscr$2, + nshortmid: nshortmid$2, + nshortparallel: nshortparallel$2, + nsim: nsim$2, + nsime: nsime$2, + nsimeq: nsimeq$2, + nsmid: nsmid$2, + nspar: nspar$2, + nsqsube: nsqsube$2, + nsqsupe: nsqsupe$2, + nsub: nsub$2, + nsubE: nsubE$2, + nsube: nsube$2, + nsubset: nsubset$2, + nsubseteq: nsubseteq$2, + nsubseteqq: nsubseteqq$2, + nsucc: nsucc$2, + nsucceq: nsucceq$2, + nsup: nsup$2, + nsupE: nsupE$2, + nsupe: nsupe$2, + nsupset: nsupset$2, + nsupseteq: nsupseteq$2, + nsupseteqq: nsupseteqq$2, + ntgl: ntgl$2, + ntild: ntild$2, + ntilde: ntilde$2, + ntlg: ntlg$2, + ntriangleleft: ntriangleleft$2, + ntrianglelefteq: ntrianglelefteq$2, + ntriangleright: ntriangleright$2, + ntrianglerighteq: ntrianglerighteq$2, + nu: nu$2, + num: num$2, + numero: numero$2, + numsp: numsp$2, + nvDash: nvDash$2, + nvHarr: nvHarr$2, + nvap: nvap$2, + nvdash: nvdash$2, + nvge: nvge$2, + nvgt: nvgt$2, + nvinfin: nvinfin$2, + nvlArr: nvlArr$2, + nvle: nvle$2, + nvlt: nvlt$2, + nvltrie: nvltrie$2, + nvrArr: nvrArr$2, + nvrtrie: nvrtrie$2, + nvsim: nvsim$2, + nwArr: nwArr$2, + nwarhk: nwarhk$2, + nwarr: nwarr$2, + nwarrow: nwarrow$2, + nwnear: nwnear$2, + oS: oS$2, + oacut: oacut$2, + oacute: oacute$2, + oast: oast$2, + ocir: ocir$2, + ocirc: ocirc$2, + ocy: ocy$2, + odash: odash$2, + odblac: odblac$2, + odiv: odiv$2, + odot: odot$2, + odsold: odsold$2, + oelig: oelig$2, + ofcir: ofcir$2, + ofr: ofr$2, + ogon: ogon$2, + ograv: ograv$2, + ograve: ograve$2, + ogt: ogt$2, + ohbar: ohbar$2, + ohm: ohm$2, + oint: oint$2, + olarr: olarr$2, + olcir: olcir$2, + olcross: olcross$2, + oline: oline$2, + olt: olt$2, + omacr: omacr$2, + omega: omega$2, + omicron: omicron$2, + omid: omid$2, + ominus: ominus$2, + oopf: oopf$2, + opar: opar$2, + operp: operp$2, + oplus: oplus$2, + or: or$2, + orarr: orarr$2, + ord: ord$2, + order: order$2, + orderof: orderof$2, + ordf: ordf$2, + ordm: ordm$2, + origof: origof$2, + oror: oror$2, + orslope: orslope$2, + orv: orv$2, + oscr: oscr$2, + oslas: oslas$2, + oslash: oslash$2, + osol: osol$2, + otild: otild$2, + otilde: otilde$2, + otimes: otimes$2, + otimesas: otimesas$2, + oum: oum$2, + ouml: ouml$2, + ovbar: ovbar$2, + par: par$2, + para: para$2, + parallel: parallel$2, + parsim: parsim$2, + parsl: parsl$2, + part: part$2, + pcy: pcy$2, + percnt: percnt$2, + period: period$2, + permil: permil$2, + perp: perp$2, + pertenk: pertenk$2, + pfr: pfr$2, + phi: phi$2, + phiv: phiv$2, + phmmat: phmmat$2, + phone: phone$2, + pi: pi$2, + pitchfork: pitchfork$2, + piv: piv$2, + planck: planck$2, + planckh: planckh$2, + plankv: plankv$2, + plus: plus$2, + plusacir: plusacir$2, + plusb: plusb$2, + pluscir: pluscir$2, + plusdo: plusdo$2, + plusdu: plusdu$2, + pluse: pluse$2, + plusm: plusm$2, + plusmn: plusmn$2, + plussim: plussim$2, + plustwo: plustwo$2, + pm: pm$2, + pointint: pointint$2, + popf: popf$2, + poun: poun$2, + pound: pound$2, + pr: pr$2, + prE: prE$2, + prap: prap$2, + prcue: prcue$2, + pre: pre$2, + prec: prec$2, + precapprox: precapprox$2, + preccurlyeq: preccurlyeq$2, + preceq: preceq$2, + precnapprox: precnapprox$2, + precneqq: precneqq$2, + precnsim: precnsim$2, + precsim: precsim$2, + prime: prime$2, + primes: primes$2, + prnE: prnE$2, + prnap: prnap$2, + prnsim: prnsim$2, + prod: prod$2, + profalar: profalar$2, + profline: profline$2, + profsurf: profsurf$2, + prop: prop$2, + propto: propto$2, + prsim: prsim$2, + prurel: prurel$2, + pscr: pscr$2, + psi: psi$2, + puncsp: puncsp$2, + qfr: qfr$2, + qint: qint$2, + qopf: qopf$2, + qprime: qprime$2, + qscr: qscr$2, + quaternions: quaternions$2, + quatint: quatint$2, + quest: quest$2, + questeq: questeq$2, + quo: quo$2, + quot: quot$2, + rAarr: rAarr$2, + rArr: rArr$2, + rAtail: rAtail$2, + rBarr: rBarr$2, + rHar: rHar$2, + race: race$2, + racute: racute$2, + radic: radic$2, + raemptyv: raemptyv$2, + rang: rang$2, + rangd: rangd$2, + range: range$2, + rangle: rangle$2, + raqu: raqu$2, + raquo: raquo$2, + rarr: rarr$2, + rarrap: rarrap$2, + rarrb: rarrb$2, + rarrbfs: rarrbfs$2, + rarrc: rarrc$2, + rarrfs: rarrfs$2, + rarrhk: rarrhk$2, + rarrlp: rarrlp$2, + rarrpl: rarrpl$2, + rarrsim: rarrsim$2, + rarrtl: rarrtl$2, + rarrw: rarrw$2, + ratail: ratail$2, + ratio: ratio$2, + rationals: rationals$2, + rbarr: rbarr$2, + rbbrk: rbbrk$2, + rbrace: rbrace$2, + rbrack: rbrack$2, + rbrke: rbrke$2, + rbrksld: rbrksld$2, + rbrkslu: rbrkslu$2, + rcaron: rcaron$2, + rcedil: rcedil$2, + rceil: rceil$2, + rcub: rcub$2, + rcy: rcy$2, + rdca: rdca$2, + rdldhar: rdldhar$2, + rdquo: rdquo$2, + rdquor: rdquor$2, + rdsh: rdsh$2, + real: real$2, + realine: realine$2, + realpart: realpart$2, + reals: reals$2, + rect: rect$2, + re: re$6, + reg: reg$2, + rfisht: rfisht$2, + rfloor: rfloor$2, + rfr: rfr$2, + rhard: rhard$2, + rharu: rharu$2, + rharul: rharul$2, + rho: rho$2, + rhov: rhov$2, + rightarrow: rightarrow$2, + rightarrowtail: rightarrowtail$2, + rightharpoondown: rightharpoondown$2, + rightharpoonup: rightharpoonup$2, + rightleftarrows: rightleftarrows$2, + rightleftharpoons: rightleftharpoons$2, + rightrightarrows: rightrightarrows$2, + rightsquigarrow: rightsquigarrow$2, + rightthreetimes: rightthreetimes$2, + ring: ring$2, + risingdotseq: risingdotseq$2, + rlarr: rlarr$2, + rlhar: rlhar$2, + rlm: rlm$2, + rmoust: rmoust$2, + rmoustache: rmoustache$2, + rnmid: rnmid$2, + roang: roang$2, + roarr: roarr$2, + robrk: robrk$2, + ropar: ropar$2, + ropf: ropf$2, + roplus: roplus$2, + rotimes: rotimes$2, + rpar: rpar$2, + rpargt: rpargt$2, + rppolint: rppolint$2, + rrarr: rrarr$2, + rsaquo: rsaquo$2, + rscr: rscr$2, + rsh: rsh$2, + rsqb: rsqb$2, + rsquo: rsquo$2, + rsquor: rsquor$2, + rthree: rthree$2, + rtimes: rtimes$2, + rtri: rtri$2, + rtrie: rtrie$2, + rtrif: rtrif$2, + rtriltri: rtriltri$2, + ruluhar: ruluhar$2, + rx: rx$2, + sacute: sacute$2, + sbquo: sbquo$2, + sc: sc$2, + scE: scE$2, + scap: scap$2, + scaron: scaron$2, + sccue: sccue$2, + sce: sce$2, + scedil: scedil$2, + scirc: scirc$2, + scnE: scnE$2, + scnap: scnap$2, + scnsim: scnsim$2, + scpolint: scpolint$2, + scsim: scsim$2, + scy: scy$2, + sdot: sdot$2, + sdotb: sdotb$2, + sdote: sdote$2, + seArr: seArr$2, + searhk: searhk$2, + searr: searr$2, + searrow: searrow$2, + sec: sec$2, + sect: sect$2, + semi: semi$2, + seswar: seswar$2, + setminus: setminus$2, + setmn: setmn$2, + sext: sext$2, + sfr: sfr$2, + sfrown: sfrown$2, + sharp: sharp$2, + shchcy: shchcy$2, + shcy: shcy$2, + shortmid: shortmid$2, + shortparallel: shortparallel$2, + sh: sh$2, + shy: shy$2, + sigma: sigma$2, + sigmaf: sigmaf$2, + sigmav: sigmav$2, + sim: sim$2, + simdot: simdot$2, + sime: sime$2, + simeq: simeq$2, + simg: simg$2, + simgE: simgE$2, + siml: siml$2, + simlE: simlE$2, + simne: simne$2, + simplus: simplus$2, + simrarr: simrarr$2, + slarr: slarr$2, + smallsetminus: smallsetminus$2, + smashp: smashp$2, + smeparsl: smeparsl$2, + smid: smid$2, + smile: smile$2, + smt: smt$2, + smte: smte$2, + smtes: smtes$2, + softcy: softcy$2, + sol: sol$2, + solb: solb$2, + solbar: solbar$2, + sopf: sopf$2, + spades: spades$2, + spadesuit: spadesuit$2, + spar: spar$2, + sqcap: sqcap$2, + sqcaps: sqcaps$2, + sqcup: sqcup$2, + sqcups: sqcups$2, + sqsub: sqsub$2, + sqsube: sqsube$2, + sqsubset: sqsubset$2, + sqsubseteq: sqsubseteq$2, + sqsup: sqsup$2, + sqsupe: sqsupe$2, + sqsupset: sqsupset$2, + sqsupseteq: sqsupseteq$2, + squ: squ$2, + square: square$2, + squarf: squarf$2, + squf: squf$2, + srarr: srarr$2, + sscr: sscr$2, + ssetmn: ssetmn$2, + ssmile: ssmile$2, + sstarf: sstarf$2, + star: star$2, + starf: starf$2, + straightepsilon: straightepsilon$2, + straightphi: straightphi$2, + strns: strns$2, + sub: sub$2, + subE: subE$2, + subdot: subdot$2, + sube: sube$2, + subedot: subedot$2, + submult: submult$2, + subnE: subnE$2, + subne: subne$2, + subplus: subplus$2, + subrarr: subrarr$2, + subset: subset$2, + subseteq: subseteq$2, + subseteqq: subseteqq$2, + subsetneq: subsetneq$2, + subsetneqq: subsetneqq$2, + subsim: subsim$2, + subsub: subsub$2, + subsup: subsup$2, + succ: succ$2, + succapprox: succapprox$2, + succcurlyeq: succcurlyeq$2, + succeq: succeq$2, + succnapprox: succnapprox$2, + succneqq: succneqq$2, + succnsim: succnsim$2, + succsim: succsim$2, + sum: sum$2, + sung: sung$2, + sup: sup$2, + sup1: sup1$2, + sup2: sup2$2, + sup3: sup3$2, + supE: supE$2, + supdot: supdot$2, + supdsub: supdsub$2, + supe: supe$2, + supedot: supedot$2, + suphsol: suphsol$2, + suphsub: suphsub$2, + suplarr: suplarr$2, + supmult: supmult$2, + supnE: supnE$2, + supne: supne$2, + supplus: supplus$2, + supset: supset$2, + supseteq: supseteq$2, + supseteqq: supseteqq$2, + supsetneq: supsetneq$2, + supsetneqq: supsetneqq$2, + supsim: supsim$2, + supsub: supsub$2, + supsup: supsup$2, + swArr: swArr$2, + swarhk: swarhk$2, + swarr: swarr$2, + swarrow: swarrow$2, + swnwar: swnwar$2, + szli: szli$2, + szlig: szlig$2, + target: target$2, + tau: tau$2, + tbrk: tbrk$2, + tcaron: tcaron$2, + tcedil: tcedil$2, + tcy: tcy$2, + tdot: tdot$2, + telrec: telrec$2, + tfr: tfr$2, + there4: there4$2, + therefore: therefore$2, + theta: theta$2, + thetasym: thetasym$2, + thetav: thetav$2, + thickapprox: thickapprox$2, + thicksim: thicksim$2, + thinsp: thinsp$2, + thkap: thkap$2, + thksim: thksim$2, + thor: thor$2, + thorn: thorn$2, + tilde: tilde$2, + time: time$2, + times: times$2, + timesb: timesb$2, + timesbar: timesbar$2, + timesd: timesd$2, + tint: tint$2, + toea: toea$2, + top: top$2, + topbot: topbot$2, + topcir: topcir$2, + topf: topf$2, + topfork: topfork$2, + tosa: tosa$2, + tprime: tprime$2, + trade: trade$2, + triangle: triangle$2, + triangledown: triangledown$2, + triangleleft: triangleleft$2, + trianglelefteq: trianglelefteq$2, + triangleq: triangleq$2, + triangleright: triangleright$2, + trianglerighteq: trianglerighteq$2, + tridot: tridot$2, + trie: trie$2, + triminus: triminus$2, + triplus: triplus$2, + trisb: trisb$2, + tritime: tritime$2, + trpezium: trpezium$2, + tscr: tscr$2, + tscy: tscy$2, + tshcy: tshcy$2, + tstrok: tstrok$2, + twixt: twixt$2, + twoheadleftarrow: twoheadleftarrow$2, + twoheadrightarrow: twoheadrightarrow$2, + uArr: uArr$2, + uHar: uHar$2, + uacut: uacut$2, + uacute: uacute$2, + uarr: uarr$2, + ubrcy: ubrcy$2, + ubreve: ubreve$2, + ucir: ucir$2, + ucirc: ucirc$2, + ucy: ucy$2, + udarr: udarr$2, + udblac: udblac$2, + udhar: udhar$2, + ufisht: ufisht$2, + ufr: ufr$2, + ugrav: ugrav$2, + ugrave: ugrave$2, + uharl: uharl$2, + uharr: uharr$2, + uhblk: uhblk$2, + ulcorn: ulcorn$2, + ulcorner: ulcorner$2, + ulcrop: ulcrop$2, + ultri: ultri$2, + umacr: umacr$2, + um: um$2, + uml: uml$2, + uogon: uogon$2, + uopf: uopf$2, + uparrow: uparrow$2, + updownarrow: updownarrow$2, + upharpoonleft: upharpoonleft$2, + upharpoonright: upharpoonright$2, + uplus: uplus$2, + upsi: upsi$2, + upsih: upsih$2, + upsilon: upsilon$2, + upuparrows: upuparrows$2, + urcorn: urcorn$2, + urcorner: urcorner$2, + urcrop: urcrop$2, + uring: uring$2, + urtri: urtri$2, + uscr: uscr$2, + utdot: utdot$2, + utilde: utilde$2, + utri: utri$2, + utrif: utrif$2, + uuarr: uuarr$2, + uum: uum$2, + uuml: uuml$2, + uwangle: uwangle$2, + vArr: vArr$2, + vBar: vBar$2, + vBarv: vBarv$2, + vDash: vDash$2, + vangrt: vangrt$2, + varepsilon: varepsilon$2, + varkappa: varkappa$2, + varnothing: varnothing$2, + varphi: varphi$2, + varpi: varpi$2, + varpropto: varpropto$2, + varr: varr$2, + varrho: varrho$2, + varsigma: varsigma$2, + varsubsetneq: varsubsetneq$2, + varsubsetneqq: varsubsetneqq$2, + varsupsetneq: varsupsetneq$2, + varsupsetneqq: varsupsetneqq$2, + vartheta: vartheta$2, + vartriangleleft: vartriangleleft$2, + vartriangleright: vartriangleright$2, + vcy: vcy$2, + vdash: vdash$2, + vee: vee$2, + veebar: veebar$2, + veeeq: veeeq$2, + vellip: vellip$2, + verbar: verbar$2, + vert: vert$2, + vfr: vfr$2, + vltri: vltri$2, + vnsub: vnsub$2, + vnsup: vnsup$2, + vopf: vopf$2, + vprop: vprop$2, + vrtri: vrtri$2, + vscr: vscr$2, + vsubnE: vsubnE$2, + vsubne: vsubne$2, + vsupnE: vsupnE$2, + vsupne: vsupne$2, + vzigzag: vzigzag$2, + wcirc: wcirc$2, + wedbar: wedbar$2, + wedge: wedge$2, + wedgeq: wedgeq$2, + weierp: weierp$2, + wfr: wfr$2, + wopf: wopf$2, + wp: wp$2, + wr: wr$2, + wreath: wreath$2, + wscr: wscr$2, + xcap: xcap$2, + xcirc: xcirc$2, + xcup: xcup$2, + xdtri: xdtri$2, + xfr: xfr$2, + xhArr: xhArr$2, + xharr: xharr$2, + xi: xi$2, + xlArr: xlArr$2, + xlarr: xlarr$2, + xmap: xmap$2, + xnis: xnis$2, + xodot: xodot$2, + xopf: xopf$2, + xoplus: xoplus$2, + xotime: xotime$2, + xrArr: xrArr$2, + xrarr: xrarr$2, + xscr: xscr$2, + xsqcup: xsqcup$2, + xuplus: xuplus$2, + xutri: xutri$2, + xvee: xvee$2, + xwedge: xwedge$2, + yacut: yacut$2, + yacute: yacute$2, + yacy: yacy$2, + ycirc: ycirc$2, + ycy: ycy$2, + ye: ye$2, + yen: yen$2, + yfr: yfr$2, + yicy: yicy$2, + yopf: yopf$2, + yscr: yscr$2, + yucy: yucy$2, + yum: yum$2, + yuml: yuml$2, + zacute: zacute$2, + zcaron: zcaron$2, + zcy: zcy$2, + zdot: zdot$2, + zeetrf: zeetrf$2, + zeta: zeta$2, + zfr: zfr$2, + zhcy: zhcy$2, + zigrarr: zigrarr$2, + zopf: zopf$2, + zscr: zscr$2, + zwj: zwj$2, + zwnj: zwnj$2 +}; -const AEli = "Æ"; -const AElig = "Æ"; -const AM = "&"; -const AMP = "&"; -const Aacut = "Á"; -const Aacute = "Á"; -const Abreve = "Ă"; -const Acir = "Â"; -const Acirc = "Â"; -const Acy = "А"; -const Afr = "𝔄"; -const Agrav = "À"; -const Agrave = "À"; -const Alpha = "Α"; -const Amacr = "Ā"; -const And = "⩓"; -const Aogon = "Ą"; -const Aopf = "𝔸"; -const ApplyFunction = "⁡"; -const Arin = "Å"; -const Aring = "Å"; -const Ascr = "𝒜"; -const Assign = "≔"; -const Atild = "Ã"; -const Atilde = "Ã"; -const Aum = "Ä"; -const Auml = "Ä"; -const Backslash = "∖"; -const Barv = "⫧"; -const Barwed = "⌆"; -const Bcy = "Б"; -const Because = "∵"; -const Bernoullis = "ℬ"; -const Beta = "Β"; -const Bfr = "𝔅"; -const Bopf = "𝔹"; -const Breve = "˘"; -const Bscr = "ℬ"; -const Bumpeq = "≎"; -const CHcy = "Ч"; -const COP = "©"; -const COPY = "©"; -const Cacute = "Ć"; -const Cap = "⋒"; -const CapitalDifferentialD = "ⅅ"; -const Cayleys = "ℭ"; -const Ccaron = "Č"; -const Ccedi = "Ç"; -const Ccedil = "Ç"; -const Ccirc = "Ĉ"; -const Cconint = "∰"; -const Cdot = "Ċ"; -const Cedilla = "¸"; -const CenterDot = "·"; -const Cfr = "ℭ"; -const Chi = "Χ"; -const CircleDot = "⊙"; -const CircleMinus = "⊖"; -const CirclePlus = "⊕"; -const CircleTimes = "⊗"; -const ClockwiseContourIntegral = "∲"; -const CloseCurlyDoubleQuote = "”"; -const CloseCurlyQuote = "’"; -const Colon = "∷"; -const Colone = "⩴"; -const Congruent = "≡"; -const Conint = "∯"; -const ContourIntegral = "∮"; -const Copf = "ℂ"; -const Coproduct = "∐"; -const CounterClockwiseContourIntegral = "∳"; -const Cross = "⨯"; -const Cscr = "𝒞"; -const Cup = "⋓"; -const CupCap = "≍"; -const DD = "ⅅ"; -const DDotrahd = "⤑"; -const DJcy = "Ђ"; -const DScy = "Ѕ"; -const DZcy = "Џ"; -const Dagger = "‡"; -const Darr = "↡"; -const Dashv = "⫤"; -const Dcaron = "Ď"; -const Dcy = "Д"; -const Del = "∇"; -const Delta = "Δ"; -const Dfr = "𝔇"; -const DiacriticalAcute = "´"; -const DiacriticalDot = "˙"; -const DiacriticalDoubleAcute = "˝"; -const DiacriticalGrave = "`"; -const DiacriticalTilde = "˜"; -const Diamond = "⋄"; -const DifferentialD = "ⅆ"; -const Dopf = "𝔻"; -const Dot = "¨"; -const DotDot = "⃜"; -const DotEqual = "≐"; -const DoubleContourIntegral = "∯"; -const DoubleDot = "¨"; -const DoubleDownArrow = "⇓"; -const DoubleLeftArrow = "⇐"; -const DoubleLeftRightArrow = "⇔"; -const DoubleLeftTee = "⫤"; -const DoubleLongLeftArrow = "⟸"; -const DoubleLongLeftRightArrow = "⟺"; -const DoubleLongRightArrow = "⟹"; -const DoubleRightArrow = "⇒"; -const DoubleRightTee = "⊨"; -const DoubleUpArrow = "⇑"; -const DoubleUpDownArrow = "⇕"; -const DoubleVerticalBar = "∥"; -const DownArrow = "↓"; -const DownArrowBar = "⤓"; -const DownArrowUpArrow = "⇵"; -const DownBreve = "̑"; -const DownLeftRightVector = "⥐"; -const DownLeftTeeVector = "⥞"; -const DownLeftVector = "↽"; -const DownLeftVectorBar = "⥖"; -const DownRightTeeVector = "⥟"; -const DownRightVector = "⇁"; -const DownRightVectorBar = "⥗"; -const DownTee = "⊤"; -const DownTeeArrow = "↧"; -const Downarrow = "⇓"; -const Dscr = "𝒟"; -const Dstrok = "Đ"; -const ENG = "Ŋ"; -const ET = "Ð"; -const ETH = "Ð"; -const Eacut = "É"; -const Eacute = "É"; -const Ecaron = "Ě"; -const Ecir = "Ê"; -const Ecirc = "Ê"; -const Ecy = "Э"; -const Edot = "Ė"; -const Efr = "𝔈"; -const Egrav = "È"; -const Egrave = "È"; -const Element = "∈"; -const Emacr = "Ē"; -const EmptySmallSquare = "◻"; -const EmptyVerySmallSquare = "▫"; -const Eogon = "Ę"; -const Eopf = "𝔼"; -const Epsilon = "Ε"; -const Equal = "⩵"; -const EqualTilde = "≂"; -const Equilibrium = "⇌"; -const Escr = "ℰ"; -const Esim = "⩳"; -const Eta = "Η"; -const Eum = "Ë"; -const Euml = "Ë"; -const Exists = "∃"; -const ExponentialE = "ⅇ"; -const Fcy = "Ф"; -const Ffr = "𝔉"; -const FilledSmallSquare = "◼"; -const FilledVerySmallSquare = "▪"; -const Fopf = "𝔽"; -const ForAll = "∀"; -const Fouriertrf = "ℱ"; -const Fscr = "ℱ"; -const GJcy = "Ѓ"; -const G = ">"; -const GT = ">"; -const Gamma = "Γ"; -const Gammad = "Ϝ"; -const Gbreve = "Ğ"; -const Gcedil = "Ģ"; -const Gcirc = "Ĝ"; -const Gcy = "Г"; -const Gdot = "Ġ"; -const Gfr = "𝔊"; -const Gg = "⋙"; -const Gopf = "𝔾"; -const GreaterEqual = "≥"; -const GreaterEqualLess = "⋛"; -const GreaterFullEqual = "≧"; -const GreaterGreater = "⪢"; -const GreaterLess = "≷"; -const GreaterSlantEqual = "⩾"; -const GreaterTilde = "≳"; -const Gscr = "𝒢"; -const Gt = "≫"; -const HARDcy = "Ъ"; -const Hacek = "ˇ"; -const Hat = "^"; -const Hcirc = "Ĥ"; -const Hfr = "ℌ"; -const HilbertSpace = "ℋ"; -const Hopf = "ℍ"; -const HorizontalLine = "─"; -const Hscr = "ℋ"; -const Hstrok = "Ħ"; -const HumpDownHump = "≎"; -const HumpEqual = "≏"; -const IEcy = "Е"; -const IJlig = "IJ"; -const IOcy = "Ё"; -const Iacut = "Í"; -const Iacute = "Í"; -const Icir = "Î"; -const Icirc = "Î"; -const Icy = "И"; -const Idot = "İ"; -const Ifr = "ℑ"; -const Igrav = "Ì"; -const Igrave = "Ì"; -const Im = "ℑ"; -const Imacr = "Ī"; -const ImaginaryI = "ⅈ"; -const Implies = "⇒"; -const Int = "∬"; -const Integral = "∫"; -const Intersection = "⋂"; -const InvisibleComma = "⁣"; -const InvisibleTimes = "⁢"; -const Iogon = "Į"; -const Iopf = "𝕀"; -const Iota = "Ι"; -const Iscr = "ℐ"; -const Itilde = "Ĩ"; -const Iukcy = "І"; -const Ium = "Ï"; -const Iuml = "Ï"; -const Jcirc = "Ĵ"; -const Jcy = "Й"; -const Jfr = "𝔍"; -const Jopf = "𝕁"; -const Jscr = "𝒥"; -const Jsercy = "Ј"; -const Jukcy = "Є"; -const KHcy = "Х"; -const KJcy = "Ќ"; -const Kappa = "Κ"; -const Kcedil = "Ķ"; -const Kcy = "К"; -const Kfr = "𝔎"; -const Kopf = "𝕂"; -const Kscr = "𝒦"; -const LJcy = "Љ"; -const L = "<"; -const LT = "<"; -const Lacute = "Ĺ"; -const Lambda = "Λ"; -const Lang = "⟪"; -const Laplacetrf = "ℒ"; -const Larr = "↞"; -const Lcaron = "Ľ"; -const Lcedil = "Ļ"; -const Lcy = "Л"; -const LeftAngleBracket = "⟨"; -const LeftArrow = "←"; -const LeftArrowBar = "⇤"; -const LeftArrowRightArrow = "⇆"; -const LeftCeiling = "⌈"; -const LeftDoubleBracket = "⟦"; -const LeftDownTeeVector = "⥡"; -const LeftDownVector = "⇃"; -const LeftDownVectorBar = "⥙"; -const LeftFloor = "⌊"; -const LeftRightArrow = "↔"; -const LeftRightVector = "⥎"; -const LeftTee = "⊣"; -const LeftTeeArrow = "↤"; -const LeftTeeVector = "⥚"; -const LeftTriangle = "⊲"; -const LeftTriangleBar = "⧏"; -const LeftTriangleEqual = "⊴"; -const LeftUpDownVector = "⥑"; -const LeftUpTeeVector = "⥠"; -const LeftUpVector = "↿"; -const LeftUpVectorBar = "⥘"; -const LeftVector = "↼"; -const LeftVectorBar = "⥒"; -const Leftarrow = "⇐"; -const Leftrightarrow = "⇔"; -const LessEqualGreater = "⋚"; -const LessFullEqual = "≦"; -const LessGreater = "≶"; -const LessLess = "⪡"; -const LessSlantEqual = "⩽"; -const LessTilde = "≲"; -const Lfr = "𝔏"; -const Ll = "⋘"; -const Lleftarrow = "⇚"; -const Lmidot = "Ŀ"; -const LongLeftArrow = "⟵"; -const LongLeftRightArrow = "⟷"; -const LongRightArrow = "⟶"; -const Longleftarrow = "⟸"; -const Longleftrightarrow = "⟺"; -const Longrightarrow = "⟹"; -const Lopf = "𝕃"; -const LowerLeftArrow = "↙"; -const LowerRightArrow = "↘"; -const Lscr = "ℒ"; -const Lsh = "↰"; -const Lstrok = "Ł"; -const Lt = "≪"; -const Mcy = "М"; -const MediumSpace = " "; -const Mellintrf = "ℳ"; -const Mfr = "𝔐"; -const MinusPlus = "∓"; -const Mopf = "𝕄"; -const Mscr = "ℳ"; -const Mu = "Μ"; -const NJcy = "Њ"; -const Nacute = "Ń"; -const Ncaron = "Ň"; -const Ncedil = "Ņ"; -const Ncy = "Н"; -const NegativeMediumSpace = "​"; -const NegativeThickSpace = "​"; -const NegativeThinSpace = "​"; -const NegativeVeryThinSpace = "​"; -const NestedGreaterGreater = "≫"; -const NestedLessLess = "≪"; -const NewLine = "\n"; -const Nfr = "𝔑"; -const NoBreak = "⁠"; -const NonBreakingSpace = " "; -const Nopf = "ℕ"; -const Not = "⫬"; -const NotCongruent = "≢"; -const NotCupCap = "≭"; -const NotDoubleVerticalBar = "∦"; -const NotElement = "∉"; -const NotEqual = "≠"; -const NotEqualTilde = "≂̸"; -const NotExists = "∄"; -const NotGreater = "≯"; -const NotGreaterEqual = "≱"; -const NotGreaterFullEqual = "≧̸"; -const NotGreaterGreater = "≫̸"; -const NotGreaterLess = "≹"; -const NotGreaterSlantEqual = "⩾̸"; -const NotGreaterTilde = "≵"; -const NotHumpDownHump = "≎̸"; -const NotHumpEqual = "≏̸"; -const NotLeftTriangle = "⋪"; -const NotLeftTriangleBar = "⧏̸"; -const NotLeftTriangleEqual = "⋬"; -const NotLess = "≮"; -const NotLessEqual = "≰"; -const NotLessGreater = "≸"; -const NotLessLess = "≪̸"; -const NotLessSlantEqual = "⩽̸"; -const NotLessTilde = "≴"; -const NotNestedGreaterGreater = "⪢̸"; -const NotNestedLessLess = "⪡̸"; -const NotPrecedes = "⊀"; -const NotPrecedesEqual = "⪯̸"; -const NotPrecedesSlantEqual = "⋠"; -const NotReverseElement = "∌"; -const NotRightTriangle = "⋫"; -const NotRightTriangleBar = "⧐̸"; -const NotRightTriangleEqual = "⋭"; -const NotSquareSubset = "⊏̸"; -const NotSquareSubsetEqual = "⋢"; -const NotSquareSuperset = "⊐̸"; -const NotSquareSupersetEqual = "⋣"; -const NotSubset = "⊂⃒"; -const NotSubsetEqual = "⊈"; -const NotSucceeds = "⊁"; -const NotSucceedsEqual = "⪰̸"; -const NotSucceedsSlantEqual = "⋡"; -const NotSucceedsTilde = "≿̸"; -const NotSuperset = "⊃⃒"; -const NotSupersetEqual = "⊉"; -const NotTilde = "≁"; -const NotTildeEqual = "≄"; -const NotTildeFullEqual = "≇"; -const NotTildeTilde = "≉"; -const NotVerticalBar = "∤"; -const Nscr = "𝒩"; -const Ntild = "Ñ"; -const Ntilde = "Ñ"; -const Nu = "Ν"; -const OElig = "Œ"; -const Oacut = "Ó"; -const Oacute = "Ó"; -const Ocir = "Ô"; -const Ocirc = "Ô"; -const Ocy = "О"; -const Odblac = "Ő"; -const Ofr = "𝔒"; -const Ograv = "Ò"; -const Ograve = "Ò"; -const Omacr = "Ō"; -const Omega = "Ω"; -const Omicron = "Ο"; -const Oopf = "𝕆"; -const OpenCurlyDoubleQuote = "“"; -const OpenCurlyQuote = "‘"; -const Or = "⩔"; -const Oscr = "𝒪"; -const Oslas = "Ø"; -const Oslash = "Ø"; -const Otild = "Õ"; -const Otilde = "Õ"; -const Otimes = "⨷"; -const Oum = "Ö"; -const Ouml = "Ö"; -const OverBar = "‾"; -const OverBrace = "⏞"; -const OverBracket = "⎴"; -const OverParenthesis = "⏜"; -const PartialD = "∂"; -const Pcy = "П"; -const Pfr = "𝔓"; -const Phi = "Φ"; -const Pi = "Π"; -const PlusMinus = "±"; -const Poincareplane = "ℌ"; -const Popf = "ℙ"; -const Pr = "⪻"; -const Precedes = "≺"; -const PrecedesEqual = "⪯"; -const PrecedesSlantEqual = "≼"; -const PrecedesTilde = "≾"; -const Prime = "″"; -const Product = "∏"; -const Proportion = "∷"; -const Proportional = "∝"; -const Pscr = "𝒫"; -const Psi = "Ψ"; -const QUO = "\""; -const QUOT = "\""; -const Qfr = "𝔔"; -const Qopf = "ℚ"; -const Qscr = "𝒬"; -const RBarr = "⤐"; -const RE = "®"; -const REG = "®"; -const Racute = "Ŕ"; -const Rang = "⟫"; -const Rarr = "↠"; -const Rarrtl = "⤖"; -const Rcaron = "Ř"; -const Rcedil = "Ŗ"; -const Rcy = "Р"; -const Re = "ℜ"; -const ReverseElement = "∋"; -const ReverseEquilibrium = "⇋"; -const ReverseUpEquilibrium = "⥯"; -const Rfr = "ℜ"; -const Rho = "Ρ"; -const RightAngleBracket = "⟩"; -const RightArrow = "→"; -const RightArrowBar = "⇥"; -const RightArrowLeftArrow = "⇄"; -const RightCeiling = "⌉"; -const RightDoubleBracket = "⟧"; -const RightDownTeeVector = "⥝"; -const RightDownVector = "⇂"; -const RightDownVectorBar = "⥕"; -const RightFloor = "⌋"; -const RightTee = "⊢"; -const RightTeeArrow = "↦"; -const RightTeeVector = "⥛"; -const RightTriangle = "⊳"; -const RightTriangleBar = "⧐"; -const RightTriangleEqual = "⊵"; -const RightUpDownVector = "⥏"; -const RightUpTeeVector = "⥜"; -const RightUpVector = "↾"; -const RightUpVectorBar = "⥔"; -const RightVector = "⇀"; -const RightVectorBar = "⥓"; -const Rightarrow = "⇒"; -const Ropf = "ℝ"; -const RoundImplies = "⥰"; -const Rrightarrow = "⇛"; -const Rscr = "ℛ"; -const Rsh = "↱"; -const RuleDelayed = "⧴"; -const SHCHcy = "Щ"; -const SHcy = "Ш"; -const SOFTcy = "Ь"; -const Sacute = "Ś"; -const Sc = "⪼"; -const Scaron = "Š"; -const Scedil = "Ş"; -const Scirc = "Ŝ"; -const Scy = "С"; -const Sfr = "𝔖"; -const ShortDownArrow = "↓"; -const ShortLeftArrow = "←"; -const ShortRightArrow = "→"; -const ShortUpArrow = "↑"; -const Sigma = "Σ"; -const SmallCircle = "∘"; -const Sopf = "𝕊"; -const Sqrt = "√"; -const Square = "□"; -const SquareIntersection = "⊓"; -const SquareSubset = "⊏"; -const SquareSubsetEqual = "⊑"; -const SquareSuperset = "⊐"; -const SquareSupersetEqual = "⊒"; -const SquareUnion = "⊔"; -const Sscr = "𝒮"; -const Star = "⋆"; -const Sub = "⋐"; -const Subset = "⋐"; -const SubsetEqual = "⊆"; -const Succeeds = "≻"; -const SucceedsEqual = "⪰"; -const SucceedsSlantEqual = "≽"; -const SucceedsTilde = "≿"; -const SuchThat = "∋"; -const Sum = "∑"; -const Sup = "⋑"; -const Superset = "⊃"; -const SupersetEqual = "⊇"; -const Supset = "⋑"; -const THOR = "Þ"; -const THORN = "Þ"; -const TRADE = "™"; -const TSHcy = "Ћ"; -const TScy = "Ц"; -const Tab = "\t"; -const Tau = "Τ"; -const Tcaron = "Ť"; -const Tcedil = "Ţ"; -const Tcy = "Т"; -const Tfr = "𝔗"; -const Therefore = "∴"; -const Theta = "Θ"; -const ThickSpace = "  "; -const ThinSpace = " "; -const Tilde = "∼"; -const TildeEqual = "≃"; -const TildeFullEqual = "≅"; -const TildeTilde = "≈"; -const Topf = "𝕋"; -const TripleDot = "⃛"; -const Tscr = "𝒯"; -const Tstrok = "Ŧ"; -const Uacut = "Ú"; -const Uacute = "Ú"; -const Uarr = "↟"; -const Uarrocir = "⥉"; -const Ubrcy = "Ў"; -const Ubreve = "Ŭ"; -const Ucir = "Û"; -const Ucirc = "Û"; -const Ucy = "У"; -const Udblac = "Ű"; -const Ufr = "𝔘"; -const Ugrav = "Ù"; -const Ugrave = "Ù"; -const Umacr = "Ū"; -const UnderBar = "_"; -const UnderBrace = "⏟"; -const UnderBracket = "⎵"; -const UnderParenthesis = "⏝"; -const Union = "⋃"; -const UnionPlus = "⊎"; -const Uogon = "Ų"; -const Uopf = "𝕌"; -const UpArrow = "↑"; -const UpArrowBar = "⤒"; -const UpArrowDownArrow = "⇅"; -const UpDownArrow = "↕"; -const UpEquilibrium = "⥮"; -const UpTee = "⊥"; -const UpTeeArrow = "↥"; -const Uparrow = "⇑"; -const Updownarrow = "⇕"; -const UpperLeftArrow = "↖"; -const UpperRightArrow = "↗"; -const Upsi = "ϒ"; -const Upsilon = "Υ"; -const Uring = "Ů"; -const Uscr = "𝒰"; -const Utilde = "Ũ"; -const Uum = "Ü"; -const Uuml = "Ü"; -const VDash = "⊫"; -const Vbar = "⫫"; -const Vcy = "В"; -const Vdash = "⊩"; -const Vdashl = "⫦"; -const Vee = "⋁"; -const Verbar = "‖"; -const Vert = "‖"; -const VerticalBar = "∣"; -const VerticalLine = "|"; -const VerticalSeparator = "❘"; -const VerticalTilde = "≀"; -const VeryThinSpace = " "; -const Vfr = "𝔙"; -const Vopf = "𝕍"; -const Vscr = "𝒱"; -const Vvdash = "⊪"; -const Wcirc = "Ŵ"; -const Wedge = "⋀"; -const Wfr = "𝔚"; -const Wopf = "𝕎"; -const Wscr = "𝒲"; -const Xfr = "𝔛"; -const Xi = "Ξ"; -const Xopf = "𝕏"; -const Xscr = "𝒳"; -const YAcy = "Я"; -const YIcy = "Ї"; -const YUcy = "Ю"; -const Yacut = "Ý"; -const Yacute = "Ý"; -const Ycirc = "Ŷ"; -const Ycy = "Ы"; -const Yfr = "𝔜"; -const Yopf = "𝕐"; -const Yscr = "𝒴"; -const Yuml = "Ÿ"; -const ZHcy = "Ж"; -const Zacute = "Ź"; -const Zcaron = "Ž"; -const Zcy = "З"; -const Zdot = "Ż"; -const ZeroWidthSpace = "​"; -const Zeta = "Ζ"; -const Zfr = "ℨ"; -const Zopf = "ℤ"; -const Zscr = "𝒵"; -const aacut = "á"; -const aacute = "á"; -const abreve = "ă"; -const ac = "∾"; -const acE = "∾̳"; -const acd = "∿"; -const acir = "â"; -const acirc = "â"; -const acut = "´"; -const acute = "´"; -const acy = "а"; -const aeli = "æ"; -const aelig = "æ"; -const af = "⁡"; -const afr = "𝔞"; -const agrav = "à"; -const agrave = "à"; -const alefsym = "ℵ"; -const aleph = "ℵ"; -const alpha = "α"; -const amacr = "ā"; -const amalg = "⨿"; -const am = "&"; -const amp = "&"; -const and = "∧"; -const andand = "⩕"; -const andd = "⩜"; -const andslope = "⩘"; -const andv = "⩚"; -const ang = "∠"; -const ange = "⦤"; -const angle = "∠"; -const angmsd = "∡"; -const angmsdaa = "⦨"; -const angmsdab = "⦩"; -const angmsdac = "⦪"; -const angmsdad = "⦫"; -const angmsdae = "⦬"; -const angmsdaf = "⦭"; -const angmsdag = "⦮"; -const angmsdah = "⦯"; -const angrt = "∟"; -const angrtvb = "⊾"; -const angrtvbd = "⦝"; -const angsph = "∢"; -const angst = "Å"; -const angzarr = "⍼"; -const aogon = "ą"; -const aopf = "𝕒"; -const ap = "≈"; -const apE = "⩰"; -const apacir = "⩯"; -const ape = "≊"; -const apid = "≋"; -const apos = "'"; -const approx = "≈"; -const approxeq = "≊"; -const arin = "å"; -const aring = "å"; -const ascr = "𝒶"; -const ast = "*"; -const asymp = "≈"; -const asympeq = "≍"; -const atild = "ã"; -const atilde = "ã"; -const aum = "ä"; -const auml = "ä"; -const awconint = "∳"; -const awint = "⨑"; -const bNot = "⫭"; -const backcong = "≌"; -const backepsilon = "϶"; -const backprime = "‵"; -const backsim = "∽"; -const backsimeq = "⋍"; -const barvee = "⊽"; -const barwed = "⌅"; -const barwedge = "⌅"; -const bbrk = "⎵"; -const bbrktbrk = "⎶"; -const bcong = "≌"; -const bcy = "б"; -const bdquo = "„"; -const becaus = "∵"; -const because = "∵"; -const bemptyv = "⦰"; -const bepsi = "϶"; -const bernou = "ℬ"; -const beta = "β"; -const beth = "ℶ"; -const between = "≬"; -const bfr = "𝔟"; -const bigcap = "⋂"; -const bigcirc = "◯"; -const bigcup = "⋃"; -const bigodot = "⨀"; -const bigoplus = "⨁"; -const bigotimes = "⨂"; -const bigsqcup = "⨆"; -const bigstar = "★"; -const bigtriangledown = "▽"; -const bigtriangleup = "△"; -const biguplus = "⨄"; -const bigvee = "⋁"; -const bigwedge = "⋀"; -const bkarow = "⤍"; -const blacklozenge = "⧫"; -const blacksquare = "▪"; -const blacktriangle = "▴"; -const blacktriangledown = "▾"; -const blacktriangleleft = "◂"; -const blacktriangleright = "▸"; -const blank = "␣"; -const blk12 = "▒"; -const blk14 = "░"; -const blk34 = "▓"; -const block = "█"; -const bne = "=⃥"; -const bnequiv = "≡⃥"; -const bnot = "⌐"; -const bopf = "𝕓"; -const bot = "⊥"; -const bottom = "⊥"; -const bowtie = "⋈"; -const boxDL = "╗"; -const boxDR = "╔"; -const boxDl = "╖"; -const boxDr = "╓"; -const boxH = "═"; -const boxHD = "╦"; -const boxHU = "╩"; -const boxHd = "╤"; -const boxHu = "╧"; -const boxUL = "╝"; -const boxUR = "╚"; -const boxUl = "╜"; -const boxUr = "╙"; -const boxV = "║"; -const boxVH = "╬"; -const boxVL = "╣"; -const boxVR = "╠"; -const boxVh = "╫"; -const boxVl = "╢"; -const boxVr = "╟"; -const boxbox = "⧉"; -const boxdL = "╕"; -const boxdR = "╒"; -const boxdl = "┐"; -const boxdr = "┌"; -const boxh = "─"; -const boxhD = "╥"; -const boxhU = "╨"; -const boxhd = "┬"; -const boxhu = "┴"; -const boxminus = "⊟"; -const boxplus = "⊞"; -const boxtimes = "⊠"; -const boxuL = "╛"; -const boxuR = "╘"; -const boxul = "┘"; -const boxur = "└"; -const boxv = "│"; -const boxvH = "╪"; -const boxvL = "╡"; -const boxvR = "╞"; -const boxvh = "┼"; -const boxvl = "┤"; -const boxvr = "├"; -const bprime = "‵"; -const breve = "˘"; -const brvba = "¦"; -const brvbar = "¦"; -const bscr = "𝒷"; -const bsemi = "⁏"; -const bsim = "∽"; -const bsime = "⋍"; -const bsol = "\\"; -const bsolb = "⧅"; -const bsolhsub = "⟈"; -const bull = "•"; -const bullet = "•"; -const bump = "≎"; -const bumpE = "⪮"; -const bumpe = "≏"; -const bumpeq = "≏"; -const cacute = "ć"; -const cap = "∩"; -const capand = "⩄"; -const capbrcup = "⩉"; -const capcap = "⩋"; -const capcup = "⩇"; -const capdot = "⩀"; -const caps = "∩︀"; -const caret = "⁁"; -const caron = "ˇ"; -const ccaps = "⩍"; -const ccaron = "č"; -const ccedi = "ç"; -const ccedil = "ç"; -const ccirc = "ĉ"; -const ccups = "⩌"; -const ccupssm = "⩐"; -const cdot = "ċ"; -const cedi = "¸"; -const cedil = "¸"; -const cemptyv = "⦲"; -const cen = "¢"; -const cent = "¢"; -const centerdot = "·"; -const cfr = "𝔠"; -const chcy = "ч"; -const check$2 = "✓"; -const checkmark = "✓"; -const chi = "χ"; -const cir = "○"; -const cirE = "⧃"; -const circ = "ˆ"; -const circeq = "≗"; -const circlearrowleft = "↺"; -const circlearrowright = "↻"; -const circledR = "®"; -const circledS = "Ⓢ"; -const circledast = "⊛"; -const circledcirc = "⊚"; -const circleddash = "⊝"; -const cire = "≗"; -const cirfnint = "⨐"; -const cirmid = "⫯"; -const cirscir = "⧂"; -const clubs = "♣"; -const clubsuit = "♣"; -const colon = ":"; -const colone = "≔"; -const coloneq = "≔"; -const comma = ","; -const commat = "@"; -const comp = "∁"; -const compfn = "∘"; -const complement = "∁"; -const complexes = "ℂ"; -const cong = "≅"; -const congdot = "⩭"; -const conint = "∮"; -const copf = "𝕔"; -const coprod = "∐"; -const cop = "©"; -const copy$1 = "©"; -const copysr = "℗"; -const crarr = "↵"; -const cross = "✗"; -const cscr = "𝒸"; -const csub = "⫏"; -const csube = "⫑"; -const csup = "⫐"; -const csupe = "⫒"; -const ctdot = "⋯"; -const cudarrl = "⤸"; -const cudarrr = "⤵"; -const cuepr = "⋞"; -const cuesc = "⋟"; -const cularr = "↶"; -const cularrp = "⤽"; -const cup = "∪"; -const cupbrcap = "⩈"; -const cupcap = "⩆"; -const cupcup = "⩊"; -const cupdot = "⊍"; -const cupor = "⩅"; -const cups = "∪︀"; -const curarr = "↷"; -const curarrm = "⤼"; -const curlyeqprec = "⋞"; -const curlyeqsucc = "⋟"; -const curlyvee = "⋎"; -const curlywedge = "⋏"; -const curre = "¤"; -const curren = "¤"; -const curvearrowleft = "↶"; -const curvearrowright = "↷"; -const cuvee = "⋎"; -const cuwed = "⋏"; -const cwconint = "∲"; -const cwint = "∱"; -const cylcty = "⌭"; -const dArr = "⇓"; -const dHar = "⥥"; -const dagger = "†"; -const daleth = "ℸ"; -const darr = "↓"; -const dash = "‐"; -const dashv = "⊣"; -const dbkarow = "⤏"; -const dblac = "˝"; -const dcaron = "ď"; -const dcy = "д"; -const dd = "ⅆ"; -const ddagger = "‡"; -const ddarr = "⇊"; -const ddotseq = "⩷"; -const de = "°"; -const deg = "°"; -const delta = "δ"; -const demptyv = "⦱"; -const dfisht = "⥿"; -const dfr = "𝔡"; -const dharl = "⇃"; -const dharr = "⇂"; -const diam = "⋄"; -const diamond = "⋄"; -const diamondsuit = "♦"; -const diams = "♦"; -const die = "¨"; -const digamma = "ϝ"; -const disin = "⋲"; -const div = "÷"; -const divid = "÷"; -const divide = "÷"; -const divideontimes = "⋇"; -const divonx = "⋇"; -const djcy = "ђ"; -const dlcorn = "⌞"; -const dlcrop = "⌍"; -const dollar = "$"; -const dopf = "𝕕"; -const dot = "˙"; -const doteq = "≐"; -const doteqdot = "≑"; -const dotminus = "∸"; -const dotplus = "∔"; -const dotsquare = "⊡"; -const doublebarwedge = "⌆"; -const downarrow = "↓"; -const downdownarrows = "⇊"; -const downharpoonleft = "⇃"; -const downharpoonright = "⇂"; -const drbkarow = "⤐"; -const drcorn = "⌟"; -const drcrop = "⌌"; -const dscr = "𝒹"; -const dscy = "ѕ"; -const dsol = "⧶"; -const dstrok = "đ"; -const dtdot = "⋱"; -const dtri = "▿"; -const dtrif = "▾"; -const duarr = "⇵"; -const duhar = "⥯"; -const dwangle = "⦦"; -const dzcy = "џ"; -const dzigrarr = "⟿"; -const eDDot = "⩷"; -const eDot = "≑"; -const eacut = "é"; -const eacute = "é"; -const easter = "⩮"; -const ecaron = "ě"; -const ecir = "ê"; -const ecirc = "ê"; -const ecolon = "≕"; -const ecy = "э"; -const edot = "ė"; -const ee = "ⅇ"; -const efDot = "≒"; -const efr = "𝔢"; -const eg = "⪚"; -const egrav = "è"; -const egrave = "è"; -const egs = "⪖"; -const egsdot = "⪘"; -const el = "⪙"; -const elinters = "⏧"; -const ell = "ℓ"; -const els = "⪕"; -const elsdot = "⪗"; -const emacr = "ē"; -const empty = "∅"; -const emptyset = "∅"; -const emptyv = "∅"; -const emsp13 = " "; -const emsp14 = " "; -const emsp = " "; -const eng = "ŋ"; -const ensp = " "; -const eogon = "ę"; -const eopf = "𝕖"; -const epar = "⋕"; -const eparsl = "⧣"; -const eplus = "⩱"; -const epsi = "ε"; -const epsilon = "ε"; -const epsiv = "ϵ"; -const eqcirc = "≖"; -const eqcolon = "≕"; -const eqsim = "≂"; -const eqslantgtr = "⪖"; -const eqslantless = "⪕"; -const equals = "="; -const equest = "≟"; -const equiv = "≡"; -const equivDD = "⩸"; -const eqvparsl = "⧥"; -const erDot = "≓"; -const erarr = "⥱"; -const escr = "ℯ"; -const esdot = "≐"; -const esim = "≂"; -const eta = "η"; -const et = "ð"; -const eth = "ð"; -const eum = "ë"; -const euml = "ë"; -const euro = "€"; -const excl = "!"; -const exist = "∃"; -const expectation = "ℰ"; -const exponentiale = "ⅇ"; -const fallingdotseq = "≒"; -const fcy = "ф"; -const female = "♀"; -const ffilig = "ffi"; -const fflig = "ff"; -const ffllig = "ffl"; -const ffr = "𝔣"; -const filig = "fi"; -const fjlig = "fj"; -const flat = "♭"; -const fllig = "fl"; -const fltns = "▱"; -const fnof = "ƒ"; -const fopf = "𝕗"; -const forall = "∀"; -const fork = "⋔"; -const forkv = "⫙"; -const fpartint = "⨍"; -const frac1 = "¼"; -const frac12 = "½"; -const frac13 = "⅓"; -const frac14 = "¼"; -const frac15 = "⅕"; -const frac16 = "⅙"; -const frac18 = "⅛"; -const frac23 = "⅔"; -const frac25 = "⅖"; -const frac3 = "¾"; -const frac34 = "¾"; -const frac35 = "⅗"; -const frac38 = "⅜"; -const frac45 = "⅘"; -const frac56 = "⅚"; -const frac58 = "⅝"; -const frac78 = "⅞"; -const frasl = "⁄"; -const frown = "⌢"; -const fscr = "𝒻"; -const gE = "≧"; -const gEl = "⪌"; -const gacute = "ǵ"; -const gamma = "γ"; -const gammad = "ϝ"; -const gap = "⪆"; -const gbreve = "ğ"; -const gcirc = "ĝ"; -const gcy = "г"; -const gdot = "ġ"; -const ge = "≥"; -const gel = "⋛"; -const geq = "≥"; -const geqq = "≧"; -const geqslant = "⩾"; -const ges = "⩾"; -const gescc = "⪩"; -const gesdot = "⪀"; -const gesdoto = "⪂"; -const gesdotol = "⪄"; -const gesl = "⋛︀"; -const gesles = "⪔"; -const gfr = "𝔤"; -const gg = "≫"; -const ggg = "⋙"; -const gimel = "ℷ"; -const gjcy = "ѓ"; -const gl = "≷"; -const glE = "⪒"; -const gla = "⪥"; -const glj = "⪤"; -const gnE = "≩"; -const gnap = "⪊"; -const gnapprox = "⪊"; -const gne = "⪈"; -const gneq = "⪈"; -const gneqq = "≩"; -const gnsim = "⋧"; -const gopf = "𝕘"; -const grave = "`"; -const gscr = "ℊ"; -const gsim = "≳"; -const gsime = "⪎"; -const gsiml = "⪐"; -const g = ">"; -const gt = ">"; -const gtcc = "⪧"; -const gtcir = "⩺"; -const gtdot = "⋗"; -const gtlPar = "⦕"; -const gtquest = "⩼"; -const gtrapprox = "⪆"; -const gtrarr = "⥸"; -const gtrdot = "⋗"; -const gtreqless = "⋛"; -const gtreqqless = "⪌"; -const gtrless = "≷"; -const gtrsim = "≳"; -const gvertneqq = "≩︀"; -const gvnE = "≩︀"; -const hArr = "⇔"; -const hairsp = " "; -const half = "½"; -const hamilt = "ℋ"; -const hardcy = "ъ"; -const harr = "↔"; -const harrcir = "⥈"; -const harrw = "↭"; -const hbar = "ℏ"; -const hcirc = "ĥ"; -const hearts = "♥"; -const heartsuit = "♥"; -const hellip = "…"; -const hercon = "⊹"; -const hfr = "𝔥"; -const hksearow = "⤥"; -const hkswarow = "⤦"; -const hoarr = "⇿"; -const homtht = "∻"; -const hookleftarrow = "↩"; -const hookrightarrow = "↪"; -const hopf = "𝕙"; -const horbar = "―"; -const hscr = "𝒽"; -const hslash = "ℏ"; -const hstrok = "ħ"; -const hybull = "⁃"; -const hyphen = "‐"; -const iacut = "í"; -const iacute = "í"; -const ic = "⁣"; -const icir = "î"; -const icirc = "î"; -const icy = "и"; -const iecy = "е"; -const iexc = "¡"; -const iexcl = "¡"; -const iff = "⇔"; -const ifr = "𝔦"; -const igrav = "ì"; -const igrave = "ì"; -const ii = "ⅈ"; -const iiiint = "⨌"; -const iiint = "∭"; -const iinfin = "⧜"; -const iiota = "℩"; -const ijlig = "ij"; -const imacr = "ī"; -const image = "ℑ"; -const imagline = "ℐ"; -const imagpart = "ℑ"; -const imath = "ı"; -const imof = "⊷"; -const imped = "Ƶ"; -const incare = "℅"; -const infin = "∞"; -const infintie = "⧝"; -const inodot = "ı"; -const int$1 = "∫"; -const intcal = "⊺"; -const integers = "ℤ"; -const intercal = "⊺"; -const intlarhk = "⨗"; -const intprod = "⨼"; -const iocy = "ё"; -const iogon = "į"; -const iopf = "𝕚"; -const iota = "ι"; -const iprod = "⨼"; -const iques = "¿"; -const iquest = "¿"; -const iscr = "𝒾"; -const isin = "∈"; -const isinE = "⋹"; -const isindot = "⋵"; -const isins = "⋴"; -const isinsv = "⋳"; -const isinv = "∈"; -const it = "⁢"; -const itilde = "ĩ"; -const iukcy = "і"; -const ium = "ï"; -const iuml = "ï"; -const jcirc = "ĵ"; -const jcy = "й"; -const jfr = "𝔧"; -const jmath = "ȷ"; -const jopf = "𝕛"; -const jscr = "𝒿"; -const jsercy = "ј"; -const jukcy = "є"; -const kappa = "κ"; -const kappav = "ϰ"; -const kcedil = "ķ"; -const kcy = "к"; -const kfr = "𝔨"; -const kgreen = "ĸ"; -const khcy = "х"; -const kjcy = "ќ"; -const kopf = "𝕜"; -const kscr = "𝓀"; -const lAarr = "⇚"; -const lArr = "⇐"; -const lAtail = "⤛"; -const lBarr = "⤎"; -const lE = "≦"; -const lEg = "⪋"; -const lHar = "⥢"; -const lacute = "ĺ"; -const laemptyv = "⦴"; -const lagran = "ℒ"; -const lambda = "λ"; -const lang = "⟨"; -const langd = "⦑"; -const langle = "⟨"; -const lap = "⪅"; -const laqu = "«"; -const laquo = "«"; -const larr = "←"; -const larrb = "⇤"; -const larrbfs = "⤟"; -const larrfs = "⤝"; -const larrhk = "↩"; -const larrlp = "↫"; -const larrpl = "⤹"; -const larrsim = "⥳"; -const larrtl = "↢"; -const lat = "⪫"; -const latail = "⤙"; -const late = "⪭"; -const lates = "⪭︀"; -const lbarr = "⤌"; -const lbbrk = "❲"; -const lbrace = "{"; -const lbrack = "["; -const lbrke = "⦋"; -const lbrksld = "⦏"; -const lbrkslu = "⦍"; -const lcaron = "ľ"; -const lcedil = "ļ"; -const lceil = "⌈"; -const lcub = "{"; -const lcy = "л"; -const ldca = "⤶"; -const ldquo = "“"; -const ldquor = "„"; -const ldrdhar = "⥧"; -const ldrushar = "⥋"; -const ldsh = "↲"; -const le = "≤"; -const leftarrow = "←"; -const leftarrowtail = "↢"; -const leftharpoondown = "↽"; -const leftharpoonup = "↼"; -const leftleftarrows = "⇇"; -const leftrightarrow = "↔"; -const leftrightarrows = "⇆"; -const leftrightharpoons = "⇋"; -const leftrightsquigarrow = "↭"; -const leftthreetimes = "⋋"; -const leg = "⋚"; -const leq = "≤"; -const leqq = "≦"; -const leqslant = "⩽"; -const les = "⩽"; -const lescc = "⪨"; -const lesdot = "⩿"; -const lesdoto = "⪁"; -const lesdotor = "⪃"; -const lesg = "⋚︀"; -const lesges = "⪓"; -const lessapprox = "⪅"; -const lessdot = "⋖"; -const lesseqgtr = "⋚"; -const lesseqqgtr = "⪋"; -const lessgtr = "≶"; -const lesssim = "≲"; -const lfisht = "⥼"; -const lfloor = "⌊"; -const lfr = "𝔩"; -const lg = "≶"; -const lgE = "⪑"; -const lhard = "↽"; -const lharu = "↼"; -const lharul = "⥪"; -const lhblk = "▄"; -const ljcy = "љ"; -const ll = "≪"; -const llarr = "⇇"; -const llcorner = "⌞"; -const llhard = "⥫"; -const lltri = "◺"; -const lmidot = "ŀ"; -const lmoust = "⎰"; -const lmoustache = "⎰"; -const lnE = "≨"; -const lnap = "⪉"; -const lnapprox = "⪉"; -const lne = "⪇"; -const lneq = "⪇"; -const lneqq = "≨"; -const lnsim = "⋦"; -const loang = "⟬"; -const loarr = "⇽"; -const lobrk = "⟦"; -const longleftarrow = "⟵"; -const longleftrightarrow = "⟷"; -const longmapsto = "⟼"; -const longrightarrow = "⟶"; -const looparrowleft = "↫"; -const looparrowright = "↬"; -const lopar = "⦅"; -const lopf = "𝕝"; -const loplus = "⨭"; -const lotimes = "⨴"; -const lowast = "∗"; -const lowbar = "_"; -const loz = "◊"; -const lozenge = "◊"; -const lozf = "⧫"; -const lpar = "("; -const lparlt = "⦓"; -const lrarr = "⇆"; -const lrcorner = "⌟"; -const lrhar = "⇋"; -const lrhard = "⥭"; -const lrm = "‎"; -const lrtri = "⊿"; -const lsaquo = "‹"; -const lscr = "𝓁"; -const lsh = "↰"; -const lsim = "≲"; -const lsime = "⪍"; -const lsimg = "⪏"; -const lsqb = "["; -const lsquo = "‘"; -const lsquor = "‚"; -const lstrok = "ł"; -const l = "<"; -const lt = "<"; -const ltcc = "⪦"; -const ltcir = "⩹"; -const ltdot = "⋖"; -const lthree = "⋋"; -const ltimes = "⋉"; -const ltlarr = "⥶"; -const ltquest = "⩻"; -const ltrPar = "⦖"; -const ltri = "◃"; -const ltrie = "⊴"; -const ltrif = "◂"; -const lurdshar = "⥊"; -const luruhar = "⥦"; -const lvertneqq = "≨︀"; -const lvnE = "≨︀"; -const mDDot = "∺"; -const mac = "¯"; -const macr = "¯"; -const male = "♂"; -const malt = "✠"; -const maltese = "✠"; -const map$2 = "↦"; -const mapsto = "↦"; -const mapstodown = "↧"; -const mapstoleft = "↤"; -const mapstoup = "↥"; -const marker = "▮"; -const mcomma = "⨩"; -const mcy = "м"; -const mdash = "—"; -const measuredangle = "∡"; -const mfr = "𝔪"; -const mho = "℧"; -const micr = "µ"; -const micro = "µ"; -const mid = "∣"; -const midast = "*"; -const midcir = "⫰"; -const middo = "·"; -const middot = "·"; -const minus = "−"; -const minusb = "⊟"; -const minusd = "∸"; -const minusdu = "⨪"; -const mlcp = "⫛"; -const mldr = "…"; -const mnplus = "∓"; -const models$2 = "⊧"; -const mopf = "𝕞"; -const mp = "∓"; -const mscr = "𝓂"; -const mstpos = "∾"; -const mu = "μ"; -const multimap = "⊸"; -const mumap = "⊸"; -const nGg = "⋙̸"; -const nGt = "≫⃒"; -const nGtv = "≫̸"; -const nLeftarrow = "⇍"; -const nLeftrightarrow = "⇎"; -const nLl = "⋘̸"; -const nLt = "≪⃒"; -const nLtv = "≪̸"; -const nRightarrow = "⇏"; -const nVDash = "⊯"; -const nVdash = "⊮"; -const nabla = "∇"; -const nacute = "ń"; -const nang = "∠⃒"; -const nap = "≉"; -const napE = "⩰̸"; -const napid = "≋̸"; -const napos = "ʼn"; -const napprox = "≉"; -const natur = "♮"; -const natural = "♮"; -const naturals = "ℕ"; -const nbs = " "; -const nbsp = " "; -const nbump = "≎̸"; -const nbumpe = "≏̸"; -const ncap = "⩃"; -const ncaron = "ň"; -const ncedil = "ņ"; -const ncong = "≇"; -const ncongdot = "⩭̸"; -const ncup = "⩂"; -const ncy = "н"; -const ndash = "–"; -const ne = "≠"; -const neArr = "⇗"; -const nearhk = "⤤"; -const nearr = "↗"; -const nearrow = "↗"; -const nedot = "≐̸"; -const nequiv = "≢"; -const nesear = "⤨"; -const nesim = "≂̸"; -const nexist = "∄"; -const nexists = "∄"; -const nfr = "𝔫"; -const ngE = "≧̸"; -const nge = "≱"; -const ngeq = "≱"; -const ngeqq = "≧̸"; -const ngeqslant = "⩾̸"; -const nges = "⩾̸"; -const ngsim = "≵"; -const ngt = "≯"; -const ngtr = "≯"; -const nhArr = "⇎"; -const nharr = "↮"; -const nhpar = "⫲"; -const ni = "∋"; -const nis = "⋼"; -const nisd = "⋺"; -const niv = "∋"; -const njcy = "њ"; -const nlArr = "⇍"; -const nlE = "≦̸"; -const nlarr = "↚"; -const nldr = "‥"; -const nle = "≰"; -const nleftarrow = "↚"; -const nleftrightarrow = "↮"; -const nleq = "≰"; -const nleqq = "≦̸"; -const nleqslant = "⩽̸"; -const nles = "⩽̸"; -const nless = "≮"; -const nlsim = "≴"; -const nlt = "≮"; -const nltri = "⋪"; -const nltrie = "⋬"; -const nmid = "∤"; -const nopf = "𝕟"; -const no = "¬"; -const not = "¬"; -const notin = "∉"; -const notinE = "⋹̸"; -const notindot = "⋵̸"; -const notinva = "∉"; -const notinvb = "⋷"; -const notinvc = "⋶"; -const notni = "∌"; -const notniva = "∌"; -const notnivb = "⋾"; -const notnivc = "⋽"; -const npar = "∦"; -const nparallel = "∦"; -const nparsl = "⫽⃥"; -const npart = "∂̸"; -const npolint = "⨔"; -const npr = "⊀"; -const nprcue = "⋠"; -const npre = "⪯̸"; -const nprec = "⊀"; -const npreceq = "⪯̸"; -const nrArr = "⇏"; -const nrarr = "↛"; -const nrarrc = "⤳̸"; -const nrarrw = "↝̸"; -const nrightarrow = "↛"; -const nrtri = "⋫"; -const nrtrie = "⋭"; -const nsc = "⊁"; -const nsccue = "⋡"; -const nsce = "⪰̸"; -const nscr = "𝓃"; -const nshortmid = "∤"; -const nshortparallel = "∦"; -const nsim = "≁"; -const nsime = "≄"; -const nsimeq = "≄"; -const nsmid = "∤"; -const nspar = "∦"; -const nsqsube = "⋢"; -const nsqsupe = "⋣"; -const nsub = "⊄"; -const nsubE = "⫅̸"; -const nsube = "⊈"; -const nsubset = "⊂⃒"; -const nsubseteq = "⊈"; -const nsubseteqq = "⫅̸"; -const nsucc = "⊁"; -const nsucceq = "⪰̸"; -const nsup = "⊅"; -const nsupE = "⫆̸"; -const nsupe = "⊉"; -const nsupset = "⊃⃒"; -const nsupseteq = "⊉"; -const nsupseteqq = "⫆̸"; -const ntgl = "≹"; -const ntild = "ñ"; -const ntilde = "ñ"; -const ntlg = "≸"; -const ntriangleleft = "⋪"; -const ntrianglelefteq = "⋬"; -const ntriangleright = "⋫"; -const ntrianglerighteq = "⋭"; -const nu = "ν"; -const num = "#"; -const numero = "№"; -const numsp = " "; -const nvDash = "⊭"; -const nvHarr = "⤄"; -const nvap = "≍⃒"; -const nvdash = "⊬"; -const nvge = "≥⃒"; -const nvgt = ">⃒"; -const nvinfin = "⧞"; -const nvlArr = "⤂"; -const nvle = "≤⃒"; -const nvlt = "<⃒"; -const nvltrie = "⊴⃒"; -const nvrArr = "⤃"; -const nvrtrie = "⊵⃒"; -const nvsim = "∼⃒"; -const nwArr = "⇖"; -const nwarhk = "⤣"; -const nwarr = "↖"; -const nwarrow = "↖"; -const nwnear = "⤧"; -const oS = "Ⓢ"; -const oacut = "ó"; -const oacute = "ó"; -const oast = "⊛"; -const ocir = "ô"; -const ocirc = "ô"; -const ocy = "о"; -const odash = "⊝"; -const odblac = "ő"; -const odiv = "⨸"; -const odot = "⊙"; -const odsold = "⦼"; -const oelig = "œ"; -const ofcir = "⦿"; -const ofr = "𝔬"; -const ogon = "˛"; -const ograv = "ò"; -const ograve = "ò"; -const ogt = "⧁"; -const ohbar = "⦵"; -const ohm = "Ω"; -const oint = "∮"; -const olarr = "↺"; -const olcir = "⦾"; -const olcross = "⦻"; -const oline = "‾"; -const olt = "⧀"; -const omacr = "ō"; -const omega = "ω"; -const omicron = "ο"; -const omid = "⦶"; -const ominus = "⊖"; -const oopf = "𝕠"; -const opar = "⦷"; -const operp = "⦹"; -const oplus = "⊕"; -const or = "∨"; -const orarr = "↻"; -const ord = "º"; -const order$1 = "ℴ"; -const orderof = "ℴ"; -const ordf = "ª"; -const ordm = "º"; -const origof = "⊶"; -const oror = "⩖"; -const orslope = "⩗"; -const orv = "⩛"; -const oscr = "ℴ"; -const oslas = "ø"; -const oslash = "ø"; -const osol = "⊘"; -const otild = "õ"; -const otilde = "õ"; -const otimes = "⊗"; -const otimesas = "⨶"; -const oum = "ö"; -const ouml = "ö"; -const ovbar = "⌽"; -const par = "¶"; -const para = "¶"; -const parallel = "∥"; -const parsim = "⫳"; -const parsl = "⫽"; -const part = "∂"; -const pcy = "п"; -const percnt = "%"; -const period = "."; -const permil = "‰"; -const perp = "⊥"; -const pertenk = "‱"; -const pfr = "𝔭"; -const phi = "φ"; -const phiv = "ϕ"; -const phmmat = "ℳ"; -const phone = "☎"; -const pi = "π"; -const pitchfork = "⋔"; -const piv = "ϖ"; -const planck = "ℏ"; -const planckh = "ℎ"; -const plankv = "ℏ"; -const plus = "+"; -const plusacir = "⨣"; -const plusb = "⊞"; -const pluscir = "⨢"; -const plusdo = "∔"; -const plusdu = "⨥"; -const pluse = "⩲"; -const plusm = "±"; -const plusmn = "±"; -const plussim = "⨦"; -const plustwo = "⨧"; -const pm = "±"; -const pointint = "⨕"; -const popf = "𝕡"; -const poun = "£"; -const pound = "£"; -const pr = "≺"; -const prE = "⪳"; -const prap = "⪷"; -const prcue = "≼"; -const pre = "⪯"; -const prec = "≺"; -const precapprox = "⪷"; -const preccurlyeq = "≼"; -const preceq = "⪯"; -const precnapprox = "⪹"; -const precneqq = "⪵"; -const precnsim = "⋨"; -const precsim = "≾"; -const prime = "′"; -const primes = "ℙ"; -const prnE = "⪵"; -const prnap = "⪹"; -const prnsim = "⋨"; -const prod = "∏"; -const profalar = "⌮"; -const profline = "⌒"; -const profsurf = "⌓"; -const prop = "∝"; -const propto = "∝"; -const prsim = "≾"; -const prurel = "⊰"; -const pscr = "𝓅"; -const psi = "ψ"; -const puncsp = " "; -const qfr = "𝔮"; -const qint = "⨌"; -const qopf = "𝕢"; -const qprime = "⁗"; -const qscr = "𝓆"; -const quaternions = "ℍ"; -const quatint = "⨖"; -const quest = "?"; -const questeq = "≟"; -const quo = "\""; -const quot = "\""; -const rAarr = "⇛"; -const rArr = "⇒"; -const rAtail = "⤜"; -const rBarr = "⤏"; -const rHar = "⥤"; -const race = "∽̱"; -const racute = "ŕ"; -const radic = "√"; -const raemptyv = "⦳"; -const rang = "⟩"; -const rangd = "⦒"; -const range$1 = "⦥"; -const rangle = "⟩"; -const raqu = "»"; -const raquo = "»"; -const rarr = "→"; -const rarrap = "⥵"; -const rarrb = "⇥"; -const rarrbfs = "⤠"; -const rarrc = "⤳"; -const rarrfs = "⤞"; -const rarrhk = "↪"; -const rarrlp = "↬"; -const rarrpl = "⥅"; -const rarrsim = "⥴"; -const rarrtl = "↣"; -const rarrw = "↝"; -const ratail = "⤚"; -const ratio = "∶"; -const rationals = "ℚ"; -const rbarr = "⤍"; -const rbbrk = "❳"; -const rbrace = "}"; -const rbrack = "]"; -const rbrke = "⦌"; -const rbrksld = "⦎"; -const rbrkslu = "⦐"; -const rcaron = "ř"; -const rcedil = "ŗ"; -const rceil = "⌉"; -const rcub = "}"; -const rcy = "р"; -const rdca = "⤷"; -const rdldhar = "⥩"; -const rdquo = "”"; -const rdquor = "”"; -const rdsh = "↳"; -const real = "ℜ"; -const realine = "ℛ"; -const realpart = "ℜ"; -const reals = "ℝ"; -const rect = "▭"; -const re = "®"; -const reg = "®"; -const rfisht = "⥽"; -const rfloor = "⌋"; -const rfr = "𝔯"; -const rhard = "⇁"; -const rharu = "⇀"; -const rharul = "⥬"; -const rho = "ρ"; -const rhov = "ϱ"; -const rightarrow = "→"; -const rightarrowtail = "↣"; -const rightharpoondown = "⇁"; -const rightharpoonup = "⇀"; -const rightleftarrows = "⇄"; -const rightleftharpoons = "⇌"; -const rightrightarrows = "⇉"; -const rightsquigarrow = "↝"; -const rightthreetimes = "⋌"; -const ring = "˚"; -const risingdotseq = "≓"; -const rlarr = "⇄"; -const rlhar = "⇌"; -const rlm = "‏"; -const rmoust = "⎱"; -const rmoustache = "⎱"; -const rnmid = "⫮"; -const roang = "⟭"; -const roarr = "⇾"; -const robrk = "⟧"; -const ropar = "⦆"; -const ropf = "𝕣"; -const roplus = "⨮"; -const rotimes = "⨵"; -const rpar = ")"; -const rpargt = "⦔"; -const rppolint = "⨒"; -const rrarr = "⇉"; -const rsaquo = "›"; -const rscr = "𝓇"; -const rsh = "↱"; -const rsqb = "]"; -const rsquo = "’"; -const rsquor = "’"; -const rthree = "⋌"; -const rtimes = "⋊"; -const rtri = "▹"; -const rtrie = "⊵"; -const rtrif = "▸"; -const rtriltri = "⧎"; -const ruluhar = "⥨"; -const rx = "℞"; -const sacute = "ś"; -const sbquo = "‚"; -const sc = "≻"; -const scE = "⪴"; -const scap = "⪸"; -const scaron = "š"; -const sccue = "≽"; -const sce = "⪰"; -const scedil = "ş"; -const scirc = "ŝ"; -const scnE = "⪶"; -const scnap = "⪺"; -const scnsim = "⋩"; -const scpolint = "⨓"; -const scsim = "≿"; -const scy = "с"; -const sdot = "⋅"; -const sdotb = "⊡"; -const sdote = "⩦"; -const seArr = "⇘"; -const searhk = "⤥"; -const searr = "↘"; -const searrow = "↘"; -const sec = "§"; -const sect = "§"; -const semi = ";"; -const seswar = "⤩"; -const setminus = "∖"; -const setmn = "∖"; -const sext = "✶"; -const sfr = "𝔰"; -const sfrown = "⌢"; -const sharp = "♯"; -const shchcy = "щ"; -const shcy = "ш"; -const shortmid = "∣"; -const shortparallel = "∥"; -const sh = "­"; -const shy = "­"; -const sigma = "σ"; -const sigmaf = "ς"; -const sigmav = "ς"; -const sim = "∼"; -const simdot = "⩪"; -const sime = "≃"; -const simeq = "≃"; -const simg = "⪞"; -const simgE = "⪠"; -const siml = "⪝"; -const simlE = "⪟"; -const simne = "≆"; -const simplus = "⨤"; -const simrarr = "⥲"; -const slarr = "←"; -const smallsetminus = "∖"; -const smashp = "⨳"; -const smeparsl = "⧤"; -const smid = "∣"; -const smile = "⌣"; -const smt = "⪪"; -const smte = "⪬"; -const smtes = "⪬︀"; -const softcy = "ь"; -const sol = "/"; -const solb = "⧄"; -const solbar = "⌿"; -const sopf = "𝕤"; -const spades = "♠"; -const spadesuit = "♠"; -const spar = "∥"; -const sqcap = "⊓"; -const sqcaps = "⊓︀"; -const sqcup = "⊔"; -const sqcups = "⊔︀"; -const sqsub = "⊏"; -const sqsube = "⊑"; -const sqsubset = "⊏"; -const sqsubseteq = "⊑"; -const sqsup = "⊐"; -const sqsupe = "⊒"; -const sqsupset = "⊐"; -const sqsupseteq = "⊒"; -const squ = "□"; -const square = "□"; -const squarf = "▪"; -const squf = "▪"; -const srarr = "→"; -const sscr = "𝓈"; -const ssetmn = "∖"; -const ssmile = "⌣"; -const sstarf = "⋆"; -const star$1 = "☆"; -const starf = "★"; -const straightepsilon = "ϵ"; -const straightphi = "ϕ"; -const strns = "¯"; -const sub = "⊂"; -const subE = "⫅"; -const subdot = "⪽"; -const sube = "⊆"; -const subedot = "⫃"; -const submult = "⫁"; -const subnE = "⫋"; -const subne = "⊊"; -const subplus = "⪿"; -const subrarr = "⥹"; -const subset = "⊂"; -const subseteq = "⊆"; -const subseteqq = "⫅"; -const subsetneq = "⊊"; -const subsetneqq = "⫋"; -const subsim = "⫇"; -const subsub = "⫕"; -const subsup = "⫓"; -const succ = "≻"; -const succapprox = "⪸"; -const succcurlyeq = "≽"; -const succeq = "⪰"; -const succnapprox = "⪺"; -const succneqq = "⪶"; -const succnsim = "⋩"; -const succsim = "≿"; -const sum = "∑"; -const sung = "♪"; -const sup = "⊃"; -const sup1 = "¹"; -const sup2 = "²"; -const sup3 = "³"; -const supE = "⫆"; -const supdot = "⪾"; -const supdsub = "⫘"; -const supe = "⊇"; -const supedot = "⫄"; -const suphsol = "⟉"; -const suphsub = "⫗"; -const suplarr = "⥻"; -const supmult = "⫂"; -const supnE = "⫌"; -const supne = "⊋"; -const supplus = "⫀"; -const supset = "⊃"; -const supseteq = "⊇"; -const supseteqq = "⫆"; -const supsetneq = "⊋"; -const supsetneqq = "⫌"; -const supsim = "⫈"; -const supsub = "⫔"; -const supsup = "⫖"; -const swArr = "⇙"; -const swarhk = "⤦"; -const swarr = "↙"; -const swarrow = "↙"; -const swnwar = "⤪"; -const szli = "ß"; -const szlig = "ß"; -const target = "⌖"; -const tau = "τ"; -const tbrk = "⎴"; -const tcaron = "ť"; -const tcedil = "ţ"; -const tcy = "т"; -const tdot = "⃛"; -const telrec = "⌕"; -const tfr = "𝔱"; -const there4 = "∴"; -const therefore = "∴"; -const theta = "θ"; -const thetasym = "ϑ"; -const thetav = "ϑ"; -const thickapprox = "≈"; -const thicksim = "∼"; -const thinsp = " "; -const thkap = "≈"; -const thksim = "∼"; -const thor = "þ"; -const thorn = "þ"; -const tilde = "˜"; -const time = "×"; -const times = "×"; -const timesb = "⊠"; -const timesbar = "⨱"; -const timesd = "⨰"; -const tint = "∭"; -const toea = "⤨"; -const top = "⊤"; -const topbot = "⌶"; -const topcir = "⫱"; -const topf = "𝕥"; -const topfork = "⫚"; -const tosa = "⤩"; -const tprime = "‴"; -const trade = "™"; -const triangle = "▵"; -const triangledown = "▿"; -const triangleleft = "◃"; -const trianglelefteq = "⊴"; -const triangleq = "≜"; -const triangleright = "▹"; -const trianglerighteq = "⊵"; -const tridot = "◬"; -const trie = "≜"; -const triminus = "⨺"; -const triplus = "⨹"; -const trisb = "⧍"; -const tritime = "⨻"; -const trpezium = "⏢"; -const tscr = "𝓉"; -const tscy = "ц"; -const tshcy = "ћ"; -const tstrok = "ŧ"; -const twixt = "≬"; -const twoheadleftarrow = "↞"; -const twoheadrightarrow = "↠"; -const uArr = "⇑"; -const uHar = "⥣"; -const uacut = "ú"; -const uacute = "ú"; -const uarr = "↑"; -const ubrcy = "ў"; -const ubreve = "ŭ"; -const ucir = "û"; -const ucirc = "û"; -const ucy = "у"; -const udarr = "⇅"; -const udblac = "ű"; -const udhar = "⥮"; -const ufisht = "⥾"; -const ufr = "𝔲"; -const ugrav = "ù"; -const ugrave = "ù"; -const uharl = "↿"; -const uharr = "↾"; -const uhblk = "▀"; -const ulcorn = "⌜"; -const ulcorner = "⌜"; -const ulcrop = "⌏"; -const ultri = "◸"; -const umacr = "ū"; -const um = "¨"; -const uml = "¨"; -const uogon = "ų"; -const uopf = "𝕦"; -const uparrow = "↑"; -const updownarrow = "↕"; -const upharpoonleft = "↿"; -const upharpoonright = "↾"; -const uplus = "⊎"; -const upsi = "υ"; -const upsih = "ϒ"; -const upsilon = "υ"; -const upuparrows = "⇈"; -const urcorn = "⌝"; -const urcorner = "⌝"; -const urcrop = "⌎"; -const uring = "ů"; -const urtri = "◹"; -const uscr = "𝓊"; -const utdot = "⋰"; -const utilde = "ũ"; -const utri = "▵"; -const utrif = "▴"; -const uuarr = "⇈"; -const uum = "ü"; -const uuml = "ü"; -const uwangle = "⦧"; -const vArr = "⇕"; -const vBar = "⫨"; -const vBarv = "⫩"; -const vDash = "⊨"; -const vangrt = "⦜"; -const varepsilon = "ϵ"; -const varkappa = "ϰ"; -const varnothing = "∅"; -const varphi = "ϕ"; -const varpi = "ϖ"; -const varpropto = "∝"; -const varr = "↕"; -const varrho = "ϱ"; -const varsigma = "ς"; -const varsubsetneq = "⊊︀"; -const varsubsetneqq = "⫋︀"; -const varsupsetneq = "⊋︀"; -const varsupsetneqq = "⫌︀"; -const vartheta = "ϑ"; -const vartriangleleft = "⊲"; -const vartriangleright = "⊳"; -const vcy = "в"; -const vdash = "⊢"; -const vee = "∨"; -const veebar = "⊻"; -const veeeq = "≚"; -const vellip = "⋮"; -const verbar = "|"; -const vert = "|"; -const vfr = "𝔳"; -const vltri = "⊲"; -const vnsub = "⊂⃒"; -const vnsup = "⊃⃒"; -const vopf = "𝕧"; -const vprop = "∝"; -const vrtri = "⊳"; -const vscr = "𝓋"; -const vsubnE = "⫋︀"; -const vsubne = "⊊︀"; -const vsupnE = "⫌︀"; -const vsupne = "⊋︀"; -const vzigzag = "⦚"; -const wcirc = "ŵ"; -const wedbar = "⩟"; -const wedge = "∧"; -const wedgeq = "≙"; -const weierp = "℘"; -const wfr = "𝔴"; -const wopf = "𝕨"; -const wp = "℘"; -const wr = "≀"; -const wreath = "≀"; -const wscr = "𝓌"; -const xcap = "⋂"; -const xcirc = "◯"; -const xcup = "⋃"; -const xdtri = "▽"; -const xfr = "𝔵"; -const xhArr = "⟺"; -const xharr = "⟷"; -const xi = "ξ"; -const xlArr = "⟸"; -const xlarr = "⟵"; -const xmap = "⟼"; -const xnis = "⋻"; -const xodot = "⨀"; -const xopf = "𝕩"; -const xoplus = "⨁"; -const xotime = "⨂"; -const xrArr = "⟹"; -const xrarr = "⟶"; -const xscr = "𝓍"; -const xsqcup = "⨆"; -const xuplus = "⨄"; -const xutri = "△"; -const xvee = "⋁"; -const xwedge = "⋀"; -const yacut = "ý"; -const yacute = "ý"; -const yacy = "я"; -const ycirc = "ŷ"; -const ycy = "ы"; -const ye = "¥"; -const yen = "¥"; -const yfr = "𝔶"; -const yicy = "ї"; -const yopf = "𝕪"; -const yscr = "𝓎"; -const yucy = "ю"; -const yum = "ÿ"; -const yuml = "ÿ"; -const zacute = "ź"; -const zcaron = "ž"; -const zcy = "з"; -const zdot = "ż"; -const zeetrf = "ℨ"; -const zeta = "ζ"; -const zfr = "𝔷"; -const zhcy = "ж"; -const zigrarr = "⇝"; -const zopf = "𝕫"; -const zscr = "𝓏"; -const zwj = "‍"; -const zwnj = "‌"; -var characterEntities = { - AEli: AEli, - AElig: AElig, - AM: AM, - AMP: AMP, - Aacut: Aacut, - Aacute: Aacute, - Abreve: Abreve, - Acir: Acir, - Acirc: Acirc, - Acy: Acy, - Afr: Afr, - Agrav: Agrav, - Agrave: Agrave, - Alpha: Alpha, - Amacr: Amacr, - And: And, - Aogon: Aogon, - Aopf: Aopf, - ApplyFunction: ApplyFunction, - Arin: Arin, - Aring: Aring, - Ascr: Ascr, - Assign: Assign, - Atild: Atild, - Atilde: Atilde, - Aum: Aum, - Auml: Auml, - Backslash: Backslash, - Barv: Barv, - Barwed: Barwed, - Bcy: Bcy, - Because: Because, - Bernoullis: Bernoullis, - Beta: Beta, - Bfr: Bfr, - Bopf: Bopf, - Breve: Breve, - Bscr: Bscr, - Bumpeq: Bumpeq, - CHcy: CHcy, - COP: COP, - COPY: COPY, - Cacute: Cacute, - Cap: Cap, - CapitalDifferentialD: CapitalDifferentialD, - Cayleys: Cayleys, - Ccaron: Ccaron, - Ccedi: Ccedi, - Ccedil: Ccedil, - Ccirc: Ccirc, - Cconint: Cconint, - Cdot: Cdot, - Cedilla: Cedilla, - CenterDot: CenterDot, - Cfr: Cfr, - Chi: Chi, - CircleDot: CircleDot, - CircleMinus: CircleMinus, - CirclePlus: CirclePlus, - CircleTimes: CircleTimes, - ClockwiseContourIntegral: ClockwiseContourIntegral, - CloseCurlyDoubleQuote: CloseCurlyDoubleQuote, - CloseCurlyQuote: CloseCurlyQuote, - Colon: Colon, - Colone: Colone, - Congruent: Congruent, - Conint: Conint, - ContourIntegral: ContourIntegral, - Copf: Copf, - Coproduct: Coproduct, - CounterClockwiseContourIntegral: CounterClockwiseContourIntegral, - Cross: Cross, - Cscr: Cscr, - Cup: Cup, - CupCap: CupCap, - DD: DD, - DDotrahd: DDotrahd, - DJcy: DJcy, - DScy: DScy, - DZcy: DZcy, - Dagger: Dagger, - Darr: Darr, - Dashv: Dashv, - Dcaron: Dcaron, - Dcy: Dcy, - Del: Del, - Delta: Delta, - Dfr: Dfr, - DiacriticalAcute: DiacriticalAcute, - DiacriticalDot: DiacriticalDot, - DiacriticalDoubleAcute: DiacriticalDoubleAcute, - DiacriticalGrave: DiacriticalGrave, - DiacriticalTilde: DiacriticalTilde, - Diamond: Diamond, - DifferentialD: DifferentialD, - Dopf: Dopf, - Dot: Dot, - DotDot: DotDot, - DotEqual: DotEqual, - DoubleContourIntegral: DoubleContourIntegral, - DoubleDot: DoubleDot, - DoubleDownArrow: DoubleDownArrow, - DoubleLeftArrow: DoubleLeftArrow, - DoubleLeftRightArrow: DoubleLeftRightArrow, - DoubleLeftTee: DoubleLeftTee, - DoubleLongLeftArrow: DoubleLongLeftArrow, - DoubleLongLeftRightArrow: DoubleLongLeftRightArrow, - DoubleLongRightArrow: DoubleLongRightArrow, - DoubleRightArrow: DoubleRightArrow, - DoubleRightTee: DoubleRightTee, - DoubleUpArrow: DoubleUpArrow, - DoubleUpDownArrow: DoubleUpDownArrow, - DoubleVerticalBar: DoubleVerticalBar, - DownArrow: DownArrow, - DownArrowBar: DownArrowBar, - DownArrowUpArrow: DownArrowUpArrow, - DownBreve: DownBreve, - DownLeftRightVector: DownLeftRightVector, - DownLeftTeeVector: DownLeftTeeVector, - DownLeftVector: DownLeftVector, - DownLeftVectorBar: DownLeftVectorBar, - DownRightTeeVector: DownRightTeeVector, - DownRightVector: DownRightVector, - DownRightVectorBar: DownRightVectorBar, - DownTee: DownTee, - DownTeeArrow: DownTeeArrow, - Downarrow: Downarrow, - Dscr: Dscr, - Dstrok: Dstrok, - ENG: ENG, - ET: ET, - ETH: ETH, - Eacut: Eacut, - Eacute: Eacute, - Ecaron: Ecaron, - Ecir: Ecir, - Ecirc: Ecirc, - Ecy: Ecy, - Edot: Edot, - Efr: Efr, - Egrav: Egrav, - Egrave: Egrave, - Element: Element, - Emacr: Emacr, - EmptySmallSquare: EmptySmallSquare, - EmptyVerySmallSquare: EmptyVerySmallSquare, - Eogon: Eogon, - Eopf: Eopf, - Epsilon: Epsilon, - Equal: Equal, - EqualTilde: EqualTilde, - Equilibrium: Equilibrium, - Escr: Escr, - Esim: Esim, - Eta: Eta, - Eum: Eum, - Euml: Euml, - Exists: Exists, - ExponentialE: ExponentialE, - Fcy: Fcy, - Ffr: Ffr, - FilledSmallSquare: FilledSmallSquare, - FilledVerySmallSquare: FilledVerySmallSquare, - Fopf: Fopf, - ForAll: ForAll, - Fouriertrf: Fouriertrf, - Fscr: Fscr, - GJcy: GJcy, - G: G, - GT: GT, - Gamma: Gamma, - Gammad: Gammad, - Gbreve: Gbreve, - Gcedil: Gcedil, - Gcirc: Gcirc, - Gcy: Gcy, - Gdot: Gdot, - Gfr: Gfr, - Gg: Gg, - Gopf: Gopf, - GreaterEqual: GreaterEqual, - GreaterEqualLess: GreaterEqualLess, - GreaterFullEqual: GreaterFullEqual, - GreaterGreater: GreaterGreater, - GreaterLess: GreaterLess, - GreaterSlantEqual: GreaterSlantEqual, - GreaterTilde: GreaterTilde, - Gscr: Gscr, - Gt: Gt, - HARDcy: HARDcy, - Hacek: Hacek, - Hat: Hat, - Hcirc: Hcirc, - Hfr: Hfr, - HilbertSpace: HilbertSpace, - Hopf: Hopf, - HorizontalLine: HorizontalLine, - Hscr: Hscr, - Hstrok: Hstrok, - HumpDownHump: HumpDownHump, - HumpEqual: HumpEqual, - IEcy: IEcy, - IJlig: IJlig, - IOcy: IOcy, - Iacut: Iacut, - Iacute: Iacute, - Icir: Icir, - Icirc: Icirc, - Icy: Icy, - Idot: Idot, - Ifr: Ifr, - Igrav: Igrav, - Igrave: Igrave, - Im: Im, - Imacr: Imacr, - ImaginaryI: ImaginaryI, - Implies: Implies, - Int: Int, - Integral: Integral, - Intersection: Intersection, - InvisibleComma: InvisibleComma, - InvisibleTimes: InvisibleTimes, - Iogon: Iogon, - Iopf: Iopf, - Iota: Iota, - Iscr: Iscr, - Itilde: Itilde, - Iukcy: Iukcy, - Ium: Ium, - Iuml: Iuml, - Jcirc: Jcirc, - Jcy: Jcy, - Jfr: Jfr, - Jopf: Jopf, - Jscr: Jscr, - Jsercy: Jsercy, - Jukcy: Jukcy, - KHcy: KHcy, - KJcy: KJcy, - Kappa: Kappa, - Kcedil: Kcedil, - Kcy: Kcy, - Kfr: Kfr, - Kopf: Kopf, - Kscr: Kscr, - LJcy: LJcy, - L: L, - LT: LT, - Lacute: Lacute, - Lambda: Lambda, - Lang: Lang, - Laplacetrf: Laplacetrf, - Larr: Larr, - Lcaron: Lcaron, - Lcedil: Lcedil, - Lcy: Lcy, - LeftAngleBracket: LeftAngleBracket, - LeftArrow: LeftArrow, - LeftArrowBar: LeftArrowBar, - LeftArrowRightArrow: LeftArrowRightArrow, - LeftCeiling: LeftCeiling, - LeftDoubleBracket: LeftDoubleBracket, - LeftDownTeeVector: LeftDownTeeVector, - LeftDownVector: LeftDownVector, - LeftDownVectorBar: LeftDownVectorBar, - LeftFloor: LeftFloor, - LeftRightArrow: LeftRightArrow, - LeftRightVector: LeftRightVector, - LeftTee: LeftTee, - LeftTeeArrow: LeftTeeArrow, - LeftTeeVector: LeftTeeVector, - LeftTriangle: LeftTriangle, - LeftTriangleBar: LeftTriangleBar, - LeftTriangleEqual: LeftTriangleEqual, - LeftUpDownVector: LeftUpDownVector, - LeftUpTeeVector: LeftUpTeeVector, - LeftUpVector: LeftUpVector, - LeftUpVectorBar: LeftUpVectorBar, - LeftVector: LeftVector, - LeftVectorBar: LeftVectorBar, - Leftarrow: Leftarrow, - Leftrightarrow: Leftrightarrow, - LessEqualGreater: LessEqualGreater, - LessFullEqual: LessFullEqual, - LessGreater: LessGreater, - LessLess: LessLess, - LessSlantEqual: LessSlantEqual, - LessTilde: LessTilde, - Lfr: Lfr, - Ll: Ll, - Lleftarrow: Lleftarrow, - Lmidot: Lmidot, - LongLeftArrow: LongLeftArrow, - LongLeftRightArrow: LongLeftRightArrow, - LongRightArrow: LongRightArrow, - Longleftarrow: Longleftarrow, - Longleftrightarrow: Longleftrightarrow, - Longrightarrow: Longrightarrow, - Lopf: Lopf, - LowerLeftArrow: LowerLeftArrow, - LowerRightArrow: LowerRightArrow, - Lscr: Lscr, - Lsh: Lsh, - Lstrok: Lstrok, - Lt: Lt, - "Map": "⤅", - Mcy: Mcy, - MediumSpace: MediumSpace, - Mellintrf: Mellintrf, - Mfr: Mfr, - MinusPlus: MinusPlus, - Mopf: Mopf, - Mscr: Mscr, - Mu: Mu, - NJcy: NJcy, - Nacute: Nacute, - Ncaron: Ncaron, - Ncedil: Ncedil, - Ncy: Ncy, - NegativeMediumSpace: NegativeMediumSpace, - NegativeThickSpace: NegativeThickSpace, - NegativeThinSpace: NegativeThinSpace, - NegativeVeryThinSpace: NegativeVeryThinSpace, - NestedGreaterGreater: NestedGreaterGreater, - NestedLessLess: NestedLessLess, - NewLine: NewLine, - Nfr: Nfr, - NoBreak: NoBreak, - NonBreakingSpace: NonBreakingSpace, - Nopf: Nopf, - Not: Not, - NotCongruent: NotCongruent, - NotCupCap: NotCupCap, - NotDoubleVerticalBar: NotDoubleVerticalBar, - NotElement: NotElement, - NotEqual: NotEqual, - NotEqualTilde: NotEqualTilde, - NotExists: NotExists, - NotGreater: NotGreater, - NotGreaterEqual: NotGreaterEqual, - NotGreaterFullEqual: NotGreaterFullEqual, - NotGreaterGreater: NotGreaterGreater, - NotGreaterLess: NotGreaterLess, - NotGreaterSlantEqual: NotGreaterSlantEqual, - NotGreaterTilde: NotGreaterTilde, - NotHumpDownHump: NotHumpDownHump, - NotHumpEqual: NotHumpEqual, - NotLeftTriangle: NotLeftTriangle, - NotLeftTriangleBar: NotLeftTriangleBar, - NotLeftTriangleEqual: NotLeftTriangleEqual, - NotLess: NotLess, - NotLessEqual: NotLessEqual, - NotLessGreater: NotLessGreater, - NotLessLess: NotLessLess, - NotLessSlantEqual: NotLessSlantEqual, - NotLessTilde: NotLessTilde, - NotNestedGreaterGreater: NotNestedGreaterGreater, - NotNestedLessLess: NotNestedLessLess, - NotPrecedes: NotPrecedes, - NotPrecedesEqual: NotPrecedesEqual, - NotPrecedesSlantEqual: NotPrecedesSlantEqual, - NotReverseElement: NotReverseElement, - NotRightTriangle: NotRightTriangle, - NotRightTriangleBar: NotRightTriangleBar, - NotRightTriangleEqual: NotRightTriangleEqual, - NotSquareSubset: NotSquareSubset, - NotSquareSubsetEqual: NotSquareSubsetEqual, - NotSquareSuperset: NotSquareSuperset, - NotSquareSupersetEqual: NotSquareSupersetEqual, - NotSubset: NotSubset, - NotSubsetEqual: NotSubsetEqual, - NotSucceeds: NotSucceeds, - NotSucceedsEqual: NotSucceedsEqual, - NotSucceedsSlantEqual: NotSucceedsSlantEqual, - NotSucceedsTilde: NotSucceedsTilde, - NotSuperset: NotSuperset, - NotSupersetEqual: NotSupersetEqual, - NotTilde: NotTilde, - NotTildeEqual: NotTildeEqual, - NotTildeFullEqual: NotTildeFullEqual, - NotTildeTilde: NotTildeTilde, - NotVerticalBar: NotVerticalBar, - Nscr: Nscr, - Ntild: Ntild, - Ntilde: Ntilde, - Nu: Nu, - OElig: OElig, - Oacut: Oacut, - Oacute: Oacute, - Ocir: Ocir, - Ocirc: Ocirc, - Ocy: Ocy, - Odblac: Odblac, - Ofr: Ofr, - Ograv: Ograv, - Ograve: Ograve, - Omacr: Omacr, - Omega: Omega, - Omicron: Omicron, - Oopf: Oopf, - OpenCurlyDoubleQuote: OpenCurlyDoubleQuote, - OpenCurlyQuote: OpenCurlyQuote, - Or: Or, - Oscr: Oscr, - Oslas: Oslas, - Oslash: Oslash, - Otild: Otild, - Otilde: Otilde, - Otimes: Otimes, - Oum: Oum, - Ouml: Ouml, - OverBar: OverBar, - OverBrace: OverBrace, - OverBracket: OverBracket, - OverParenthesis: OverParenthesis, - PartialD: PartialD, - Pcy: Pcy, - Pfr: Pfr, - Phi: Phi, - Pi: Pi, - PlusMinus: PlusMinus, - Poincareplane: Poincareplane, - Popf: Popf, - Pr: Pr, - Precedes: Precedes, - PrecedesEqual: PrecedesEqual, - PrecedesSlantEqual: PrecedesSlantEqual, - PrecedesTilde: PrecedesTilde, - Prime: Prime, - Product: Product, - Proportion: Proportion, - Proportional: Proportional, - Pscr: Pscr, - Psi: Psi, - QUO: QUO, - QUOT: QUOT, - Qfr: Qfr, - Qopf: Qopf, - Qscr: Qscr, - RBarr: RBarr, - RE: RE, - REG: REG, - Racute: Racute, - Rang: Rang, - Rarr: Rarr, - Rarrtl: Rarrtl, - Rcaron: Rcaron, - Rcedil: Rcedil, - Rcy: Rcy, - Re: Re, - ReverseElement: ReverseElement, - ReverseEquilibrium: ReverseEquilibrium, - ReverseUpEquilibrium: ReverseUpEquilibrium, - Rfr: Rfr, - Rho: Rho, - RightAngleBracket: RightAngleBracket, - RightArrow: RightArrow, - RightArrowBar: RightArrowBar, - RightArrowLeftArrow: RightArrowLeftArrow, - RightCeiling: RightCeiling, - RightDoubleBracket: RightDoubleBracket, - RightDownTeeVector: RightDownTeeVector, - RightDownVector: RightDownVector, - RightDownVectorBar: RightDownVectorBar, - RightFloor: RightFloor, - RightTee: RightTee, - RightTeeArrow: RightTeeArrow, - RightTeeVector: RightTeeVector, - RightTriangle: RightTriangle, - RightTriangleBar: RightTriangleBar, - RightTriangleEqual: RightTriangleEqual, - RightUpDownVector: RightUpDownVector, - RightUpTeeVector: RightUpTeeVector, - RightUpVector: RightUpVector, - RightUpVectorBar: RightUpVectorBar, - RightVector: RightVector, - RightVectorBar: RightVectorBar, - Rightarrow: Rightarrow, - Ropf: Ropf, - RoundImplies: RoundImplies, - Rrightarrow: Rrightarrow, - Rscr: Rscr, - Rsh: Rsh, - RuleDelayed: RuleDelayed, - SHCHcy: SHCHcy, - SHcy: SHcy, - SOFTcy: SOFTcy, - Sacute: Sacute, - Sc: Sc, - Scaron: Scaron, - Scedil: Scedil, - Scirc: Scirc, - Scy: Scy, - Sfr: Sfr, - ShortDownArrow: ShortDownArrow, - ShortLeftArrow: ShortLeftArrow, - ShortRightArrow: ShortRightArrow, - ShortUpArrow: ShortUpArrow, - Sigma: Sigma, - SmallCircle: SmallCircle, - Sopf: Sopf, - Sqrt: Sqrt, - Square: Square, - SquareIntersection: SquareIntersection, - SquareSubset: SquareSubset, - SquareSubsetEqual: SquareSubsetEqual, - SquareSuperset: SquareSuperset, - SquareSupersetEqual: SquareSupersetEqual, - SquareUnion: SquareUnion, - Sscr: Sscr, - Star: Star, - Sub: Sub, - Subset: Subset, - SubsetEqual: SubsetEqual, - Succeeds: Succeeds, - SucceedsEqual: SucceedsEqual, - SucceedsSlantEqual: SucceedsSlantEqual, - SucceedsTilde: SucceedsTilde, - SuchThat: SuchThat, - Sum: Sum, - Sup: Sup, - Superset: Superset, - SupersetEqual: SupersetEqual, - Supset: Supset, - THOR: THOR, - THORN: THORN, - TRADE: TRADE, - TSHcy: TSHcy, - TScy: TScy, - Tab: Tab, - Tau: Tau, - Tcaron: Tcaron, - Tcedil: Tcedil, - Tcy: Tcy, - Tfr: Tfr, - Therefore: Therefore, - Theta: Theta, - ThickSpace: ThickSpace, - ThinSpace: ThinSpace, - Tilde: Tilde, - TildeEqual: TildeEqual, - TildeFullEqual: TildeFullEqual, - TildeTilde: TildeTilde, - Topf: Topf, - TripleDot: TripleDot, - Tscr: Tscr, - Tstrok: Tstrok, - Uacut: Uacut, - Uacute: Uacute, - Uarr: Uarr, - Uarrocir: Uarrocir, - Ubrcy: Ubrcy, - Ubreve: Ubreve, - Ucir: Ucir, - Ucirc: Ucirc, - Ucy: Ucy, - Udblac: Udblac, - Ufr: Ufr, - Ugrav: Ugrav, - Ugrave: Ugrave, - Umacr: Umacr, - UnderBar: UnderBar, - UnderBrace: UnderBrace, - UnderBracket: UnderBracket, - UnderParenthesis: UnderParenthesis, - Union: Union, - UnionPlus: UnionPlus, - Uogon: Uogon, - Uopf: Uopf, - UpArrow: UpArrow, - UpArrowBar: UpArrowBar, - UpArrowDownArrow: UpArrowDownArrow, - UpDownArrow: UpDownArrow, - UpEquilibrium: UpEquilibrium, - UpTee: UpTee, - UpTeeArrow: UpTeeArrow, - Uparrow: Uparrow, - Updownarrow: Updownarrow, - UpperLeftArrow: UpperLeftArrow, - UpperRightArrow: UpperRightArrow, - Upsi: Upsi, - Upsilon: Upsilon, - Uring: Uring, - Uscr: Uscr, - Utilde: Utilde, - Uum: Uum, - Uuml: Uuml, - VDash: VDash, - Vbar: Vbar, - Vcy: Vcy, - Vdash: Vdash, - Vdashl: Vdashl, - Vee: Vee, - Verbar: Verbar, - Vert: Vert, - VerticalBar: VerticalBar, - VerticalLine: VerticalLine, - VerticalSeparator: VerticalSeparator, - VerticalTilde: VerticalTilde, - VeryThinSpace: VeryThinSpace, - Vfr: Vfr, - Vopf: Vopf, - Vscr: Vscr, - Vvdash: Vvdash, - Wcirc: Wcirc, - Wedge: Wedge, - Wfr: Wfr, - Wopf: Wopf, - Wscr: Wscr, - Xfr: Xfr, - Xi: Xi, - Xopf: Xopf, - Xscr: Xscr, - YAcy: YAcy, - YIcy: YIcy, - YUcy: YUcy, - Yacut: Yacut, - Yacute: Yacute, - Ycirc: Ycirc, - Ycy: Ycy, - Yfr: Yfr, - Yopf: Yopf, - Yscr: Yscr, - Yuml: Yuml, - ZHcy: ZHcy, - Zacute: Zacute, - Zcaron: Zcaron, - Zcy: Zcy, - Zdot: Zdot, - ZeroWidthSpace: ZeroWidthSpace, - Zeta: Zeta, - Zfr: Zfr, - Zopf: Zopf, - Zscr: Zscr, - aacut: aacut, - aacute: aacute, - abreve: abreve, - ac: ac, - acE: acE, - acd: acd, - acir: acir, - acirc: acirc, - acut: acut, - acute: acute, - acy: acy, - aeli: aeli, - aelig: aelig, - af: af, - afr: afr, - agrav: agrav, - agrave: agrave, - alefsym: alefsym, - aleph: aleph, - alpha: alpha, - amacr: amacr, - amalg: amalg, - am: am, - amp: amp, - and: and, - andand: andand, - andd: andd, - andslope: andslope, - andv: andv, - ang: ang, - ange: ange, - angle: angle, - angmsd: angmsd, - angmsdaa: angmsdaa, - angmsdab: angmsdab, - angmsdac: angmsdac, - angmsdad: angmsdad, - angmsdae: angmsdae, - angmsdaf: angmsdaf, - angmsdag: angmsdag, - angmsdah: angmsdah, - angrt: angrt, - angrtvb: angrtvb, - angrtvbd: angrtvbd, - angsph: angsph, - angst: angst, - angzarr: angzarr, - aogon: aogon, - aopf: aopf, - ap: ap, - apE: apE, - apacir: apacir, - ape: ape, - apid: apid, - apos: apos, - approx: approx, - approxeq: approxeq, - arin: arin, - aring: aring, - ascr: ascr, - ast: ast, - asymp: asymp, - asympeq: asympeq, - atild: atild, - atilde: atilde, - aum: aum, - auml: auml, - awconint: awconint, - awint: awint, - bNot: bNot, - backcong: backcong, - backepsilon: backepsilon, - backprime: backprime, - backsim: backsim, - backsimeq: backsimeq, - barvee: barvee, - barwed: barwed, - barwedge: barwedge, - bbrk: bbrk, - bbrktbrk: bbrktbrk, - bcong: bcong, - bcy: bcy, - bdquo: bdquo, - becaus: becaus, - because: because, - bemptyv: bemptyv, - bepsi: bepsi, - bernou: bernou, - beta: beta, - beth: beth, - between: between, - bfr: bfr, - bigcap: bigcap, - bigcirc: bigcirc, - bigcup: bigcup, - bigodot: bigodot, - bigoplus: bigoplus, - bigotimes: bigotimes, - bigsqcup: bigsqcup, - bigstar: bigstar, - bigtriangledown: bigtriangledown, - bigtriangleup: bigtriangleup, - biguplus: biguplus, - bigvee: bigvee, - bigwedge: bigwedge, - bkarow: bkarow, - blacklozenge: blacklozenge, - blacksquare: blacksquare, - blacktriangle: blacktriangle, - blacktriangledown: blacktriangledown, - blacktriangleleft: blacktriangleleft, - blacktriangleright: blacktriangleright, - blank: blank, - blk12: blk12, - blk14: blk14, - blk34: blk34, - block: block, - bne: bne, - bnequiv: bnequiv, - bnot: bnot, - bopf: bopf, - bot: bot, - bottom: bottom, - bowtie: bowtie, - boxDL: boxDL, - boxDR: boxDR, - boxDl: boxDl, - boxDr: boxDr, - boxH: boxH, - boxHD: boxHD, - boxHU: boxHU, - boxHd: boxHd, - boxHu: boxHu, - boxUL: boxUL, - boxUR: boxUR, - boxUl: boxUl, - boxUr: boxUr, - boxV: boxV, - boxVH: boxVH, - boxVL: boxVL, - boxVR: boxVR, - boxVh: boxVh, - boxVl: boxVl, - boxVr: boxVr, - boxbox: boxbox, - boxdL: boxdL, - boxdR: boxdR, - boxdl: boxdl, - boxdr: boxdr, - boxh: boxh, - boxhD: boxhD, - boxhU: boxhU, - boxhd: boxhd, - boxhu: boxhu, - boxminus: boxminus, - boxplus: boxplus, - boxtimes: boxtimes, - boxuL: boxuL, - boxuR: boxuR, - boxul: boxul, - boxur: boxur, - boxv: boxv, - boxvH: boxvH, - boxvL: boxvL, - boxvR: boxvR, - boxvh: boxvh, - boxvl: boxvl, - boxvr: boxvr, - bprime: bprime, - breve: breve, - brvba: brvba, - brvbar: brvbar, - bscr: bscr, - bsemi: bsemi, - bsim: bsim, - bsime: bsime, - bsol: bsol, - bsolb: bsolb, - bsolhsub: bsolhsub, - bull: bull, - bullet: bullet, - bump: bump, - bumpE: bumpE, - bumpe: bumpe, - bumpeq: bumpeq, - cacute: cacute, - cap: cap, - capand: capand, - capbrcup: capbrcup, - capcap: capcap, - capcup: capcup, - capdot: capdot, - caps: caps, - caret: caret, - caron: caron, - ccaps: ccaps, - ccaron: ccaron, - ccedi: ccedi, - ccedil: ccedil, - ccirc: ccirc, - ccups: ccups, - ccupssm: ccupssm, - cdot: cdot, - cedi: cedi, - cedil: cedil, - cemptyv: cemptyv, - cen: cen, - cent: cent, - centerdot: centerdot, - cfr: cfr, - chcy: chcy, - check: check$2, - checkmark: checkmark, - chi: chi, - cir: cir, - cirE: cirE, - circ: circ, - circeq: circeq, - circlearrowleft: circlearrowleft, - circlearrowright: circlearrowright, - circledR: circledR, - circledS: circledS, - circledast: circledast, - circledcirc: circledcirc, - circleddash: circleddash, - cire: cire, - cirfnint: cirfnint, - cirmid: cirmid, - cirscir: cirscir, - clubs: clubs, - clubsuit: clubsuit, - colon: colon, - colone: colone, - coloneq: coloneq, - comma: comma, - commat: commat, - comp: comp, - compfn: compfn, - complement: complement, - complexes: complexes, - cong: cong, - congdot: congdot, - conint: conint, - copf: copf, - coprod: coprod, - cop: cop, - copy: copy$1, - copysr: copysr, - crarr: crarr, - cross: cross, - cscr: cscr, - csub: csub, - csube: csube, - csup: csup, - csupe: csupe, - ctdot: ctdot, - cudarrl: cudarrl, - cudarrr: cudarrr, - cuepr: cuepr, - cuesc: cuesc, - cularr: cularr, - cularrp: cularrp, - cup: cup, - cupbrcap: cupbrcap, - cupcap: cupcap, - cupcup: cupcup, - cupdot: cupdot, - cupor: cupor, - cups: cups, - curarr: curarr, - curarrm: curarrm, - curlyeqprec: curlyeqprec, - curlyeqsucc: curlyeqsucc, - curlyvee: curlyvee, - curlywedge: curlywedge, - curre: curre, - curren: curren, - curvearrowleft: curvearrowleft, - curvearrowright: curvearrowright, - cuvee: cuvee, - cuwed: cuwed, - cwconint: cwconint, - cwint: cwint, - cylcty: cylcty, - dArr: dArr, - dHar: dHar, - dagger: dagger, - daleth: daleth, - darr: darr, - dash: dash, - dashv: dashv, - dbkarow: dbkarow, - dblac: dblac, - dcaron: dcaron, - dcy: dcy, - dd: dd, - ddagger: ddagger, - ddarr: ddarr, - ddotseq: ddotseq, - de: de, - deg: deg, - delta: delta, - demptyv: demptyv, - dfisht: dfisht, - dfr: dfr, - dharl: dharl, - dharr: dharr, - diam: diam, - diamond: diamond, - diamondsuit: diamondsuit, - diams: diams, - die: die, - digamma: digamma, - disin: disin, - div: div, - divid: divid, - divide: divide, - divideontimes: divideontimes, - divonx: divonx, - djcy: djcy, - dlcorn: dlcorn, - dlcrop: dlcrop, - dollar: dollar, - dopf: dopf, - dot: dot, - doteq: doteq, - doteqdot: doteqdot, - dotminus: dotminus, - dotplus: dotplus, - dotsquare: dotsquare, - doublebarwedge: doublebarwedge, - downarrow: downarrow, - downdownarrows: downdownarrows, - downharpoonleft: downharpoonleft, - downharpoonright: downharpoonright, - drbkarow: drbkarow, - drcorn: drcorn, - drcrop: drcrop, - dscr: dscr, - dscy: dscy, - dsol: dsol, - dstrok: dstrok, - dtdot: dtdot, - dtri: dtri, - dtrif: dtrif, - duarr: duarr, - duhar: duhar, - dwangle: dwangle, - dzcy: dzcy, - dzigrarr: dzigrarr, - eDDot: eDDot, - eDot: eDot, - eacut: eacut, - eacute: eacute, - easter: easter, - ecaron: ecaron, - ecir: ecir, - ecirc: ecirc, - ecolon: ecolon, - ecy: ecy, - edot: edot, - ee: ee, - efDot: efDot, - efr: efr, - eg: eg, - egrav: egrav, - egrave: egrave, - egs: egs, - egsdot: egsdot, - el: el, - elinters: elinters, - ell: ell, - els: els, - elsdot: elsdot, - emacr: emacr, - empty: empty, - emptyset: emptyset, - emptyv: emptyv, - emsp13: emsp13, - emsp14: emsp14, - emsp: emsp, - eng: eng, - ensp: ensp, - eogon: eogon, - eopf: eopf, - epar: epar, - eparsl: eparsl, - eplus: eplus, - epsi: epsi, - epsilon: epsilon, - epsiv: epsiv, - eqcirc: eqcirc, - eqcolon: eqcolon, - eqsim: eqsim, - eqslantgtr: eqslantgtr, - eqslantless: eqslantless, - equals: equals, - equest: equest, - equiv: equiv, - equivDD: equivDD, - eqvparsl: eqvparsl, - erDot: erDot, - erarr: erarr, - escr: escr, - esdot: esdot, - esim: esim, - eta: eta, - et: et, - eth: eth, - eum: eum, - euml: euml, - euro: euro, - excl: excl, - exist: exist, - expectation: expectation, - exponentiale: exponentiale, - fallingdotseq: fallingdotseq, - fcy: fcy, - female: female, - ffilig: ffilig, - fflig: fflig, - ffllig: ffllig, - ffr: ffr, - filig: filig, - fjlig: fjlig, - flat: flat, - fllig: fllig, - fltns: fltns, - fnof: fnof, - fopf: fopf, - forall: forall, - fork: fork, - forkv: forkv, - fpartint: fpartint, - frac1: frac1, - frac12: frac12, - frac13: frac13, - frac14: frac14, - frac15: frac15, - frac16: frac16, - frac18: frac18, - frac23: frac23, - frac25: frac25, - frac3: frac3, - frac34: frac34, - frac35: frac35, - frac38: frac38, - frac45: frac45, - frac56: frac56, - frac58: frac58, - frac78: frac78, - frasl: frasl, - frown: frown, - fscr: fscr, - gE: gE, - gEl: gEl, - gacute: gacute, - gamma: gamma, - gammad: gammad, - gap: gap, - gbreve: gbreve, - gcirc: gcirc, - gcy: gcy, - gdot: gdot, - ge: ge, - gel: gel, - geq: geq, - geqq: geqq, - geqslant: geqslant, - ges: ges, - gescc: gescc, - gesdot: gesdot, - gesdoto: gesdoto, - gesdotol: gesdotol, - gesl: gesl, - gesles: gesles, - gfr: gfr, - gg: gg, - ggg: ggg, - gimel: gimel, - gjcy: gjcy, - gl: gl, - glE: glE, - gla: gla, - glj: glj, - gnE: gnE, - gnap: gnap, - gnapprox: gnapprox, - gne: gne, - gneq: gneq, - gneqq: gneqq, - gnsim: gnsim, - gopf: gopf, - grave: grave, - gscr: gscr, - gsim: gsim, - gsime: gsime, - gsiml: gsiml, - g: g, - gt: gt, - gtcc: gtcc, - gtcir: gtcir, - gtdot: gtdot, - gtlPar: gtlPar, - gtquest: gtquest, - gtrapprox: gtrapprox, - gtrarr: gtrarr, - gtrdot: gtrdot, - gtreqless: gtreqless, - gtreqqless: gtreqqless, - gtrless: gtrless, - gtrsim: gtrsim, - gvertneqq: gvertneqq, - gvnE: gvnE, - hArr: hArr, - hairsp: hairsp, - half: half, - hamilt: hamilt, - hardcy: hardcy, - harr: harr, - harrcir: harrcir, - harrw: harrw, - hbar: hbar, - hcirc: hcirc, - hearts: hearts, - heartsuit: heartsuit, - hellip: hellip, - hercon: hercon, - hfr: hfr, - hksearow: hksearow, - hkswarow: hkswarow, - hoarr: hoarr, - homtht: homtht, - hookleftarrow: hookleftarrow, - hookrightarrow: hookrightarrow, - hopf: hopf, - horbar: horbar, - hscr: hscr, - hslash: hslash, - hstrok: hstrok, - hybull: hybull, - hyphen: hyphen, - iacut: iacut, - iacute: iacute, - ic: ic, - icir: icir, - icirc: icirc, - icy: icy, - iecy: iecy, - iexc: iexc, - iexcl: iexcl, - iff: iff, - ifr: ifr, - igrav: igrav, - igrave: igrave, - ii: ii, - iiiint: iiiint, - iiint: iiint, - iinfin: iinfin, - iiota: iiota, - ijlig: ijlig, - imacr: imacr, - image: image, - imagline: imagline, - imagpart: imagpart, - imath: imath, - imof: imof, - imped: imped, - "in": "∈", - incare: incare, - infin: infin, - infintie: infintie, - inodot: inodot, - int: int$1, - intcal: intcal, - integers: integers, - intercal: intercal, - intlarhk: intlarhk, - intprod: intprod, - iocy: iocy, - iogon: iogon, - iopf: iopf, - iota: iota, - iprod: iprod, - iques: iques, - iquest: iquest, - iscr: iscr, - isin: isin, - isinE: isinE, - isindot: isindot, - isins: isins, - isinsv: isinsv, - isinv: isinv, - it: it, - itilde: itilde, - iukcy: iukcy, - ium: ium, - iuml: iuml, - jcirc: jcirc, - jcy: jcy, - jfr: jfr, - jmath: jmath, - jopf: jopf, - jscr: jscr, - jsercy: jsercy, - jukcy: jukcy, - kappa: kappa, - kappav: kappav, - kcedil: kcedil, - kcy: kcy, - kfr: kfr, - kgreen: kgreen, - khcy: khcy, - kjcy: kjcy, - kopf: kopf, - kscr: kscr, - lAarr: lAarr, - lArr: lArr, - lAtail: lAtail, - lBarr: lBarr, - lE: lE, - lEg: lEg, - lHar: lHar, - lacute: lacute, - laemptyv: laemptyv, - lagran: lagran, - lambda: lambda, - lang: lang, - langd: langd, - langle: langle, - lap: lap, - laqu: laqu, - laquo: laquo, - larr: larr, - larrb: larrb, - larrbfs: larrbfs, - larrfs: larrfs, - larrhk: larrhk, - larrlp: larrlp, - larrpl: larrpl, - larrsim: larrsim, - larrtl: larrtl, - lat: lat, - latail: latail, - late: late, - lates: lates, - lbarr: lbarr, - lbbrk: lbbrk, - lbrace: lbrace, - lbrack: lbrack, - lbrke: lbrke, - lbrksld: lbrksld, - lbrkslu: lbrkslu, - lcaron: lcaron, - lcedil: lcedil, - lceil: lceil, - lcub: lcub, - lcy: lcy, - ldca: ldca, - ldquo: ldquo, - ldquor: ldquor, - ldrdhar: ldrdhar, - ldrushar: ldrushar, - ldsh: ldsh, - le: le, - leftarrow: leftarrow, - leftarrowtail: leftarrowtail, - leftharpoondown: leftharpoondown, - leftharpoonup: leftharpoonup, - leftleftarrows: leftleftarrows, - leftrightarrow: leftrightarrow, - leftrightarrows: leftrightarrows, - leftrightharpoons: leftrightharpoons, - leftrightsquigarrow: leftrightsquigarrow, - leftthreetimes: leftthreetimes, - leg: leg, - leq: leq, - leqq: leqq, - leqslant: leqslant, - les: les, - lescc: lescc, - lesdot: lesdot, - lesdoto: lesdoto, - lesdotor: lesdotor, - lesg: lesg, - lesges: lesges, - lessapprox: lessapprox, - lessdot: lessdot, - lesseqgtr: lesseqgtr, - lesseqqgtr: lesseqqgtr, - lessgtr: lessgtr, - lesssim: lesssim, - lfisht: lfisht, - lfloor: lfloor, - lfr: lfr, - lg: lg, - lgE: lgE, - lhard: lhard, - lharu: lharu, - lharul: lharul, - lhblk: lhblk, - ljcy: ljcy, - ll: ll, - llarr: llarr, - llcorner: llcorner, - llhard: llhard, - lltri: lltri, - lmidot: lmidot, - lmoust: lmoust, - lmoustache: lmoustache, - lnE: lnE, - lnap: lnap, - lnapprox: lnapprox, - lne: lne, - lneq: lneq, - lneqq: lneqq, - lnsim: lnsim, - loang: loang, - loarr: loarr, - lobrk: lobrk, - longleftarrow: longleftarrow, - longleftrightarrow: longleftrightarrow, - longmapsto: longmapsto, - longrightarrow: longrightarrow, - looparrowleft: looparrowleft, - looparrowright: looparrowright, - lopar: lopar, - lopf: lopf, - loplus: loplus, - lotimes: lotimes, - lowast: lowast, - lowbar: lowbar, - loz: loz, - lozenge: lozenge, - lozf: lozf, - lpar: lpar, - lparlt: lparlt, - lrarr: lrarr, - lrcorner: lrcorner, - lrhar: lrhar, - lrhard: lrhard, - lrm: lrm, - lrtri: lrtri, - lsaquo: lsaquo, - lscr: lscr, - lsh: lsh, - lsim: lsim, - lsime: lsime, - lsimg: lsimg, - lsqb: lsqb, - lsquo: lsquo, - lsquor: lsquor, - lstrok: lstrok, - l: l, - lt: lt, - ltcc: ltcc, - ltcir: ltcir, - ltdot: ltdot, - lthree: lthree, - ltimes: ltimes, - ltlarr: ltlarr, - ltquest: ltquest, - ltrPar: ltrPar, - ltri: ltri, - ltrie: ltrie, - ltrif: ltrif, - lurdshar: lurdshar, - luruhar: luruhar, - lvertneqq: lvertneqq, - lvnE: lvnE, - mDDot: mDDot, - mac: mac, - macr: macr, - male: male, - malt: malt, - maltese: maltese, - map: map$2, - mapsto: mapsto, - mapstodown: mapstodown, - mapstoleft: mapstoleft, - mapstoup: mapstoup, - marker: marker, - mcomma: mcomma, - mcy: mcy, - mdash: mdash, - measuredangle: measuredangle, - mfr: mfr, - mho: mho, - micr: micr, - micro: micro, - mid: mid, - midast: midast, - midcir: midcir, - middo: middo, - middot: middot, - minus: minus, - minusb: minusb, - minusd: minusd, - minusdu: minusdu, - mlcp: mlcp, - mldr: mldr, - mnplus: mnplus, - models: models$2, - mopf: mopf, - mp: mp, - mscr: mscr, - mstpos: mstpos, - mu: mu, - multimap: multimap, - mumap: mumap, - nGg: nGg, - nGt: nGt, - nGtv: nGtv, - nLeftarrow: nLeftarrow, - nLeftrightarrow: nLeftrightarrow, - nLl: nLl, - nLt: nLt, - nLtv: nLtv, - nRightarrow: nRightarrow, - nVDash: nVDash, - nVdash: nVdash, - nabla: nabla, - nacute: nacute, - nang: nang, - nap: nap, - napE: napE, - napid: napid, - napos: napos, - napprox: napprox, - natur: natur, - natural: natural, - naturals: naturals, - nbs: nbs, - nbsp: nbsp, - nbump: nbump, - nbumpe: nbumpe, - ncap: ncap, - ncaron: ncaron, - ncedil: ncedil, - ncong: ncong, - ncongdot: ncongdot, - ncup: ncup, - ncy: ncy, - ndash: ndash, - ne: ne, - neArr: neArr, - nearhk: nearhk, - nearr: nearr, - nearrow: nearrow, - nedot: nedot, - nequiv: nequiv, - nesear: nesear, - nesim: nesim, - nexist: nexist, - nexists: nexists, - nfr: nfr, - ngE: ngE, - nge: nge, - ngeq: ngeq, - ngeqq: ngeqq, - ngeqslant: ngeqslant, - nges: nges, - ngsim: ngsim, - ngt: ngt, - ngtr: ngtr, - nhArr: nhArr, - nharr: nharr, - nhpar: nhpar, - ni: ni, - nis: nis, - nisd: nisd, - niv: niv, - njcy: njcy, - nlArr: nlArr, - nlE: nlE, - nlarr: nlarr, - nldr: nldr, - nle: nle, - nleftarrow: nleftarrow, - nleftrightarrow: nleftrightarrow, - nleq: nleq, - nleqq: nleqq, - nleqslant: nleqslant, - nles: nles, - nless: nless, - nlsim: nlsim, - nlt: nlt, - nltri: nltri, - nltrie: nltrie, - nmid: nmid, - nopf: nopf, - no: no, - not: not, - notin: notin, - notinE: notinE, - notindot: notindot, - notinva: notinva, - notinvb: notinvb, - notinvc: notinvc, - notni: notni, - notniva: notniva, - notnivb: notnivb, - notnivc: notnivc, - npar: npar, - nparallel: nparallel, - nparsl: nparsl, - npart: npart, - npolint: npolint, - npr: npr, - nprcue: nprcue, - npre: npre, - nprec: nprec, - npreceq: npreceq, - nrArr: nrArr, - nrarr: nrarr, - nrarrc: nrarrc, - nrarrw: nrarrw, - nrightarrow: nrightarrow, - nrtri: nrtri, - nrtrie: nrtrie, - nsc: nsc, - nsccue: nsccue, - nsce: nsce, - nscr: nscr, - nshortmid: nshortmid, - nshortparallel: nshortparallel, - nsim: nsim, - nsime: nsime, - nsimeq: nsimeq, - nsmid: nsmid, - nspar: nspar, - nsqsube: nsqsube, - nsqsupe: nsqsupe, - nsub: nsub, - nsubE: nsubE, - nsube: nsube, - nsubset: nsubset, - nsubseteq: nsubseteq, - nsubseteqq: nsubseteqq, - nsucc: nsucc, - nsucceq: nsucceq, - nsup: nsup, - nsupE: nsupE, - nsupe: nsupe, - nsupset: nsupset, - nsupseteq: nsupseteq, - nsupseteqq: nsupseteqq, - ntgl: ntgl, - ntild: ntild, - ntilde: ntilde, - ntlg: ntlg, - ntriangleleft: ntriangleleft, - ntrianglelefteq: ntrianglelefteq, - ntriangleright: ntriangleright, - ntrianglerighteq: ntrianglerighteq, - nu: nu, - num: num, - numero: numero, - numsp: numsp, - nvDash: nvDash, - nvHarr: nvHarr, - nvap: nvap, - nvdash: nvdash, - nvge: nvge, - nvgt: nvgt, - nvinfin: nvinfin, - nvlArr: nvlArr, - nvle: nvle, - nvlt: nvlt, - nvltrie: nvltrie, - nvrArr: nvrArr, - nvrtrie: nvrtrie, - nvsim: nvsim, - nwArr: nwArr, - nwarhk: nwarhk, - nwarr: nwarr, - nwarrow: nwarrow, - nwnear: nwnear, - oS: oS, - oacut: oacut, - oacute: oacute, - oast: oast, - ocir: ocir, - ocirc: ocirc, - ocy: ocy, - odash: odash, - odblac: odblac, - odiv: odiv, - odot: odot, - odsold: odsold, - oelig: oelig, - ofcir: ofcir, - ofr: ofr, - ogon: ogon, - ograv: ograv, - ograve: ograve, - ogt: ogt, - ohbar: ohbar, - ohm: ohm, - oint: oint, - olarr: olarr, - olcir: olcir, - olcross: olcross, - oline: oline, - olt: olt, - omacr: omacr, - omega: omega, - omicron: omicron, - omid: omid, - ominus: ominus, - oopf: oopf, - opar: opar, - operp: operp, - oplus: oplus, - or: or, - orarr: orarr, - ord: ord, - order: order$1, - orderof: orderof, - ordf: ordf, - ordm: ordm, - origof: origof, - oror: oror, - orslope: orslope, - orv: orv, - oscr: oscr, - oslas: oslas, - oslash: oslash, - osol: osol, - otild: otild, - otilde: otilde, - otimes: otimes, - otimesas: otimesas, - oum: oum, - ouml: ouml, - ovbar: ovbar, - par: par, - para: para, - parallel: parallel, - parsim: parsim, - parsl: parsl, - part: part, - pcy: pcy, - percnt: percnt, - period: period, - permil: permil, - perp: perp, - pertenk: pertenk, - pfr: pfr, - phi: phi, - phiv: phiv, - phmmat: phmmat, - phone: phone, - pi: pi, - pitchfork: pitchfork, - piv: piv, - planck: planck, - planckh: planckh, - plankv: plankv, - plus: plus, - plusacir: plusacir, - plusb: plusb, - pluscir: pluscir, - plusdo: plusdo, - plusdu: plusdu, - pluse: pluse, - plusm: plusm, - plusmn: plusmn, - plussim: plussim, - plustwo: plustwo, - pm: pm, - pointint: pointint, - popf: popf, - poun: poun, - pound: pound, - pr: pr, - prE: prE, - prap: prap, - prcue: prcue, - pre: pre, - prec: prec, - precapprox: precapprox, - preccurlyeq: preccurlyeq, - preceq: preceq, - precnapprox: precnapprox, - precneqq: precneqq, - precnsim: precnsim, - precsim: precsim, - prime: prime, - primes: primes, - prnE: prnE, - prnap: prnap, - prnsim: prnsim, - prod: prod, - profalar: profalar, - profline: profline, - profsurf: profsurf, - prop: prop, - propto: propto, - prsim: prsim, - prurel: prurel, - pscr: pscr, - psi: psi, - puncsp: puncsp, - qfr: qfr, - qint: qint, - qopf: qopf, - qprime: qprime, - qscr: qscr, - quaternions: quaternions, - quatint: quatint, - quest: quest, - questeq: questeq, - quo: quo, - quot: quot, - rAarr: rAarr, - rArr: rArr, - rAtail: rAtail, - rBarr: rBarr, - rHar: rHar, - race: race, - racute: racute, - radic: radic, - raemptyv: raemptyv, - rang: rang, - rangd: rangd, - range: range$1, - rangle: rangle, - raqu: raqu, - raquo: raquo, - rarr: rarr, - rarrap: rarrap, - rarrb: rarrb, - rarrbfs: rarrbfs, - rarrc: rarrc, - rarrfs: rarrfs, - rarrhk: rarrhk, - rarrlp: rarrlp, - rarrpl: rarrpl, - rarrsim: rarrsim, - rarrtl: rarrtl, - rarrw: rarrw, - ratail: ratail, - ratio: ratio, - rationals: rationals, - rbarr: rbarr, - rbbrk: rbbrk, - rbrace: rbrace, - rbrack: rbrack, - rbrke: rbrke, - rbrksld: rbrksld, - rbrkslu: rbrkslu, - rcaron: rcaron, - rcedil: rcedil, - rceil: rceil, - rcub: rcub, - rcy: rcy, - rdca: rdca, - rdldhar: rdldhar, - rdquo: rdquo, - rdquor: rdquor, - rdsh: rdsh, - real: real, - realine: realine, - realpart: realpart, - reals: reals, - rect: rect, - re: re, - reg: reg, - rfisht: rfisht, - rfloor: rfloor, - rfr: rfr, - rhard: rhard, - rharu: rharu, - rharul: rharul, - rho: rho, - rhov: rhov, - rightarrow: rightarrow, - rightarrowtail: rightarrowtail, - rightharpoondown: rightharpoondown, - rightharpoonup: rightharpoonup, - rightleftarrows: rightleftarrows, - rightleftharpoons: rightleftharpoons, - rightrightarrows: rightrightarrows, - rightsquigarrow: rightsquigarrow, - rightthreetimes: rightthreetimes, - ring: ring, - risingdotseq: risingdotseq, - rlarr: rlarr, - rlhar: rlhar, - rlm: rlm, - rmoust: rmoust, - rmoustache: rmoustache, - rnmid: rnmid, - roang: roang, - roarr: roarr, - robrk: robrk, - ropar: ropar, - ropf: ropf, - roplus: roplus, - rotimes: rotimes, - rpar: rpar, - rpargt: rpargt, - rppolint: rppolint, - rrarr: rrarr, - rsaquo: rsaquo, - rscr: rscr, - rsh: rsh, - rsqb: rsqb, - rsquo: rsquo, - rsquor: rsquor, - rthree: rthree, - rtimes: rtimes, - rtri: rtri, - rtrie: rtrie, - rtrif: rtrif, - rtriltri: rtriltri, - ruluhar: ruluhar, - rx: rx, - sacute: sacute, - sbquo: sbquo, - sc: sc, - scE: scE, - scap: scap, - scaron: scaron, - sccue: sccue, - sce: sce, - scedil: scedil, - scirc: scirc, - scnE: scnE, - scnap: scnap, - scnsim: scnsim, - scpolint: scpolint, - scsim: scsim, - scy: scy, - sdot: sdot, - sdotb: sdotb, - sdote: sdote, - seArr: seArr, - searhk: searhk, - searr: searr, - searrow: searrow, - sec: sec, - sect: sect, - semi: semi, - seswar: seswar, - setminus: setminus, - setmn: setmn, - sext: sext, - sfr: sfr, - sfrown: sfrown, - sharp: sharp, - shchcy: shchcy, - shcy: shcy, - shortmid: shortmid, - shortparallel: shortparallel, - sh: sh, - shy: shy, - sigma: sigma, - sigmaf: sigmaf, - sigmav: sigmav, - sim: sim, - simdot: simdot, - sime: sime, - simeq: simeq, - simg: simg, - simgE: simgE, - siml: siml, - simlE: simlE, - simne: simne, - simplus: simplus, - simrarr: simrarr, - slarr: slarr, - smallsetminus: smallsetminus, - smashp: smashp, - smeparsl: smeparsl, - smid: smid, - smile: smile, - smt: smt, - smte: smte, - smtes: smtes, - softcy: softcy, - sol: sol, - solb: solb, - solbar: solbar, - sopf: sopf, - spades: spades, - spadesuit: spadesuit, - spar: spar, - sqcap: sqcap, - sqcaps: sqcaps, - sqcup: sqcup, - sqcups: sqcups, - sqsub: sqsub, - sqsube: sqsube, - sqsubset: sqsubset, - sqsubseteq: sqsubseteq, - sqsup: sqsup, - sqsupe: sqsupe, - sqsupset: sqsupset, - sqsupseteq: sqsupseteq, - squ: squ, - square: square, - squarf: squarf, - squf: squf, - srarr: srarr, - sscr: sscr, - ssetmn: ssetmn, - ssmile: ssmile, - sstarf: sstarf, - star: star$1, - starf: starf, - straightepsilon: straightepsilon, - straightphi: straightphi, - strns: strns, - sub: sub, - subE: subE, - subdot: subdot, - sube: sube, - subedot: subedot, - submult: submult, - subnE: subnE, - subne: subne, - subplus: subplus, - subrarr: subrarr, - subset: subset, - subseteq: subseteq, - subseteqq: subseteqq, - subsetneq: subsetneq, - subsetneqq: subsetneqq, - subsim: subsim, - subsub: subsub, - subsup: subsup, - succ: succ, - succapprox: succapprox, - succcurlyeq: succcurlyeq, - succeq: succeq, - succnapprox: succnapprox, - succneqq: succneqq, - succnsim: succnsim, - succsim: succsim, - sum: sum, - sung: sung, - sup: sup, - sup1: sup1, - sup2: sup2, - sup3: sup3, - supE: supE, - supdot: supdot, - supdsub: supdsub, - supe: supe, - supedot: supedot, - suphsol: suphsol, - suphsub: suphsub, - suplarr: suplarr, - supmult: supmult, - supnE: supnE, - supne: supne, - supplus: supplus, - supset: supset, - supseteq: supseteq, - supseteqq: supseteqq, - supsetneq: supsetneq, - supsetneqq: supsetneqq, - supsim: supsim, - supsub: supsub, - supsup: supsup, - swArr: swArr, - swarhk: swarhk, - swarr: swarr, - swarrow: swarrow, - swnwar: swnwar, - szli: szli, - szlig: szlig, - target: target, - tau: tau, - tbrk: tbrk, - tcaron: tcaron, - tcedil: tcedil, - tcy: tcy, - tdot: tdot, - telrec: telrec, - tfr: tfr, - there4: there4, - therefore: therefore, - theta: theta, - thetasym: thetasym, - thetav: thetav, - thickapprox: thickapprox, - thicksim: thicksim, - thinsp: thinsp, - thkap: thkap, - thksim: thksim, - thor: thor, - thorn: thorn, - tilde: tilde, - time: time, - times: times, - timesb: timesb, - timesbar: timesbar, - timesd: timesd, - tint: tint, - toea: toea, - top: top, - topbot: topbot, - topcir: topcir, - topf: topf, - topfork: topfork, - tosa: tosa, - tprime: tprime, - trade: trade, - triangle: triangle, - triangledown: triangledown, - triangleleft: triangleleft, - trianglelefteq: trianglelefteq, - triangleq: triangleq, - triangleright: triangleright, - trianglerighteq: trianglerighteq, - tridot: tridot, - trie: trie, - triminus: triminus, - triplus: triplus, - trisb: trisb, - tritime: tritime, - trpezium: trpezium, - tscr: tscr, - tscy: tscy, - tshcy: tshcy, - tstrok: tstrok, - twixt: twixt, - twoheadleftarrow: twoheadleftarrow, - twoheadrightarrow: twoheadrightarrow, - uArr: uArr, - uHar: uHar, - uacut: uacut, - uacute: uacute, - uarr: uarr, - ubrcy: ubrcy, - ubreve: ubreve, - ucir: ucir, - ucirc: ucirc, - ucy: ucy, - udarr: udarr, - udblac: udblac, - udhar: udhar, - ufisht: ufisht, - ufr: ufr, - ugrav: ugrav, - ugrave: ugrave, - uharl: uharl, - uharr: uharr, - uhblk: uhblk, - ulcorn: ulcorn, - ulcorner: ulcorner, - ulcrop: ulcrop, - ultri: ultri, - umacr: umacr, - um: um, - uml: uml, - uogon: uogon, - uopf: uopf, - uparrow: uparrow, - updownarrow: updownarrow, - upharpoonleft: upharpoonleft, - upharpoonright: upharpoonright, - uplus: uplus, - upsi: upsi, - upsih: upsih, - upsilon: upsilon, - upuparrows: upuparrows, - urcorn: urcorn, - urcorner: urcorner, - urcrop: urcrop, - uring: uring, - urtri: urtri, - uscr: uscr, - utdot: utdot, - utilde: utilde, - utri: utri, - utrif: utrif, - uuarr: uuarr, - uum: uum, - uuml: uuml, - uwangle: uwangle, - vArr: vArr, - vBar: vBar, - vBarv: vBarv, - vDash: vDash, - vangrt: vangrt, - varepsilon: varepsilon, - varkappa: varkappa, - varnothing: varnothing, - varphi: varphi, - varpi: varpi, - varpropto: varpropto, - varr: varr, - varrho: varrho, - varsigma: varsigma, - varsubsetneq: varsubsetneq, - varsubsetneqq: varsubsetneqq, - varsupsetneq: varsupsetneq, - varsupsetneqq: varsupsetneqq, - vartheta: vartheta, - vartriangleleft: vartriangleleft, - vartriangleright: vartriangleright, - vcy: vcy, - vdash: vdash, - vee: vee, - veebar: veebar, - veeeq: veeeq, - vellip: vellip, - verbar: verbar, - vert: vert, - vfr: vfr, - vltri: vltri, - vnsub: vnsub, - vnsup: vnsup, - vopf: vopf, - vprop: vprop, - vrtri: vrtri, - vscr: vscr, - vsubnE: vsubnE, - vsubne: vsubne, - vsupnE: vsupnE, - vsupne: vsupne, - vzigzag: vzigzag, - wcirc: wcirc, - wedbar: wedbar, - wedge: wedge, - wedgeq: wedgeq, - weierp: weierp, - wfr: wfr, - wopf: wopf, - wp: wp, - wr: wr, - wreath: wreath, - wscr: wscr, - xcap: xcap, - xcirc: xcirc, - xcup: xcup, - xdtri: xdtri, - xfr: xfr, - xhArr: xhArr, - xharr: xharr, - xi: xi, - xlArr: xlArr, - xlarr: xlarr, - xmap: xmap, - xnis: xnis, - xodot: xodot, - xopf: xopf, - xoplus: xoplus, - xotime: xotime, - xrArr: xrArr, - xrarr: xrarr, - xscr: xscr, - xsqcup: xsqcup, - xuplus: xuplus, - xutri: xutri, - xvee: xvee, - xwedge: xwedge, - yacut: yacut, - yacute: yacute, - yacy: yacy, - ycirc: ycirc, - ycy: ycy, - ye: ye, - yen: yen, - yfr: yfr, - yicy: yicy, - yopf: yopf, - yscr: yscr, - yucy: yucy, - yum: yum, - yuml: yuml, - zacute: zacute, - zcaron: zcaron, - zcy: zcy, - zdot: zdot, - zeetrf: zeetrf, - zeta: zeta, - zfr: zfr, - zhcy: zhcy, - zigrarr: zigrarr, - zopf: zopf, - zscr: zscr, - zwj: zwj, - zwnj: zwnj -}; +var characterEntities$2 = require$$0$2; -var decodeEntity_1 = decodeEntity; +var decodeEntity_1$2 = decodeEntity$3; -var own$4 = {}.hasOwnProperty; +var own$9 = {}.hasOwnProperty; -function decodeEntity(characters) { - return own$4.call(characterEntities, characters) - ? characterEntities[characters] +function decodeEntity$3(characters) { + return own$9.call(characterEntities$2, characters) + ? characterEntities$2[characters] : false } -var asciiDigit = regexCheck_1(/\d/); +var regexCheck$2 = regexCheck_1; + +var asciiDigit$3 = regexCheck$2(/\d/); + +var asciiDigit_1 = asciiDigit$3; + +var regexCheck$1 = regexCheck_1; -var asciiDigit_1 = asciiDigit; +var asciiHexDigit$1 = regexCheck$1(/[\dA-Fa-f]/); -var asciiHexDigit = regexCheck_1(/[\dA-Fa-f]/); +var asciiHexDigit_1 = asciiHexDigit$1; -var asciiHexDigit_1 = asciiHexDigit; +var decodeEntity$2 = decodeEntity_1$2; +var asciiAlphanumeric$3 = asciiAlphanumeric_1; +var asciiDigit$2 = asciiDigit_1; +var asciiHexDigit = asciiHexDigit_1; function _interopDefaultLegacy$1(e) { return e && typeof e === 'object' && 'default' in e ? e : {default: e} } -var decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy$1(decodeEntity_1); +var decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy$1(decodeEntity$2); -var characterReference = { +var characterReference$2 = { name: 'characterReference', tokenize: tokenizeCharacterReference }; @@ -34382,7 +35321,7 @@ function tokenizeCharacterReference(effects, ok, nok) { effects.enter('characterReferenceValue'); max = 31; - test = asciiAlphanumeric_1; + test = asciiAlphanumeric$3; return value(code) } @@ -34393,13 +35332,13 @@ function tokenizeCharacterReference(effects, ok, nok) { effects.exit('characterReferenceMarkerHexadecimal'); effects.enter('characterReferenceValue'); max = 6; - test = asciiHexDigit_1; + test = asciiHexDigit; return value } effects.enter('characterReferenceValue'); max = 7; - test = asciiDigit_1; + test = asciiDigit$2; return value(code) } @@ -34410,7 +35349,7 @@ function tokenizeCharacterReference(effects, ok, nok) { token = effects.exit('characterReferenceValue'); if ( - test === asciiAlphanumeric_1 && + test === asciiAlphanumeric$3 && !decodeEntity__default['default'](self.sliceSerialize(token)) ) { return nok(code) @@ -34432,9 +35371,14 @@ function tokenizeCharacterReference(effects, ok, nok) { } } -var characterReference_1 = characterReference; +var characterReference_1 = characterReference$2; -var codeFenced = { +var markdownLineEnding$e = markdownLineEnding_1; +var markdownLineEndingOrSpace$7 = markdownLineEndingOrSpace_1; +var prefixSize$2 = prefixSize_1; +var factorySpace$b = factorySpace$i; + +var codeFenced$1 = { name: 'codeFenced', tokenize: tokenizeCodeFenced, concrete: true @@ -34446,7 +35390,7 @@ function tokenizeCodeFenced(effects, ok, nok) { tokenize: tokenizeClosingFence, partial: true }; - var initialPrefix = prefixSize_1(this.events, 'linePrefix'); + var initialPrefix = prefixSize$2(this.events, 'linePrefix'); var sizeOpen = 0; var marker; return start @@ -34469,11 +35413,11 @@ function tokenizeCodeFenced(effects, ok, nok) { effects.exit('codeFencedFenceSequence'); return sizeOpen < 3 ? nok(code) - : factorySpace(effects, infoOpen, 'whitespace')(code) + : factorySpace$b(effects, infoOpen, 'whitespace')(code) } function infoOpen(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$e(code)) { return openAfter(code) } @@ -34485,10 +35429,10 @@ function tokenizeCodeFenced(effects, ok, nok) { } function info(code) { - if (code === null || markdownLineEndingOrSpace_1(code)) { + if (code === null || markdownLineEndingOrSpace$7(code)) { effects.exit('chunkString'); effects.exit('codeFencedFenceInfo'); - return factorySpace(effects, infoAfter, 'whitespace')(code) + return factorySpace$b(effects, infoAfter, 'whitespace')(code) } if (code === 96 && code === marker) return nok(code) @@ -34497,7 +35441,7 @@ function tokenizeCodeFenced(effects, ok, nok) { } function infoAfter(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$e(code)) { return openAfter(code) } @@ -34509,7 +35453,7 @@ function tokenizeCodeFenced(effects, ok, nok) { } function meta(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$e(code)) { effects.exit('chunkString'); effects.exit('codeFencedFenceMeta'); return openAfter(code) @@ -34530,7 +35474,7 @@ function tokenizeCodeFenced(effects, ok, nok) { return after(code) } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$e(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); @@ -34538,7 +35482,7 @@ function tokenizeCodeFenced(effects, ok, nok) { closingFenceConstruct, after, initialPrefix - ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1) + ? factorySpace$b(effects, content, 'linePrefix', initialPrefix + 1) : content ) } @@ -34548,7 +35492,7 @@ function tokenizeCodeFenced(effects, ok, nok) { } function contentContinue(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$e(code)) { effects.exit('codeFlowValue'); return content(code) } @@ -34564,7 +35508,7 @@ function tokenizeCodeFenced(effects, ok, nok) { function tokenizeClosingFence(effects, ok, nok) { var size = 0; - return factorySpace( + return factorySpace$b( effects, closingSequenceStart, 'linePrefix', @@ -34588,11 +35532,11 @@ function tokenizeCodeFenced(effects, ok, nok) { if (size < sizeOpen) return nok(code) effects.exit('codeFencedFenceSequence'); - return factorySpace(effects, closingSequenceEnd, 'whitespace')(code) + return factorySpace$b(effects, closingSequenceEnd, 'whitespace')(code) } function closingSequenceEnd(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$e(code)) { effects.exit('codeFencedFence'); return ok(code) } @@ -34602,9 +35546,14 @@ function tokenizeCodeFenced(effects, ok, nok) { } } -var codeFenced_1 = codeFenced; +var codeFenced_1 = codeFenced$1; + +var markdownLineEnding$d = markdownLineEnding_1; +var chunkedSplice$2 = chunkedSplice_1; +var prefixSize$1 = prefixSize_1; +var factorySpace$a = factorySpace$i; -var codeIndented = { +var codeIndented$1 = { name: 'codeIndented', tokenize: tokenizeCodeIndented, resolve: resolveCodeIndented @@ -34620,8 +35569,8 @@ function resolveCodeIndented(events, context) { start: events[0][1].start, end: events[events.length - 1][1].end }; - chunkedSplice_1(events, 0, 0, [['enter', code, context]]); - chunkedSplice_1(events, events.length, 0, [['exit', code, context]]); + chunkedSplice$2(events, 0, 0, [['enter', code, context]]); + chunkedSplice$2(events, events.length, 0, [['exit', code, context]]); return events } @@ -34633,7 +35582,7 @@ function tokenizeCodeIndented(effects, ok, nok) { return ok(code) } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$d(code)) { return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code) } @@ -34642,7 +35591,7 @@ function tokenizeCodeIndented(effects, ok, nok) { } function content(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$d(code)) { effects.exit('codeFlowValue'); return afterPrefix(code) } @@ -34654,27 +35603,29 @@ function tokenizeCodeIndented(effects, ok, nok) { function tokenizeIndentedContent(effects, ok, nok) { var self = this; - return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1) + return factorySpace$a(effects, afterPrefix, 'linePrefix', 4 + 1) function afterPrefix(code) { - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$d(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); - return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1) + return factorySpace$a(effects, afterPrefix, 'linePrefix', 4 + 1) } - return prefixSize_1(self.events, 'linePrefix') < 4 ? nok(code) : ok(code) + return prefixSize$1(self.events, 'linePrefix') < 4 ? nok(code) : ok(code) } } -var codeIndented_1 = codeIndented; +var codeIndented_1 = codeIndented$1; -var codeText = { +var markdownLineEnding$c = markdownLineEnding_1; + +var codeText$1 = { name: 'codeText', tokenize: tokenizeCodeText, resolve: resolveCodeText, - previous: previous + previous: previous$1 }; function resolveCodeText(events) { @@ -34731,7 +35682,7 @@ function resolveCodeText(events) { return events } -function previous(code) { +function previous$1(code) { // If there is a previous code, there will always be a tail. return ( code !== 96 || @@ -34782,7 +35733,7 @@ function tokenizeCodeText(effects, ok, nok) { return gap } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$c(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); @@ -34798,7 +35749,7 @@ function tokenizeCodeText(effects, ok, nok) { code === null || code === 32 || code === 96 || - markdownLineEnding_1(code) + markdownLineEnding$c(code) ) { effects.exit('codeTextData'); return gap(code) @@ -34827,7 +35778,11 @@ function tokenizeCodeText(effects, ok, nok) { } } -var codeText_1 = codeText; +var codeText_1 = codeText$1; + +var asciiControl$1 = asciiControl_1; +var markdownLineEndingOrSpace$6 = markdownLineEndingOrSpace_1; +var markdownLineEnding$b = markdownLineEnding_1; // eslint-disable-next-line max-params function destinationFactory( @@ -34855,7 +35810,7 @@ function destinationFactory( return destinationEnclosedBefore } - if (asciiControl_1(code)) { + if (asciiControl$1(code) || code === 41) { return nok(code) } @@ -34892,7 +35847,7 @@ function destinationFactory( return destinationEnclosedBefore(code) } - if (code === null || code === 60 || markdownLineEnding_1(code)) { + if (code === null || code === 60 || markdownLineEnding$b(code)) { return nok(code) } @@ -34929,7 +35884,7 @@ function destinationFactory( return destinationRaw } - if (code === null || markdownLineEndingOrSpace_1(code)) { + if (code === null || markdownLineEndingOrSpace$6(code)) { if (balance) return nok(code) effects.exit('chunkString'); effects.exit(stringType); @@ -34938,7 +35893,7 @@ function destinationFactory( return ok(code) } - if (asciiControl_1(code)) return nok(code) + if (asciiControl$1(code)) return nok(code) effects.consume(code); return code === 92 ? destinationRawEscape : destinationRaw } @@ -34953,7 +35908,10 @@ function destinationFactory( } } -var factoryDestination = destinationFactory; +var factoryDestination$2 = destinationFactory; + +var markdownLineEnding$a = markdownLineEnding_1; +var markdownSpace$7 = markdownSpace_1; // eslint-disable-next-line max-params function labelFactory(effects, ok, nok, type, markerType, stringType) { @@ -34996,7 +35954,7 @@ function labelFactory(effects, ok, nok, type, markerType, stringType) { return ok } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$a(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); @@ -35014,7 +35972,7 @@ function labelFactory(effects, ok, nok, type, markerType, stringType) { code === null || code === 91 || code === 93 || - markdownLineEnding_1(code) || + markdownLineEnding$a(code) || size++ > 999 ) { effects.exit('chunkString'); @@ -35022,7 +35980,7 @@ function labelFactory(effects, ok, nok, type, markerType, stringType) { } effects.consume(code); - data = data || !markdownSpace_1(code); + data = data || !markdownSpace$7(code); return code === 92 ? labelEscape : label } @@ -35037,14 +35995,18 @@ function labelFactory(effects, ok, nok, type, markerType, stringType) { } } -var factoryLabel = labelFactory; +var factoryLabel$2 = labelFactory; + +var markdownLineEnding$9 = markdownLineEnding_1; +var markdownSpace$6 = markdownSpace_1; +var factorySpace$9 = factorySpace$i; function whitespaceFactory(effects, ok) { var seen; return start function start(code) { - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$9(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); @@ -35052,8 +36014,8 @@ function whitespaceFactory(effects, ok) { return start } - if (markdownSpace_1(code)) { - return factorySpace( + if (markdownSpace$6(code)) { + return factorySpace$9( effects, start, seen ? 'linePrefix' : 'lineSuffix' @@ -35064,7 +36026,10 @@ function whitespaceFactory(effects, ok) { } } -var factoryWhitespace = whitespaceFactory; +var factoryWhitespace$2 = whitespaceFactory; + +var markdownLineEnding$8 = markdownLineEnding_1; +var factorySpace$8 = factorySpace$i; function titleFactory(effects, ok, nok, type, markerType, stringType) { var marker; @@ -35102,11 +36067,11 @@ function titleFactory(effects, ok, nok, type, markerType, stringType) { return nok(code) } // Note: blank lines can’t exist in content. - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$8(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); - return factorySpace(effects, atTitleBreak, 'linePrefix') + return factorySpace$8(effects, atTitleBreak, 'linePrefix') } effects.enter('chunkString', { @@ -35116,7 +36081,7 @@ function titleFactory(effects, ok, nok, type, markerType, stringType) { } function title(code) { - if (code === marker || code === null || markdownLineEnding_1(code)) { + if (code === marker || code === null || markdownLineEnding$8(code)) { effects.exit('chunkString'); return atTitleBreak(code) } @@ -35135,9 +36100,18 @@ function titleFactory(effects, ok, nok, type, markerType, stringType) { } } -var factoryTitle = titleFactory; +var factoryTitle$2 = titleFactory; -var definition = { +var markdownLineEnding$7 = markdownLineEnding_1; +var markdownLineEndingOrSpace$5 = markdownLineEndingOrSpace_1; +var normalizeIdentifier$3 = normalizeIdentifier_1; +var factoryDestination$1 = factoryDestination$2; +var factoryLabel$1 = factoryLabel$2; +var factorySpace$7 = factorySpace$i; +var factoryWhitespace$1 = factoryWhitespace$2; +var factoryTitle$1 = factoryTitle$2; + +var definition$2 = { name: 'definition', tokenize: tokenizeDefinition }; @@ -35153,7 +36127,7 @@ function tokenizeDefinition(effects, ok, nok) { function start(code) { effects.enter('definition'); - return factoryLabel.call( + return factoryLabel$1.call( self, effects, labelAfter, @@ -35165,7 +36139,7 @@ function tokenizeDefinition(effects, ok, nok) { } function labelAfter(code) { - identifier = normalizeIdentifier_1( + identifier = normalizeIdentifier$3( self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) ); @@ -35174,14 +36148,14 @@ function tokenizeDefinition(effects, ok, nok) { effects.consume(code); effects.exit('definitionMarker'); // Note: blank lines can’t exist in content. - return factoryWhitespace( + return factoryWhitespace$1( effects, - factoryDestination( + factoryDestination$1( effects, effects.attempt( titleConstruct, - factorySpace(effects, after, 'whitespace'), - factorySpace(effects, after, 'whitespace') + factorySpace$7(effects, after, 'whitespace'), + factorySpace$7(effects, after, 'whitespace') ), nok, 'definitionDestination', @@ -35197,7 +36171,7 @@ function tokenizeDefinition(effects, ok, nok) { } function after(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$7(code)) { effects.exit('definition'); if (self.parser.defined.indexOf(identifier) < 0) { @@ -35215,16 +36189,16 @@ function tokenizeTitle(effects, ok, nok) { return start function start(code) { - return markdownLineEndingOrSpace_1(code) - ? factoryWhitespace(effects, before)(code) + return markdownLineEndingOrSpace$5(code) + ? factoryWhitespace$1(effects, before)(code) : nok(code) } function before(code) { if (code === 34 || code === 39 || code === 40) { - return factoryTitle( + return factoryTitle$1( effects, - factorySpace(effects, after, 'whitespace'), + factorySpace$7(effects, after, 'whitespace'), nok, 'definitionTitle', 'definitionTitleMarker', @@ -35236,13 +36210,15 @@ function tokenizeTitle(effects, ok, nok) { } function after(code) { - return code === null || markdownLineEnding_1(code) ? ok(code) : nok(code) + return code === null || markdownLineEnding$7(code) ? ok(code) : nok(code) } } -var definition_1 = definition; +var definition_1$1 = definition$2; -var hardBreakEscape = { +var markdownLineEnding$6 = markdownLineEnding_1; + +var hardBreakEscape$1 = { name: 'hardBreakEscape', tokenize: tokenizeHardBreakEscape }; @@ -35258,7 +36234,7 @@ function tokenizeHardBreakEscape(effects, ok, nok) { } function open(code) { - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$6(code)) { effects.exit('escapeMarker'); effects.exit('hardBreakEscape'); return ok(code) @@ -35268,9 +36244,15 @@ function tokenizeHardBreakEscape(effects, ok, nok) { } } -var hardBreakEscape_1 = hardBreakEscape; +var hardBreakEscape_1 = hardBreakEscape$1; + +var markdownLineEnding$5 = markdownLineEnding_1; +var markdownLineEndingOrSpace$4 = markdownLineEndingOrSpace_1; +var markdownSpace$5 = markdownSpace_1; +var chunkedSplice$1 = chunkedSplice_1; +var factorySpace$6 = factorySpace$i; -var headingAtx = { +var headingAtx$1 = { name: 'headingAtx', tokenize: tokenizeHeadingAtx, resolve: resolveHeadingAtx @@ -35314,7 +36296,7 @@ function resolveHeadingAtx(events, context) { end: events[contentEnd][1].end, contentType: 'text' }; - chunkedSplice_1(events, contentStart, contentEnd - contentStart + 1, [ + chunkedSplice$1(events, contentStart, contentEnd - contentStart + 1, [ ['enter', content, context], ['enter', text, context], ['exit', text, context], @@ -35342,7 +36324,7 @@ function tokenizeHeadingAtx(effects, ok, nok) { return fenceOpenInside } - if (code === null || markdownLineEndingOrSpace_1(code)) { + if (code === null || markdownLineEndingOrSpace$4(code)) { effects.exit('atxHeadingSequence'); return self.interrupt ? ok(code) : headingBreak(code) } @@ -35356,13 +36338,13 @@ function tokenizeHeadingAtx(effects, ok, nok) { return sequence(code) } - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$5(code)) { effects.exit('atxHeading'); return ok(code) } - if (markdownSpace_1(code)) { - return factorySpace(effects, headingBreak, 'whitespace')(code) + if (markdownSpace$5(code)) { + return factorySpace$6(effects, headingBreak, 'whitespace')(code) } effects.enter('atxHeadingText'); @@ -35380,7 +36362,7 @@ function tokenizeHeadingAtx(effects, ok, nok) { } function data(code) { - if (code === null || code === 35 || markdownLineEndingOrSpace_1(code)) { + if (code === null || code === 35 || markdownLineEndingOrSpace$4(code)) { effects.exit('atxHeadingText'); return headingBreak(code) } @@ -35390,7 +36372,7 @@ function tokenizeHeadingAtx(effects, ok, nok) { } } -var headingAtx_1 = headingAtx; +var headingAtx_1 = headingAtx$1; // This module is copied from . var basics = [ @@ -35458,14 +36440,24 @@ var basics = [ 'ul' ]; -var htmlBlockNames = basics; +var htmlBlockNames$1 = basics; // This module is copied from . var raws = ['pre', 'script', 'style', 'textarea']; -var htmlRawNames = raws; +var htmlRawNames$1 = raws; -var htmlFlow = { +var asciiAlpha$2 = asciiAlpha_1; +var asciiAlphanumeric$2 = asciiAlphanumeric_1; +var markdownLineEnding$4 = markdownLineEnding_1; +var markdownLineEndingOrSpace$3 = markdownLineEndingOrSpace_1; +var markdownSpace$4 = markdownSpace_1; +var fromCharCode = fromCharCode_1; +var htmlBlockNames = htmlBlockNames$1; +var htmlRawNames = htmlRawNames$1; +var partialBlankLine$1 = partialBlankLine_1; + +var htmlFlow$1 = { name: 'htmlFlow', tokenize: tokenizeHtmlFlow, resolveTo: resolveToHtmlFlow, @@ -35532,9 +36524,9 @@ function tokenizeHtmlFlow(effects, ok, nok) { return self.interrupt ? ok : continuationDeclarationInside } - if (asciiAlpha_1(code)) { + if (asciiAlpha$2(code)) { effects.consume(code); - buffer = fromCharCode_1(code); + buffer = fromCharCode(code); startTag = true; return tagName } @@ -35557,7 +36549,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { return cdataOpenInside } - if (asciiAlpha_1(code)) { + if (asciiAlpha$2(code)) { effects.consume(code); kind = 4; return self.interrupt ? ok : continuationDeclarationInside @@ -35589,9 +36581,9 @@ function tokenizeHtmlFlow(effects, ok, nok) { } function tagCloseStart(code) { - if (asciiAlpha_1(code)) { + if (asciiAlpha$2(code)) { effects.consume(code); - buffer = fromCharCode_1(code); + buffer = fromCharCode(code); return tagName } @@ -35603,7 +36595,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { code === null || code === 47 || code === 62 || - markdownLineEndingOrSpace_1(code) + markdownLineEndingOrSpace$3(code) ) { if ( code !== 47 && @@ -35634,9 +36626,9 @@ function tokenizeHtmlFlow(effects, ok, nok) { : completeClosingTagAfter(code) } - if (code === 45 || asciiAlphanumeric_1(code)) { + if (code === 45 || asciiAlphanumeric$2(code)) { effects.consume(code); - buffer += fromCharCode_1(code); + buffer += fromCharCode(code); return tagName } @@ -35653,7 +36645,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { } function completeClosingTagAfter(code) { - if (markdownSpace_1(code)) { + if (markdownSpace$4(code)) { effects.consume(code); return completeClosingTagAfter } @@ -35667,12 +36659,12 @@ function tokenizeHtmlFlow(effects, ok, nok) { return completeEnd } - if (code === 58 || code === 95 || asciiAlpha_1(code)) { + if (code === 58 || code === 95 || asciiAlpha$2(code)) { effects.consume(code); return completeAttributeName } - if (markdownSpace_1(code)) { + if (markdownSpace$4(code)) { effects.consume(code); return completeAttributeNameBefore } @@ -35686,7 +36678,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { code === 46 || code === 58 || code === 95 || - asciiAlphanumeric_1(code) + asciiAlphanumeric$2(code) ) { effects.consume(code); return completeAttributeName @@ -35701,7 +36693,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { return completeAttributeValueBefore } - if (markdownSpace_1(code)) { + if (markdownSpace$4(code)) { effects.consume(code); return completeAttributeNameAfter } @@ -35726,7 +36718,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { return completeAttributeValueQuoted } - if (markdownSpace_1(code)) { + if (markdownSpace$4(code)) { effects.consume(code); return completeAttributeValueBefore } @@ -35741,7 +36733,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { return completeAttributeValueQuotedAfter } - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$4(code)) { return nok(code) } @@ -35758,7 +36750,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { code === 61 || code === 62 || code === 96 || - markdownLineEndingOrSpace_1(code) + markdownLineEndingOrSpace$3(code) ) { return completeAttributeNameAfter(code) } @@ -35768,7 +36760,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { } function completeAttributeValueQuotedAfter(code) { - if (code === 47 || code === 62 || markdownSpace_1(code)) { + if (code === 47 || code === 62 || markdownSpace$4(code)) { return completeAttributeNameBefore(code) } @@ -35785,12 +36777,12 @@ function tokenizeHtmlFlow(effects, ok, nok) { } function completeAfter(code) { - if (markdownSpace_1(code)) { + if (markdownSpace$4(code)) { effects.consume(code); return completeAfter } - return code === null || markdownLineEnding_1(code) + return code === null || markdownLineEnding$4(code) ? continuation(code) : nok(code) } @@ -35821,7 +36813,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { return continuationCharacterDataInside } - if (markdownLineEnding_1(code) && (kind === 6 || kind === 7)) { + if (markdownLineEnding$4(code) && (kind === 6 || kind === 7)) { return effects.check( nextBlankConstruct, continuationClose, @@ -35829,7 +36821,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { )(code) } - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$4(code)) { return continuationAtLineEnding(code) } @@ -35847,7 +36839,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { return done(code) } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$4(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); @@ -35883,9 +36875,9 @@ function tokenizeHtmlFlow(effects, ok, nok) { return continuationClose } - if (asciiAlpha_1(code) && buffer.length < 8) { + if (asciiAlpha$2(code) && buffer.length < 8) { effects.consume(code); - buffer += fromCharCode_1(code); + buffer += fromCharCode(code); return continuationRawEndTag } @@ -35911,7 +36903,7 @@ function tokenizeHtmlFlow(effects, ok, nok) { } function continuationClose(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$4(code)) { effects.exit('htmlFlowData'); return done(code) } @@ -35934,13 +36926,20 @@ function tokenizeNextBlank(effects, ok, nok) { effects.enter('lineEndingBlank'); effects.consume(code); effects.exit('lineEndingBlank'); - return effects.attempt(partialBlankLine_1, ok, nok) + return effects.attempt(partialBlankLine$1, ok, nok) } } -var htmlFlow_1 = htmlFlow; +var htmlFlow_1 = htmlFlow$1; + +var asciiAlpha$1 = asciiAlpha_1; +var asciiAlphanumeric$1 = asciiAlphanumeric_1; +var markdownLineEnding$3 = markdownLineEnding_1; +var markdownLineEndingOrSpace$2 = markdownLineEndingOrSpace_1; +var markdownSpace$3 = markdownSpace_1; +var factorySpace$5 = factorySpace$i; -var htmlText = { +var htmlText$1 = { name: 'htmlText', tokenize: tokenizeHtmlText }; @@ -35976,7 +36975,7 @@ function tokenizeHtmlText(effects, ok, nok) { return instruction } - if (asciiAlpha_1(code)) { + if (asciiAlpha$1(code)) { effects.consume(code); return tagOpen } @@ -35997,7 +36996,7 @@ function tokenizeHtmlText(effects, ok, nok) { return cdataOpen } - if (asciiAlpha_1(code)) { + if (asciiAlpha$1(code)) { effects.consume(code); return declaration } @@ -36045,7 +37044,7 @@ function tokenizeHtmlText(effects, ok, nok) { return commentClose } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$3(code)) { returnState = comment; return atLineEnding(code) } @@ -36082,7 +37081,7 @@ function tokenizeHtmlText(effects, ok, nok) { return cdataClose } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$3(code)) { returnState = cdata; return atLineEnding(code) } @@ -36118,7 +37117,7 @@ function tokenizeHtmlText(effects, ok, nok) { return end(code) } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$3(code)) { returnState = declaration; return atLineEnding(code) } @@ -36137,7 +37136,7 @@ function tokenizeHtmlText(effects, ok, nok) { return instructionClose } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$3(code)) { returnState = instruction; return atLineEnding(code) } @@ -36151,7 +37150,7 @@ function tokenizeHtmlText(effects, ok, nok) { } function tagCloseStart(code) { - if (asciiAlpha_1(code)) { + if (asciiAlpha$1(code)) { effects.consume(code); return tagClose } @@ -36160,7 +37159,7 @@ function tokenizeHtmlText(effects, ok, nok) { } function tagClose(code) { - if (code === 45 || asciiAlphanumeric_1(code)) { + if (code === 45 || asciiAlphanumeric$1(code)) { effects.consume(code); return tagClose } @@ -36169,12 +37168,12 @@ function tokenizeHtmlText(effects, ok, nok) { } function tagCloseBetween(code) { - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$3(code)) { returnState = tagCloseBetween; return atLineEnding(code) } - if (markdownSpace_1(code)) { + if (markdownSpace$3(code)) { effects.consume(code); return tagCloseBetween } @@ -36183,12 +37182,12 @@ function tokenizeHtmlText(effects, ok, nok) { } function tagOpen(code) { - if (code === 45 || asciiAlphanumeric_1(code)) { + if (code === 45 || asciiAlphanumeric$1(code)) { effects.consume(code); return tagOpen } - if (code === 47 || code === 62 || markdownLineEndingOrSpace_1(code)) { + if (code === 47 || code === 62 || markdownLineEndingOrSpace$2(code)) { return tagOpenBetween(code) } @@ -36201,17 +37200,17 @@ function tokenizeHtmlText(effects, ok, nok) { return end } - if (code === 58 || code === 95 || asciiAlpha_1(code)) { + if (code === 58 || code === 95 || asciiAlpha$1(code)) { effects.consume(code); return tagOpenAttributeName } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$3(code)) { returnState = tagOpenBetween; return atLineEnding(code) } - if (markdownSpace_1(code)) { + if (markdownSpace$3(code)) { effects.consume(code); return tagOpenBetween } @@ -36225,7 +37224,7 @@ function tokenizeHtmlText(effects, ok, nok) { code === 46 || code === 58 || code === 95 || - asciiAlphanumeric_1(code) + asciiAlphanumeric$1(code) ) { effects.consume(code); return tagOpenAttributeName @@ -36240,12 +37239,12 @@ function tokenizeHtmlText(effects, ok, nok) { return tagOpenAttributeValueBefore } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$3(code)) { returnState = tagOpenAttributeNameAfter; return atLineEnding(code) } - if (markdownSpace_1(code)) { + if (markdownSpace$3(code)) { effects.consume(code); return tagOpenAttributeNameAfter } @@ -36270,12 +37269,12 @@ function tokenizeHtmlText(effects, ok, nok) { return tagOpenAttributeValueQuoted } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$3(code)) { returnState = tagOpenAttributeValueBefore; return atLineEnding(code) } - if (markdownSpace_1(code)) { + if (markdownSpace$3(code)) { effects.consume(code); return tagOpenAttributeValueBefore } @@ -36295,7 +37294,7 @@ function tokenizeHtmlText(effects, ok, nok) { return nok(code) } - if (markdownLineEnding_1(code)) { + if (markdownLineEnding$3(code)) { returnState = tagOpenAttributeValueQuoted; return atLineEnding(code) } @@ -36305,7 +37304,7 @@ function tokenizeHtmlText(effects, ok, nok) { } function tagOpenAttributeValueQuotedAfter(code) { - if (code === 62 || code === 47 || markdownLineEndingOrSpace_1(code)) { + if (code === 62 || code === 47 || markdownLineEndingOrSpace$2(code)) { return tagOpenBetween(code) } @@ -36324,7 +37323,7 @@ function tokenizeHtmlText(effects, ok, nok) { return nok(code) } - if (code === 62 || markdownLineEndingOrSpace_1(code)) { + if (code === 62 || markdownLineEndingOrSpace$2(code)) { return tagOpenBetween(code) } @@ -36338,7 +37337,7 @@ function tokenizeHtmlText(effects, ok, nok) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); - return factorySpace( + return factorySpace$5( effects, afterPrefix, 'linePrefix', @@ -36365,9 +37364,20 @@ function tokenizeHtmlText(effects, ok, nok) { } } -var htmlText_1 = htmlText; +var htmlText_1 = htmlText$1; -var labelEnd = { +var markdownLineEndingOrSpace$1 = markdownLineEndingOrSpace_1; +var chunkedPush = chunkedPush_1; +var chunkedSplice = chunkedSplice_1; +var normalizeIdentifier$2 = normalizeIdentifier_1; +var resolveAll$1 = resolveAll_1; +var shallow$1 = shallow_1; +var factoryDestination = factoryDestination$2; +var factoryLabel = factoryLabel$2; +var factoryTitle = factoryTitle$2; +var factoryWhitespace = factoryWhitespace$2; + +var labelEnd$3 = { name: 'labelEnd', tokenize: tokenizeLabelEnd, resolveTo: resolveToLabelEnd, @@ -36453,48 +37463,48 @@ function resolveToLabelEnd(events, context) { group = { type: events[open][1].type === 'labelLink' ? 'link' : 'image', - start: shallow_1(events[open][1].start), - end: shallow_1(events[events.length - 1][1].end) + start: shallow$1(events[open][1].start), + end: shallow$1(events[events.length - 1][1].end) }; label = { type: 'label', - start: shallow_1(events[open][1].start), - end: shallow_1(events[close][1].end) + start: shallow$1(events[open][1].start), + end: shallow$1(events[close][1].end) }; text = { type: 'labelText', - start: shallow_1(events[open + offset + 2][1].end), - end: shallow_1(events[close - 2][1].start) + start: shallow$1(events[open + offset + 2][1].end), + end: shallow$1(events[close - 2][1].start) }; media = [ ['enter', group, context], ['enter', label, context] ]; // Opening marker. - media = chunkedPush_1(media, events.slice(open + 1, open + offset + 3)); // Text open. + media = chunkedPush(media, events.slice(open + 1, open + offset + 3)); // Text open. - media = chunkedPush_1(media, [['enter', text, context]]); // Between. + media = chunkedPush(media, [['enter', text, context]]); // Between. - media = chunkedPush_1( + media = chunkedPush( media, - resolveAll_1( + resolveAll$1( context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context ) ); // Text close, marker close, label close. - media = chunkedPush_1(media, [ + media = chunkedPush(media, [ ['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context] ]); // Reference, resource, or so. - media = chunkedPush_1(media, events.slice(close + 1)); // Media close. + media = chunkedPush(media, events.slice(close + 1)); // Media close. - media = chunkedPush_1(media, [['exit', group, context]]); - chunkedSplice_1(events, open, events.length, media); + media = chunkedPush(media, [['exit', group, context]]); + chunkedSplice(events, open, events.length, media); return events } @@ -36525,7 +37535,7 @@ function tokenizeLabelEnd(effects, ok, nok) { if (labelStart._inactive) return balanced(code) defined = self.parser.defined.indexOf( - normalizeIdentifier_1( + normalizeIdentifier$2( self.sliceSerialize({ start: labelStart.end, end: self.now() @@ -36599,7 +37609,7 @@ function tokenizeResource(effects, ok, nok) { } function destinationAfter(code) { - return markdownLineEndingOrSpace_1(code) + return markdownLineEndingOrSpace$1(code) ? factoryWhitespace(effects, between)(code) : end(code) } @@ -36650,7 +37660,7 @@ function tokenizeFullReference(effects, ok, nok) { function afterLabel(code) { return self.parser.defined.indexOf( - normalizeIdentifier_1( + normalizeIdentifier$2( self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) ) ) < 0 @@ -36683,12 +37693,14 @@ function tokenizeCollapsedReference(effects, ok, nok) { } } -var labelEnd_1 = labelEnd; +var labelEnd_1 = labelEnd$3; + +var labelEnd$2 = labelEnd_1; -var labelStartImage = { +var labelStartImage$1 = { name: 'labelStartImage', tokenize: tokenizeLabelStartImage, - resolveAll: labelEnd_1.resolveAll + resolveAll: labelEnd$2.resolveAll }; function tokenizeLabelStartImage(effects, ok, nok) { @@ -36726,12 +37738,14 @@ function tokenizeLabelStartImage(effects, ok, nok) { } } -var labelStartImage_1 = labelStartImage; +var labelStartImage_1 = labelStartImage$1; -var labelStartLink = { +var labelEnd$1 = labelEnd_1; + +var labelStartLink$1 = { name: 'labelStartLink', tokenize: tokenizeLabelStartLink, - resolveAll: labelEnd_1.resolveAll + resolveAll: labelEnd$1.resolveAll }; function tokenizeLabelStartLink(effects, ok, nok) { @@ -36758,9 +37772,11 @@ function tokenizeLabelStartLink(effects, ok, nok) { } } -var labelStartLink_1 = labelStartLink; +var labelStartLink_1 = labelStartLink$1; + +var factorySpace$4 = factorySpace$i; -var lineEnding = { +var lineEnding$1 = { name: 'lineEnding', tokenize: tokenizeLineEnding }; @@ -36772,13 +37788,17 @@ function tokenizeLineEnding(effects, ok) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); - return factorySpace(effects, ok, 'linePrefix') + return factorySpace$4(effects, ok, 'linePrefix') } } -var lineEnding_1 = lineEnding; +var lineEnding_1 = lineEnding$1; -var thematicBreak = { +var markdownLineEnding$2 = markdownLineEnding_1; +var markdownSpace$2 = markdownSpace_1; +var factorySpace$3 = factorySpace$i; + +var thematicBreak$3 = { name: 'thematicBreak', tokenize: tokenizeThematicBreak }; @@ -36800,11 +37820,11 @@ function tokenizeThematicBreak(effects, ok, nok) { return sequence(code) } - if (markdownSpace_1(code)) { - return factorySpace(effects, atBreak, 'whitespace')(code) + if (markdownSpace$2(code)) { + return factorySpace$3(effects, atBreak, 'whitespace')(code) } - if (size < 3 || (code !== null && !markdownLineEnding_1(code))) { + if (size < 3 || (code !== null && !markdownLineEnding$2(code))) { return nok(code) } @@ -36824,9 +37844,17 @@ function tokenizeThematicBreak(effects, ok, nok) { } } -var thematicBreak_1 = thematicBreak; +var thematicBreak_1$1 = thematicBreak$3; + +var asciiDigit$1 = asciiDigit_1; +var markdownSpace$1 = markdownSpace_1; +var prefixSize = prefixSize_1; +var sizeChunks = sizeChunks_1; +var factorySpace$2 = factorySpace$i; +var partialBlankLine = partialBlankLine_1; +var thematicBreak$2 = thematicBreak_1$1; -var list = { +var list$2 = { name: 'list', tokenize: tokenizeListStart, continuation: { @@ -36845,7 +37873,7 @@ var indentConstruct = { function tokenizeListStart(effects, ok, nok) { var self = this; - var initialSize = prefixSize_1(self.events, 'linePrefix'); + var initialSize = prefixSize(self.events, 'linePrefix'); var size = 0; return start @@ -36859,7 +37887,7 @@ function tokenizeListStart(effects, ok, nok) { if ( kind === 'listUnordered' ? !self.containerState.marker || code === self.containerState.marker - : asciiDigit_1(code) + : asciiDigit$1(code) ) { if (!self.containerState.type) { self.containerState.type = kind; @@ -36871,7 +37899,7 @@ function tokenizeListStart(effects, ok, nok) { if (kind === 'listUnordered') { effects.enter('listItemPrefix'); return code === 42 || code === 45 - ? effects.check(thematicBreak_1, nok, atMarker)(code) + ? effects.check(thematicBreak$2, nok, atMarker)(code) : atMarker(code) } @@ -36886,7 +37914,7 @@ function tokenizeListStart(effects, ok, nok) { } function inside(code) { - if (asciiDigit_1(code) && ++size < 10) { + if (asciiDigit$1(code) && ++size < 10) { effects.consume(code); return inside } @@ -36910,7 +37938,7 @@ function tokenizeListStart(effects, ok, nok) { effects.exit('listItemMarker'); self.containerState.marker = self.containerState.marker || code; return effects.check( - partialBlankLine_1, // Can’t be empty when interrupting. + partialBlankLine, // Can’t be empty when interrupting. self.interrupt ? nok : onBlank, effects.attempt( listItemPrefixWhitespaceConstruct, @@ -36927,7 +37955,7 @@ function tokenizeListStart(effects, ok, nok) { } function otherPrefix(code) { - if (markdownSpace_1(code)) { + if (markdownSpace$1(code)) { effects.enter('listItemPrefixWhitespace'); effects.consume(code); effects.exit('listItemPrefixWhitespace'); @@ -36939,7 +37967,7 @@ function tokenizeListStart(effects, ok, nok) { function endOfPrefix(code) { self.containerState.size = - initialSize + sizeChunks_1(self.sliceStream(effects.exit('listItemPrefix'))); + initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix'))); return ok(code) } } @@ -36947,17 +37975,24 @@ function tokenizeListStart(effects, ok, nok) { function tokenizeListContinuation(effects, ok, nok) { var self = this; self.containerState._closeFlow = undefined; - return effects.check(partialBlankLine_1, onBlank, notBlank) + return effects.check(partialBlankLine, onBlank, notBlank) function onBlank(code) { self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || - self.containerState.initialBlankLine; - return ok(code) + self.containerState.initialBlankLine; // We have a blank line. + // Still, try to consume at most the items size. + + return factorySpace$2( + effects, + ok, + 'listItemIndent', + self.containerState.size + 1 + )(code) } function notBlank(code) { - if (self.containerState.furtherBlankLines || !markdownSpace_1(code)) { + if (self.containerState.furtherBlankLines || !markdownSpace$1(code)) { self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined; return notInCurrentItem(code) } @@ -36971,9 +38006,9 @@ function tokenizeListContinuation(effects, ok, nok) { self.containerState._closeFlow = true; // As we’re closing flow, we’re no longer interrupting. self.interrupt = undefined; - return factorySpace( + return factorySpace$2( effects, - effects.attempt(list, ok, nok), + effects.attempt(list$2, ok, nok), 'linePrefix', self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ? undefined @@ -36984,7 +38019,7 @@ function tokenizeListContinuation(effects, ok, nok) { function tokenizeIndent(effects, ok, nok) { var self = this; - return factorySpace( + return factorySpace$2( effects, afterPrefix, 'listItemIndent', @@ -36992,7 +38027,7 @@ function tokenizeIndent(effects, ok, nok) { ) function afterPrefix(code) { - return prefixSize_1(self.events, 'listItemIndent') === + return prefixSize(self.events, 'listItemIndent') === self.containerState.size ? ok(code) : nok(code) @@ -37005,7 +38040,7 @@ function tokenizeListEnd(effects) { function tokenizeListItemPrefixWhitespace(effects, ok, nok) { var self = this; - return factorySpace( + return factorySpace$2( effects, afterPrefix, 'listItemPrefixWhitespace', @@ -37015,16 +38050,20 @@ function tokenizeListItemPrefixWhitespace(effects, ok, nok) { ) function afterPrefix(code) { - return markdownSpace_1(code) || - !prefixSize_1(self.events, 'listItemPrefixWhitespace') + return markdownSpace$1(code) || + !prefixSize(self.events, 'listItemPrefixWhitespace') ? nok(code) : ok(code) } } -var list_1 = list; +var list_1$1 = list$2; + +var markdownLineEnding$1 = markdownLineEnding_1; +var shallow = shallow_1; +var factorySpace$1 = factorySpace$i; -var setextUnderline = { +var setextUnderline$1 = { name: 'setextUnderline', tokenize: tokenizeSetextUnderline, resolveTo: resolveToSetextUnderline @@ -37063,8 +38102,8 @@ function resolveToSetextUnderline(events, context) { heading = { type: 'setextHeading', - start: shallow_1(events[text][1].start), - end: shallow_1(events[events.length - 1][1].end) + start: shallow(events[text][1].start), + end: shallow(events[events.length - 1][1].end) }; // Change the paragraph to setext heading text. events[text][1].type = 'setextHeadingText'; // If we have definitions in the content, we’ll keep on having content, @@ -37073,7 +38112,7 @@ function resolveToSetextUnderline(events, context) { if (definition) { events.splice(text, 0, ['enter', heading, context]); events.splice(definition + 1, 0, ['exit', events[content][1], context]); - events[content][1].end = shallow_1(events[definition][1].end); + events[content][1].end = shallow(events[definition][1].end); } else { events[content][1] = heading; } // Add the heading exit at the end. @@ -37121,11 +38160,11 @@ function tokenizeSetextUnderline(effects, ok, nok) { } effects.exit('setextHeadingLineSequence'); - return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code) + return factorySpace$1(effects, closingSequenceEnd, 'lineSuffix')(code) } function closingSequenceEnd(code) { - if (code === null || markdownLineEnding_1(code)) { + if (code === null || markdownLineEnding$1(code)) { effects.exit('setextHeadingLine'); return ok(code) } @@ -37134,133 +38173,155 @@ function tokenizeSetextUnderline(effects, ok, nok) { } } -var setextUnderline_1 = setextUnderline; +var setextUnderline_1 = setextUnderline$1; + +Object.defineProperty(constructs$2, '__esModule', {value: true}); + +var text$1$1 = text$5; +var attention = attention_1; +var autolink = autolink_1; +var blockQuote = blockQuote_1; +var characterEscape$1 = characterEscape_1; +var characterReference$1 = characterReference_1; +var codeFenced = codeFenced_1; +var codeIndented = codeIndented_1; +var codeText = codeText_1; +var definition$1 = definition_1$1; +var hardBreakEscape = hardBreakEscape_1; +var headingAtx = headingAtx_1; +var htmlFlow = htmlFlow_1; +var htmlText = htmlText_1; +var labelEnd = labelEnd_1; +var labelStartImage = labelStartImage_1; +var labelStartLink = labelStartLink_1; +var lineEnding = lineEnding_1; +var list$1 = list_1$1; +var setextUnderline = setextUnderline_1; +var thematicBreak$1 = thematicBreak_1$1; var document$2 = { - 42: list_1, + 42: list$1, // Asterisk - 43: list_1, + 43: list$1, // Plus sign - 45: list_1, + 45: list$1, // Dash - 48: list_1, + 48: list$1, // 0 - 49: list_1, + 49: list$1, // 1 - 50: list_1, + 50: list$1, // 2 - 51: list_1, + 51: list$1, // 3 - 52: list_1, + 52: list$1, // 4 - 53: list_1, + 53: list$1, // 5 - 54: list_1, + 54: list$1, // 6 - 55: list_1, + 55: list$1, // 7 - 56: list_1, + 56: list$1, // 8 - 57: list_1, + 57: list$1, // 9 - 62: blockQuote_1 // Greater than + 62: blockQuote // Greater than }; var contentInitial = { - 91: definition_1 // Left square bracket + 91: definition$1 // Left square bracket }; var flowInitial = { - '-2': codeIndented_1, + '-2': codeIndented, // Horizontal tab - '-1': codeIndented_1, + '-1': codeIndented, // Virtual space - 32: codeIndented_1 // Space + 32: codeIndented // Space }; -var flow$1 = { - 35: headingAtx_1, +var flow$6 = { + 35: headingAtx, // Number sign - 42: thematicBreak_1, + 42: thematicBreak$1, // Asterisk - 45: [setextUnderline_1, thematicBreak_1], + 45: [setextUnderline, thematicBreak$1], // Dash - 60: htmlFlow_1, + 60: htmlFlow, // Less than - 61: setextUnderline_1, + 61: setextUnderline, // Equals to - 95: thematicBreak_1, + 95: thematicBreak$1, // Underscore - 96: codeFenced_1, + 96: codeFenced, // Grave accent - 126: codeFenced_1 // Tilde + 126: codeFenced // Tilde }; -var string$1 = { - 38: characterReference_1, +var string = { + 38: characterReference$1, // Ampersand - 92: characterEscape_1 // Backslash + 92: characterEscape$1 // Backslash }; -var text$1 = { - '-5': lineEnding_1, +var text$3 = { + '-5': lineEnding, // Carriage return - '-4': lineEnding_1, + '-4': lineEnding, // Line feed - '-3': lineEnding_1, + '-3': lineEnding, // Carriage return + line feed - 33: labelStartImage_1, + 33: labelStartImage, // Exclamation mark - 38: characterReference_1, + 38: characterReference$1, // Ampersand - 42: attention_1, + 42: attention, // Asterisk - 60: [autolink_1, htmlText_1], + 60: [autolink, htmlText], // Less than - 91: labelStartLink_1, + 91: labelStartLink, // Left square bracket - 92: [hardBreakEscape_1, characterEscape_1], + 92: [hardBreakEscape, characterEscape$1], // Backslash - 93: labelEnd_1, + 93: labelEnd, // Right square bracket - 95: attention_1, + 95: attention, // Underscore - 96: codeText_1 // Grave accent + 96: codeText // Grave accent }; var insideSpan = { - null: [attention_1, text_1.resolver] + null: [attention, text$1$1.resolver] }; var disable = { null: [] }; -var contentInitial_1 = contentInitial; -var disable_1 = disable; -var document_1 = document$2; -var flow_1 = flow$1; -var flowInitial_1 = flowInitial; -var insideSpan_1 = insideSpan; -var string_1$1 = string$1; -var text_1$1 = text$1; - -var constructs$1 = /*#__PURE__*/Object.defineProperty({ - contentInitial: contentInitial_1, - disable: disable_1, - document: document_1, - flow: flow_1, - flowInitial: flowInitial_1, - insideSpan: insideSpan_1, - string: string_1$1, - text: text_1$1 -}, '__esModule', {value: true}); - -function parse$7(options) { +constructs$2.contentInitial = contentInitial; +constructs$2.disable = disable; +constructs$2.document = document$2; +constructs$2.flow = flow$6; +constructs$2.flowInitial = flowInitial; +constructs$2.insideSpan = insideSpan; +constructs$2.string = string; +constructs$2.text = text$3; + +var content = content$3; +var document$1 = document$3; +var flow$5 = flow$7; +var text$2 = text$5; +var combineExtensions$1 = combineExtensions_1; +var createTokenizer = createTokenizer_1; +var miniflat = miniflat_1; +var constructs$1 = constructs$2; + +function parse$3(options) { var settings = options || {}; var parser = { defined: [], - constructs: combineExtensions_1( - [constructs$1].concat(miniflat_1(settings.extensions)) + constructs: combineExtensions$1( + [constructs$1].concat(miniflat(settings.extensions)) ), content: create(content), document: create(document$1), - flow: create(flow), - string: create(text_1.string), - text: create(text_1.text) + flow: create(flow$5), + string: create(text$2.string), + text: create(text$2.text) }; return parser @@ -37268,14 +38329,14 @@ function parse$7(options) { return creator function creator(from) { - return createTokenizer_1(parser, initializer, from) + return createTokenizer(parser, initializer, from) } } } -var parse_1$3 = parse$7; +var parse_1$1 = parse$3; -var search$1 = /[\0\t\n\r]/g; +var search = /[\0\t\n\r]/g; function preprocess() { var start = true; @@ -37304,8 +38365,8 @@ function preprocess() { } while (startPosition < value.length) { - search$1.lastIndex = startPosition; - match = search$1.exec(value); + search.lastIndex = startPosition; + match = search.exec(value); endPosition = match ? match.index : value.length; code = value.charCodeAt(endPosition); @@ -37361,40 +38422,4548 @@ function preprocess() { var preprocess_1 = preprocess; -function postprocess(events) { - while (!subtokenize_1(events)) { +var subtokenize = subtokenize_1; + +function postprocess$1(events) { + while (!subtokenize(events)) { // Empty } return events } -var postprocess_1 = postprocess; +var postprocess_1 = postprocess$1; + +const AEli$1 = "Æ"; +const AElig$1 = "Æ"; +const AM$1 = "&"; +const AMP$1 = "&"; +const Aacut$1 = "Á"; +const Aacute$1 = "Á"; +const Abreve$1 = "Ă"; +const Acir$1 = "Â"; +const Acirc$1 = "Â"; +const Acy$1 = "А"; +const Afr$1 = "𝔄"; +const Agrav$1 = "À"; +const Agrave$1 = "À"; +const Alpha$1 = "Α"; +const Amacr$1 = "Ā"; +const And$1 = "⩓"; +const Aogon$1 = "Ą"; +const Aopf$1 = "𝔸"; +const ApplyFunction$1 = "⁡"; +const Arin$1 = "Å"; +const Aring$1 = "Å"; +const Ascr$1 = "𝒜"; +const Assign$1 = "≔"; +const Atild$1 = "Ã"; +const Atilde$1 = "Ã"; +const Aum$1 = "Ä"; +const Auml$1 = "Ä"; +const Backslash$1 = "∖"; +const Barv$1 = "⫧"; +const Barwed$1 = "⌆"; +const Bcy$1 = "Б"; +const Because$1 = "∵"; +const Bernoullis$1 = "ℬ"; +const Beta$1 = "Β"; +const Bfr$1 = "𝔅"; +const Bopf$1 = "𝔹"; +const Breve$1 = "˘"; +const Bscr$1 = "ℬ"; +const Bumpeq$1 = "≎"; +const CHcy$1 = "Ч"; +const COP$1 = "©"; +const COPY$1 = "©"; +const Cacute$1 = "Ć"; +const Cap$1 = "⋒"; +const CapitalDifferentialD$1 = "ⅅ"; +const Cayleys$1 = "ℭ"; +const Ccaron$1 = "Č"; +const Ccedi$1 = "Ç"; +const Ccedil$1 = "Ç"; +const Ccirc$1 = "Ĉ"; +const Cconint$1 = "∰"; +const Cdot$1 = "Ċ"; +const Cedilla$1 = "¸"; +const CenterDot$1 = "·"; +const Cfr$1 = "ℭ"; +const Chi$1 = "Χ"; +const CircleDot$1 = "⊙"; +const CircleMinus$1 = "⊖"; +const CirclePlus$1 = "⊕"; +const CircleTimes$1 = "⊗"; +const ClockwiseContourIntegral$1 = "∲"; +const CloseCurlyDoubleQuote$1 = "”"; +const CloseCurlyQuote$1 = "’"; +const Colon$1 = "∷"; +const Colone$1 = "⩴"; +const Congruent$1 = "≡"; +const Conint$1 = "∯"; +const ContourIntegral$1 = "∮"; +const Copf$1 = "ℂ"; +const Coproduct$1 = "∐"; +const CounterClockwiseContourIntegral$1 = "∳"; +const Cross$1 = "⨯"; +const Cscr$1 = "𝒞"; +const Cup$1 = "⋓"; +const CupCap$1 = "≍"; +const DD$1 = "ⅅ"; +const DDotrahd$1 = "⤑"; +const DJcy$1 = "Ђ"; +const DScy$1 = "Ѕ"; +const DZcy$1 = "Џ"; +const Dagger$1 = "‡"; +const Darr$1 = "↡"; +const Dashv$1 = "⫤"; +const Dcaron$1 = "Ď"; +const Dcy$1 = "Д"; +const Del$1 = "∇"; +const Delta$1 = "Δ"; +const Dfr$1 = "𝔇"; +const DiacriticalAcute$1 = "´"; +const DiacriticalDot$1 = "˙"; +const DiacriticalDoubleAcute$1 = "˝"; +const DiacriticalGrave$1 = "`"; +const DiacriticalTilde$1 = "˜"; +const Diamond$1 = "⋄"; +const DifferentialD$1 = "ⅆ"; +const Dopf$1 = "𝔻"; +const Dot$1 = "¨"; +const DotDot$1 = "⃜"; +const DotEqual$1 = "≐"; +const DoubleContourIntegral$1 = "∯"; +const DoubleDot$1 = "¨"; +const DoubleDownArrow$1 = "⇓"; +const DoubleLeftArrow$1 = "⇐"; +const DoubleLeftRightArrow$1 = "⇔"; +const DoubleLeftTee$1 = "⫤"; +const DoubleLongLeftArrow$1 = "⟸"; +const DoubleLongLeftRightArrow$1 = "⟺"; +const DoubleLongRightArrow$1 = "⟹"; +const DoubleRightArrow$1 = "⇒"; +const DoubleRightTee$1 = "⊨"; +const DoubleUpArrow$1 = "⇑"; +const DoubleUpDownArrow$1 = "⇕"; +const DoubleVerticalBar$1 = "∥"; +const DownArrow$1 = "↓"; +const DownArrowBar$1 = "⤓"; +const DownArrowUpArrow$1 = "⇵"; +const DownBreve$1 = "̑"; +const DownLeftRightVector$1 = "⥐"; +const DownLeftTeeVector$1 = "⥞"; +const DownLeftVector$1 = "↽"; +const DownLeftVectorBar$1 = "⥖"; +const DownRightTeeVector$1 = "⥟"; +const DownRightVector$1 = "⇁"; +const DownRightVectorBar$1 = "⥗"; +const DownTee$1 = "⊤"; +const DownTeeArrow$1 = "↧"; +const Downarrow$1 = "⇓"; +const Dscr$1 = "𝒟"; +const Dstrok$1 = "Đ"; +const ENG$1 = "Ŋ"; +const ET$1 = "Ð"; +const ETH$1 = "Ð"; +const Eacut$1 = "É"; +const Eacute$1 = "É"; +const Ecaron$1 = "Ě"; +const Ecir$1 = "Ê"; +const Ecirc$1 = "Ê"; +const Ecy$1 = "Э"; +const Edot$1 = "Ė"; +const Efr$1 = "𝔈"; +const Egrav$1 = "È"; +const Egrave$1 = "È"; +const Element$1 = "∈"; +const Emacr$1 = "Ē"; +const EmptySmallSquare$1 = "◻"; +const EmptyVerySmallSquare$1 = "▫"; +const Eogon$1 = "Ę"; +const Eopf$1 = "𝔼"; +const Epsilon$1 = "Ε"; +const Equal$1 = "⩵"; +const EqualTilde$1 = "≂"; +const Equilibrium$1 = "⇌"; +const Escr$1 = "ℰ"; +const Esim$1 = "⩳"; +const Eta$1 = "Η"; +const Eum$1 = "Ë"; +const Euml$1 = "Ë"; +const Exists$1 = "∃"; +const ExponentialE$1 = "ⅇ"; +const Fcy$1 = "Ф"; +const Ffr$1 = "𝔉"; +const FilledSmallSquare$1 = "◼"; +const FilledVerySmallSquare$1 = "▪"; +const Fopf$1 = "𝔽"; +const ForAll$1 = "∀"; +const Fouriertrf$1 = "ℱ"; +const Fscr$1 = "ℱ"; +const GJcy$1 = "Ѓ"; +const G$1 = ">"; +const GT$1 = ">"; +const Gamma$1 = "Γ"; +const Gammad$1 = "Ϝ"; +const Gbreve$1 = "Ğ"; +const Gcedil$1 = "Ģ"; +const Gcirc$1 = "Ĝ"; +const Gcy$1 = "Г"; +const Gdot$1 = "Ġ"; +const Gfr$1 = "𝔊"; +const Gg$1 = "⋙"; +const Gopf$1 = "𝔾"; +const GreaterEqual$1 = "≥"; +const GreaterEqualLess$1 = "⋛"; +const GreaterFullEqual$1 = "≧"; +const GreaterGreater$1 = "⪢"; +const GreaterLess$1 = "≷"; +const GreaterSlantEqual$1 = "⩾"; +const GreaterTilde$1 = "≳"; +const Gscr$1 = "𝒢"; +const Gt$1 = "≫"; +const HARDcy$1 = "Ъ"; +const Hacek$1 = "ˇ"; +const Hat$1 = "^"; +const Hcirc$1 = "Ĥ"; +const Hfr$1 = "ℌ"; +const HilbertSpace$1 = "ℋ"; +const Hopf$1 = "ℍ"; +const HorizontalLine$1 = "─"; +const Hscr$1 = "ℋ"; +const Hstrok$1 = "Ħ"; +const HumpDownHump$1 = "≎"; +const HumpEqual$1 = "≏"; +const IEcy$1 = "Е"; +const IJlig$1 = "IJ"; +const IOcy$1 = "Ё"; +const Iacut$1 = "Í"; +const Iacute$1 = "Í"; +const Icir$1 = "Î"; +const Icirc$1 = "Î"; +const Icy$1 = "И"; +const Idot$1 = "İ"; +const Ifr$1 = "ℑ"; +const Igrav$1 = "Ì"; +const Igrave$1 = "Ì"; +const Im$1 = "ℑ"; +const Imacr$1 = "Ī"; +const ImaginaryI$1 = "ⅈ"; +const Implies$1 = "⇒"; +const Int$1 = "∬"; +const Integral$1 = "∫"; +const Intersection$1 = "⋂"; +const InvisibleComma$1 = "⁣"; +const InvisibleTimes$1 = "⁢"; +const Iogon$1 = "Į"; +const Iopf$1 = "𝕀"; +const Iota$1 = "Ι"; +const Iscr$1 = "ℐ"; +const Itilde$1 = "Ĩ"; +const Iukcy$1 = "І"; +const Ium$1 = "Ï"; +const Iuml$1 = "Ï"; +const Jcirc$1 = "Ĵ"; +const Jcy$1 = "Й"; +const Jfr$1 = "𝔍"; +const Jopf$1 = "𝕁"; +const Jscr$1 = "𝒥"; +const Jsercy$1 = "Ј"; +const Jukcy$1 = "Є"; +const KHcy$1 = "Х"; +const KJcy$1 = "Ќ"; +const Kappa$1 = "Κ"; +const Kcedil$1 = "Ķ"; +const Kcy$1 = "К"; +const Kfr$1 = "𝔎"; +const Kopf$1 = "𝕂"; +const Kscr$1 = "𝒦"; +const LJcy$1 = "Љ"; +const L$1 = "<"; +const LT$1 = "<"; +const Lacute$1 = "Ĺ"; +const Lambda$1 = "Λ"; +const Lang$1 = "⟪"; +const Laplacetrf$1 = "ℒ"; +const Larr$1 = "↞"; +const Lcaron$1 = "Ľ"; +const Lcedil$1 = "Ļ"; +const Lcy$1 = "Л"; +const LeftAngleBracket$1 = "⟨"; +const LeftArrow$1 = "←"; +const LeftArrowBar$1 = "⇤"; +const LeftArrowRightArrow$1 = "⇆"; +const LeftCeiling$1 = "⌈"; +const LeftDoubleBracket$1 = "⟦"; +const LeftDownTeeVector$1 = "⥡"; +const LeftDownVector$1 = "⇃"; +const LeftDownVectorBar$1 = "⥙"; +const LeftFloor$1 = "⌊"; +const LeftRightArrow$1 = "↔"; +const LeftRightVector$1 = "⥎"; +const LeftTee$1 = "⊣"; +const LeftTeeArrow$1 = "↤"; +const LeftTeeVector$1 = "⥚"; +const LeftTriangle$1 = "⊲"; +const LeftTriangleBar$1 = "⧏"; +const LeftTriangleEqual$1 = "⊴"; +const LeftUpDownVector$1 = "⥑"; +const LeftUpTeeVector$1 = "⥠"; +const LeftUpVector$1 = "↿"; +const LeftUpVectorBar$1 = "⥘"; +const LeftVector$1 = "↼"; +const LeftVectorBar$1 = "⥒"; +const Leftarrow$1 = "⇐"; +const Leftrightarrow$1 = "⇔"; +const LessEqualGreater$1 = "⋚"; +const LessFullEqual$1 = "≦"; +const LessGreater$1 = "≶"; +const LessLess$1 = "⪡"; +const LessSlantEqual$1 = "⩽"; +const LessTilde$1 = "≲"; +const Lfr$1 = "𝔏"; +const Ll$1 = "⋘"; +const Lleftarrow$1 = "⇚"; +const Lmidot$1 = "Ŀ"; +const LongLeftArrow$1 = "⟵"; +const LongLeftRightArrow$1 = "⟷"; +const LongRightArrow$1 = "⟶"; +const Longleftarrow$1 = "⟸"; +const Longleftrightarrow$1 = "⟺"; +const Longrightarrow$1 = "⟹"; +const Lopf$1 = "𝕃"; +const LowerLeftArrow$1 = "↙"; +const LowerRightArrow$1 = "↘"; +const Lscr$1 = "ℒ"; +const Lsh$1 = "↰"; +const Lstrok$1 = "Ł"; +const Lt$1 = "≪"; +const Mcy$1 = "М"; +const MediumSpace$1 = " "; +const Mellintrf$1 = "ℳ"; +const Mfr$1 = "𝔐"; +const MinusPlus$1 = "∓"; +const Mopf$1 = "𝕄"; +const Mscr$1 = "ℳ"; +const Mu$1 = "Μ"; +const NJcy$1 = "Њ"; +const Nacute$1 = "Ń"; +const Ncaron$1 = "Ň"; +const Ncedil$1 = "Ņ"; +const Ncy$1 = "Н"; +const NegativeMediumSpace$1 = "​"; +const NegativeThickSpace$1 = "​"; +const NegativeThinSpace$1 = "​"; +const NegativeVeryThinSpace$1 = "​"; +const NestedGreaterGreater$1 = "≫"; +const NestedLessLess$1 = "≪"; +const NewLine$1 = "\n"; +const Nfr$1 = "𝔑"; +const NoBreak$1 = "⁠"; +const NonBreakingSpace$1 = " "; +const Nopf$1 = "ℕ"; +const Not$1 = "⫬"; +const NotCongruent$1 = "≢"; +const NotCupCap$1 = "≭"; +const NotDoubleVerticalBar$1 = "∦"; +const NotElement$1 = "∉"; +const NotEqual$1 = "≠"; +const NotEqualTilde$1 = "≂̸"; +const NotExists$1 = "∄"; +const NotGreater$1 = "≯"; +const NotGreaterEqual$1 = "≱"; +const NotGreaterFullEqual$1 = "≧̸"; +const NotGreaterGreater$1 = "≫̸"; +const NotGreaterLess$1 = "≹"; +const NotGreaterSlantEqual$1 = "⩾̸"; +const NotGreaterTilde$1 = "≵"; +const NotHumpDownHump$1 = "≎̸"; +const NotHumpEqual$1 = "≏̸"; +const NotLeftTriangle$1 = "⋪"; +const NotLeftTriangleBar$1 = "⧏̸"; +const NotLeftTriangleEqual$1 = "⋬"; +const NotLess$1 = "≮"; +const NotLessEqual$1 = "≰"; +const NotLessGreater$1 = "≸"; +const NotLessLess$1 = "≪̸"; +const NotLessSlantEqual$1 = "⩽̸"; +const NotLessTilde$1 = "≴"; +const NotNestedGreaterGreater$1 = "⪢̸"; +const NotNestedLessLess$1 = "⪡̸"; +const NotPrecedes$1 = "⊀"; +const NotPrecedesEqual$1 = "⪯̸"; +const NotPrecedesSlantEqual$1 = "⋠"; +const NotReverseElement$1 = "∌"; +const NotRightTriangle$1 = "⋫"; +const NotRightTriangleBar$1 = "⧐̸"; +const NotRightTriangleEqual$1 = "⋭"; +const NotSquareSubset$1 = "⊏̸"; +const NotSquareSubsetEqual$1 = "⋢"; +const NotSquareSuperset$1 = "⊐̸"; +const NotSquareSupersetEqual$1 = "⋣"; +const NotSubset$1 = "⊂⃒"; +const NotSubsetEqual$1 = "⊈"; +const NotSucceeds$1 = "⊁"; +const NotSucceedsEqual$1 = "⪰̸"; +const NotSucceedsSlantEqual$1 = "⋡"; +const NotSucceedsTilde$1 = "≿̸"; +const NotSuperset$1 = "⊃⃒"; +const NotSupersetEqual$1 = "⊉"; +const NotTilde$1 = "≁"; +const NotTildeEqual$1 = "≄"; +const NotTildeFullEqual$1 = "≇"; +const NotTildeTilde$1 = "≉"; +const NotVerticalBar$1 = "∤"; +const Nscr$1 = "𝒩"; +const Ntild$1 = "Ñ"; +const Ntilde$1 = "Ñ"; +const Nu$1 = "Ν"; +const OElig$1 = "Œ"; +const Oacut$1 = "Ó"; +const Oacute$1 = "Ó"; +const Ocir$1 = "Ô"; +const Ocirc$1 = "Ô"; +const Ocy$1 = "О"; +const Odblac$1 = "Ő"; +const Ofr$1 = "𝔒"; +const Ograv$1 = "Ò"; +const Ograve$1 = "Ò"; +const Omacr$1 = "Ō"; +const Omega$1 = "Ω"; +const Omicron$1 = "Ο"; +const Oopf$1 = "𝕆"; +const OpenCurlyDoubleQuote$1 = "“"; +const OpenCurlyQuote$1 = "‘"; +const Or$1 = "⩔"; +const Oscr$1 = "𝒪"; +const Oslas$1 = "Ø"; +const Oslash$1 = "Ø"; +const Otild$1 = "Õ"; +const Otilde$1 = "Õ"; +const Otimes$1 = "⨷"; +const Oum$1 = "Ö"; +const Ouml$1 = "Ö"; +const OverBar$1 = "‾"; +const OverBrace$1 = "⏞"; +const OverBracket$1 = "⎴"; +const OverParenthesis$1 = "⏜"; +const PartialD$1 = "∂"; +const Pcy$1 = "П"; +const Pfr$1 = "𝔓"; +const Phi$1 = "Φ"; +const Pi$1 = "Π"; +const PlusMinus$1 = "±"; +const Poincareplane$1 = "ℌ"; +const Popf$1 = "ℙ"; +const Pr$1 = "⪻"; +const Precedes$1 = "≺"; +const PrecedesEqual$1 = "⪯"; +const PrecedesSlantEqual$1 = "≼"; +const PrecedesTilde$1 = "≾"; +const Prime$1 = "″"; +const Product$1 = "∏"; +const Proportion$1 = "∷"; +const Proportional$1 = "∝"; +const Pscr$1 = "𝒫"; +const Psi$1 = "Ψ"; +const QUO$1 = "\""; +const QUOT$1 = "\""; +const Qfr$1 = "𝔔"; +const Qopf$1 = "ℚ"; +const Qscr$1 = "𝒬"; +const RBarr$1 = "⤐"; +const RE$1 = "®"; +const REG$1 = "®"; +const Racute$1 = "Ŕ"; +const Rang$1 = "⟫"; +const Rarr$1 = "↠"; +const Rarrtl$1 = "⤖"; +const Rcaron$1 = "Ř"; +const Rcedil$1 = "Ŗ"; +const Rcy$1 = "Р"; +const Re$1 = "ℜ"; +const ReverseElement$1 = "∋"; +const ReverseEquilibrium$1 = "⇋"; +const ReverseUpEquilibrium$1 = "⥯"; +const Rfr$1 = "ℜ"; +const Rho$1 = "Ρ"; +const RightAngleBracket$1 = "⟩"; +const RightArrow$1 = "→"; +const RightArrowBar$1 = "⇥"; +const RightArrowLeftArrow$1 = "⇄"; +const RightCeiling$1 = "⌉"; +const RightDoubleBracket$1 = "⟧"; +const RightDownTeeVector$1 = "⥝"; +const RightDownVector$1 = "⇂"; +const RightDownVectorBar$1 = "⥕"; +const RightFloor$1 = "⌋"; +const RightTee$1 = "⊢"; +const RightTeeArrow$1 = "↦"; +const RightTeeVector$1 = "⥛"; +const RightTriangle$1 = "⊳"; +const RightTriangleBar$1 = "⧐"; +const RightTriangleEqual$1 = "⊵"; +const RightUpDownVector$1 = "⥏"; +const RightUpTeeVector$1 = "⥜"; +const RightUpVector$1 = "↾"; +const RightUpVectorBar$1 = "⥔"; +const RightVector$1 = "⇀"; +const RightVectorBar$1 = "⥓"; +const Rightarrow$1 = "⇒"; +const Ropf$1 = "ℝ"; +const RoundImplies$1 = "⥰"; +const Rrightarrow$1 = "⇛"; +const Rscr$1 = "ℛ"; +const Rsh$1 = "↱"; +const RuleDelayed$1 = "⧴"; +const SHCHcy$1 = "Щ"; +const SHcy$1 = "Ш"; +const SOFTcy$1 = "Ь"; +const Sacute$1 = "Ś"; +const Sc$1 = "⪼"; +const Scaron$1 = "Š"; +const Scedil$1 = "Ş"; +const Scirc$1 = "Ŝ"; +const Scy$1 = "С"; +const Sfr$1 = "𝔖"; +const ShortDownArrow$1 = "↓"; +const ShortLeftArrow$1 = "←"; +const ShortRightArrow$1 = "→"; +const ShortUpArrow$1 = "↑"; +const Sigma$1 = "Σ"; +const SmallCircle$1 = "∘"; +const Sopf$1 = "𝕊"; +const Sqrt$1 = "√"; +const Square$1 = "□"; +const SquareIntersection$1 = "⊓"; +const SquareSubset$1 = "⊏"; +const SquareSubsetEqual$1 = "⊑"; +const SquareSuperset$1 = "⊐"; +const SquareSupersetEqual$1 = "⊒"; +const SquareUnion$1 = "⊔"; +const Sscr$1 = "𝒮"; +const Star$1 = "⋆"; +const Sub$1 = "⋐"; +const Subset$1 = "⋐"; +const SubsetEqual$1 = "⊆"; +const Succeeds$1 = "≻"; +const SucceedsEqual$1 = "⪰"; +const SucceedsSlantEqual$1 = "≽"; +const SucceedsTilde$1 = "≿"; +const SuchThat$1 = "∋"; +const Sum$1 = "∑"; +const Sup$1 = "⋑"; +const Superset$1 = "⊃"; +const SupersetEqual$1 = "⊇"; +const Supset$1 = "⋑"; +const THOR$1 = "Þ"; +const THORN$1 = "Þ"; +const TRADE$1 = "™"; +const TSHcy$1 = "Ћ"; +const TScy$1 = "Ц"; +const Tab$1 = "\t"; +const Tau$1 = "Τ"; +const Tcaron$1 = "Ť"; +const Tcedil$1 = "Ţ"; +const Tcy$1 = "Т"; +const Tfr$1 = "𝔗"; +const Therefore$1 = "∴"; +const Theta$1 = "Θ"; +const ThickSpace$1 = "  "; +const ThinSpace$1 = " "; +const Tilde$1 = "∼"; +const TildeEqual$1 = "≃"; +const TildeFullEqual$1 = "≅"; +const TildeTilde$1 = "≈"; +const Topf$1 = "𝕋"; +const TripleDot$1 = "⃛"; +const Tscr$1 = "𝒯"; +const Tstrok$1 = "Ŧ"; +const Uacut$1 = "Ú"; +const Uacute$1 = "Ú"; +const Uarr$1 = "↟"; +const Uarrocir$1 = "⥉"; +const Ubrcy$1 = "Ў"; +const Ubreve$1 = "Ŭ"; +const Ucir$1 = "Û"; +const Ucirc$1 = "Û"; +const Ucy$1 = "У"; +const Udblac$1 = "Ű"; +const Ufr$1 = "𝔘"; +const Ugrav$1 = "Ù"; +const Ugrave$1 = "Ù"; +const Umacr$1 = "Ū"; +const UnderBar$1 = "_"; +const UnderBrace$1 = "⏟"; +const UnderBracket$1 = "⎵"; +const UnderParenthesis$1 = "⏝"; +const Union$1 = "⋃"; +const UnionPlus$1 = "⊎"; +const Uogon$1 = "Ų"; +const Uopf$1 = "𝕌"; +const UpArrow$1 = "↑"; +const UpArrowBar$1 = "⤒"; +const UpArrowDownArrow$1 = "⇅"; +const UpDownArrow$1 = "↕"; +const UpEquilibrium$1 = "⥮"; +const UpTee$1 = "⊥"; +const UpTeeArrow$1 = "↥"; +const Uparrow$1 = "⇑"; +const Updownarrow$1 = "⇕"; +const UpperLeftArrow$1 = "↖"; +const UpperRightArrow$1 = "↗"; +const Upsi$1 = "ϒ"; +const Upsilon$1 = "Υ"; +const Uring$1 = "Ů"; +const Uscr$1 = "𝒰"; +const Utilde$1 = "Ũ"; +const Uum$1 = "Ü"; +const Uuml$1 = "Ü"; +const VDash$1 = "⊫"; +const Vbar$1 = "⫫"; +const Vcy$1 = "В"; +const Vdash$1 = "⊩"; +const Vdashl$1 = "⫦"; +const Vee$1 = "⋁"; +const Verbar$1 = "‖"; +const Vert$1 = "‖"; +const VerticalBar$1 = "∣"; +const VerticalLine$1 = "|"; +const VerticalSeparator$1 = "❘"; +const VerticalTilde$1 = "≀"; +const VeryThinSpace$1 = " "; +const Vfr$1 = "𝔙"; +const Vopf$1 = "𝕍"; +const Vscr$1 = "𝒱"; +const Vvdash$1 = "⊪"; +const Wcirc$1 = "Ŵ"; +const Wedge$1 = "⋀"; +const Wfr$1 = "𝔚"; +const Wopf$1 = "𝕎"; +const Wscr$1 = "𝒲"; +const Xfr$1 = "𝔛"; +const Xi$1 = "Ξ"; +const Xopf$1 = "𝕏"; +const Xscr$1 = "𝒳"; +const YAcy$1 = "Я"; +const YIcy$1 = "Ї"; +const YUcy$1 = "Ю"; +const Yacut$1 = "Ý"; +const Yacute$1 = "Ý"; +const Ycirc$1 = "Ŷ"; +const Ycy$1 = "Ы"; +const Yfr$1 = "𝔜"; +const Yopf$1 = "𝕐"; +const Yscr$1 = "𝒴"; +const Yuml$1 = "Ÿ"; +const ZHcy$1 = "Ж"; +const Zacute$1 = "Ź"; +const Zcaron$1 = "Ž"; +const Zcy$1 = "З"; +const Zdot$1 = "Ż"; +const ZeroWidthSpace$1 = "​"; +const Zeta$1 = "Ζ"; +const Zfr$1 = "ℨ"; +const Zopf$1 = "ℤ"; +const Zscr$1 = "𝒵"; +const aacut$1 = "á"; +const aacute$1 = "á"; +const abreve$1 = "ă"; +const ac$1 = "∾"; +const acE$1 = "∾̳"; +const acd$1 = "∿"; +const acir$1 = "â"; +const acirc$1 = "â"; +const acut$1 = "´"; +const acute$1 = "´"; +const acy$1 = "а"; +const aeli$1 = "æ"; +const aelig$1 = "æ"; +const af$1 = "⁡"; +const afr$1 = "𝔞"; +const agrav$1 = "à"; +const agrave$1 = "à"; +const alefsym$1 = "ℵ"; +const aleph$1 = "ℵ"; +const alpha$1 = "α"; +const amacr$1 = "ā"; +const amalg$1 = "⨿"; +const am$1 = "&"; +const amp$1 = "&"; +const and$1 = "∧"; +const andand$1 = "⩕"; +const andd$1 = "⩜"; +const andslope$1 = "⩘"; +const andv$1 = "⩚"; +const ang$1 = "∠"; +const ange$1 = "⦤"; +const angle$1 = "∠"; +const angmsd$1 = "∡"; +const angmsdaa$1 = "⦨"; +const angmsdab$1 = "⦩"; +const angmsdac$1 = "⦪"; +const angmsdad$1 = "⦫"; +const angmsdae$1 = "⦬"; +const angmsdaf$1 = "⦭"; +const angmsdag$1 = "⦮"; +const angmsdah$1 = "⦯"; +const angrt$1 = "∟"; +const angrtvb$1 = "⊾"; +const angrtvbd$1 = "⦝"; +const angsph$1 = "∢"; +const angst$1 = "Å"; +const angzarr$1 = "⍼"; +const aogon$1 = "ą"; +const aopf$1 = "𝕒"; +const ap$1 = "≈"; +const apE$1 = "⩰"; +const apacir$1 = "⩯"; +const ape$1 = "≊"; +const apid$1 = "≋"; +const apos$1 = "'"; +const approx$1 = "≈"; +const approxeq$1 = "≊"; +const arin$1 = "å"; +const aring$1 = "å"; +const ascr$1 = "𝒶"; +const ast$1 = "*"; +const asymp$1 = "≈"; +const asympeq$1 = "≍"; +const atild$1 = "ã"; +const atilde$1 = "ã"; +const aum$1 = "ä"; +const auml$1 = "ä"; +const awconint$1 = "∳"; +const awint$1 = "⨑"; +const bNot$1 = "⫭"; +const backcong$1 = "≌"; +const backepsilon$1 = "϶"; +const backprime$1 = "‵"; +const backsim$1 = "∽"; +const backsimeq$1 = "⋍"; +const barvee$1 = "⊽"; +const barwed$1 = "⌅"; +const barwedge$1 = "⌅"; +const bbrk$1 = "⎵"; +const bbrktbrk$1 = "⎶"; +const bcong$1 = "≌"; +const bcy$1 = "б"; +const bdquo$1 = "„"; +const becaus$1 = "∵"; +const because$1 = "∵"; +const bemptyv$1 = "⦰"; +const bepsi$1 = "϶"; +const bernou$1 = "ℬ"; +const beta$1 = "β"; +const beth$1 = "ℶ"; +const between$1 = "≬"; +const bfr$1 = "𝔟"; +const bigcap$1 = "⋂"; +const bigcirc$1 = "◯"; +const bigcup$1 = "⋃"; +const bigodot$1 = "⨀"; +const bigoplus$1 = "⨁"; +const bigotimes$1 = "⨂"; +const bigsqcup$1 = "⨆"; +const bigstar$1 = "★"; +const bigtriangledown$1 = "▽"; +const bigtriangleup$1 = "△"; +const biguplus$1 = "⨄"; +const bigvee$1 = "⋁"; +const bigwedge$1 = "⋀"; +const bkarow$1 = "⤍"; +const blacklozenge$1 = "⧫"; +const blacksquare$1 = "▪"; +const blacktriangle$1 = "▴"; +const blacktriangledown$1 = "▾"; +const blacktriangleleft$1 = "◂"; +const blacktriangleright$1 = "▸"; +const blank$1 = "␣"; +const blk12$1 = "▒"; +const blk14$1 = "░"; +const blk34$1 = "▓"; +const block$1 = "█"; +const bne$1 = "=⃥"; +const bnequiv$1 = "≡⃥"; +const bnot$1 = "⌐"; +const bopf$1 = "𝕓"; +const bot$1 = "⊥"; +const bottom$1 = "⊥"; +const bowtie$1 = "⋈"; +const boxDL$1 = "╗"; +const boxDR$1 = "╔"; +const boxDl$1 = "╖"; +const boxDr$1 = "╓"; +const boxH$1 = "═"; +const boxHD$1 = "╦"; +const boxHU$1 = "╩"; +const boxHd$1 = "╤"; +const boxHu$1 = "╧"; +const boxUL$1 = "╝"; +const boxUR$1 = "╚"; +const boxUl$1 = "╜"; +const boxUr$1 = "╙"; +const boxV$1 = "║"; +const boxVH$1 = "╬"; +const boxVL$1 = "╣"; +const boxVR$1 = "╠"; +const boxVh$1 = "╫"; +const boxVl$1 = "╢"; +const boxVr$1 = "╟"; +const boxbox$1 = "⧉"; +const boxdL$1 = "╕"; +const boxdR$1 = "╒"; +const boxdl$1 = "┐"; +const boxdr$1 = "┌"; +const boxh$1 = "─"; +const boxhD$1 = "╥"; +const boxhU$1 = "╨"; +const boxhd$1 = "┬"; +const boxhu$1 = "┴"; +const boxminus$1 = "⊟"; +const boxplus$1 = "⊞"; +const boxtimes$1 = "⊠"; +const boxuL$1 = "╛"; +const boxuR$1 = "╘"; +const boxul$1 = "┘"; +const boxur$1 = "└"; +const boxv$1 = "│"; +const boxvH$1 = "╪"; +const boxvL$1 = "╡"; +const boxvR$1 = "╞"; +const boxvh$1 = "┼"; +const boxvl$1 = "┤"; +const boxvr$1 = "├"; +const bprime$1 = "‵"; +const breve$1 = "˘"; +const brvba$1 = "¦"; +const brvbar$1 = "¦"; +const bscr$1 = "𝒷"; +const bsemi$1 = "⁏"; +const bsim$1 = "∽"; +const bsime$1 = "⋍"; +const bsol$1 = "\\"; +const bsolb$1 = "⧅"; +const bsolhsub$1 = "⟈"; +const bull$1 = "•"; +const bullet$1 = "•"; +const bump$1 = "≎"; +const bumpE$1 = "⪮"; +const bumpe$1 = "≏"; +const bumpeq$1 = "≏"; +const cacute$1 = "ć"; +const cap$1 = "∩"; +const capand$1 = "⩄"; +const capbrcup$1 = "⩉"; +const capcap$1 = "⩋"; +const capcup$1 = "⩇"; +const capdot$1 = "⩀"; +const caps$1 = "∩︀"; +const caret$1 = "⁁"; +const caron$1 = "ˇ"; +const ccaps$1 = "⩍"; +const ccaron$1 = "č"; +const ccedi$1 = "ç"; +const ccedil$1 = "ç"; +const ccirc$1 = "ĉ"; +const ccups$1 = "⩌"; +const ccupssm$1 = "⩐"; +const cdot$1 = "ċ"; +const cedi$1 = "¸"; +const cedil$1 = "¸"; +const cemptyv$1 = "⦲"; +const cen$1 = "¢"; +const cent$1 = "¢"; +const centerdot$1 = "·"; +const cfr$1 = "𝔠"; +const chcy$1 = "ч"; +const check$2 = "✓"; +const checkmark$1 = "✓"; +const chi$1 = "χ"; +const cir$1 = "○"; +const cirE$1 = "⧃"; +const circ$1 = "ˆ"; +const circeq$1 = "≗"; +const circlearrowleft$1 = "↺"; +const circlearrowright$1 = "↻"; +const circledR$1 = "®"; +const circledS$1 = "Ⓢ"; +const circledast$1 = "⊛"; +const circledcirc$1 = "⊚"; +const circleddash$1 = "⊝"; +const cire$1 = "≗"; +const cirfnint$1 = "⨐"; +const cirmid$1 = "⫯"; +const cirscir$1 = "⧂"; +const clubs$1 = "♣"; +const clubsuit$1 = "♣"; +const colon$1 = ":"; +const colone$1 = "≔"; +const coloneq$1 = "≔"; +const comma$1 = ","; +const commat$1 = "@"; +const comp$1 = "∁"; +const compfn$1 = "∘"; +const complement$1 = "∁"; +const complexes$1 = "ℂ"; +const cong$1 = "≅"; +const congdot$1 = "⩭"; +const conint$1 = "∮"; +const copf$1 = "𝕔"; +const coprod$1 = "∐"; +const cop$1 = "©"; +const copy$1 = "©"; +const copysr$1 = "℗"; +const crarr$1 = "↵"; +const cross$1 = "✗"; +const cscr$1 = "𝒸"; +const csub$1 = "⫏"; +const csube$1 = "⫑"; +const csup$1 = "⫐"; +const csupe$1 = "⫒"; +const ctdot$1 = "⋯"; +const cudarrl$1 = "⤸"; +const cudarrr$1 = "⤵"; +const cuepr$1 = "⋞"; +const cuesc$1 = "⋟"; +const cularr$1 = "↶"; +const cularrp$1 = "⤽"; +const cup$1 = "∪"; +const cupbrcap$1 = "⩈"; +const cupcap$1 = "⩆"; +const cupcup$1 = "⩊"; +const cupdot$1 = "⊍"; +const cupor$1 = "⩅"; +const cups$1 = "∪︀"; +const curarr$1 = "↷"; +const curarrm$1 = "⤼"; +const curlyeqprec$1 = "⋞"; +const curlyeqsucc$1 = "⋟"; +const curlyvee$1 = "⋎"; +const curlywedge$1 = "⋏"; +const curre$1 = "¤"; +const curren$1 = "¤"; +const curvearrowleft$1 = "↶"; +const curvearrowright$1 = "↷"; +const cuvee$1 = "⋎"; +const cuwed$1 = "⋏"; +const cwconint$1 = "∲"; +const cwint$1 = "∱"; +const cylcty$1 = "⌭"; +const dArr$1 = "⇓"; +const dHar$1 = "⥥"; +const dagger$1 = "†"; +const daleth$1 = "ℸ"; +const darr$1 = "↓"; +const dash$1 = "‐"; +const dashv$1 = "⊣"; +const dbkarow$1 = "⤏"; +const dblac$1 = "˝"; +const dcaron$1 = "ď"; +const dcy$1 = "д"; +const dd$1 = "ⅆ"; +const ddagger$1 = "‡"; +const ddarr$1 = "⇊"; +const ddotseq$1 = "⩷"; +const de$1 = "°"; +const deg$1 = "°"; +const delta$1 = "δ"; +const demptyv$1 = "⦱"; +const dfisht$1 = "⥿"; +const dfr$1 = "𝔡"; +const dharl$1 = "⇃"; +const dharr$1 = "⇂"; +const diam$1 = "⋄"; +const diamond$1 = "⋄"; +const diamondsuit$1 = "♦"; +const diams$1 = "♦"; +const die$1 = "¨"; +const digamma$1 = "ϝ"; +const disin$1 = "⋲"; +const div$1 = "÷"; +const divid$1 = "÷"; +const divide$1 = "÷"; +const divideontimes$1 = "⋇"; +const divonx$1 = "⋇"; +const djcy$1 = "ђ"; +const dlcorn$1 = "⌞"; +const dlcrop$1 = "⌍"; +const dollar$1 = "$"; +const dopf$1 = "𝕕"; +const dot$1 = "˙"; +const doteq$1 = "≐"; +const doteqdot$1 = "≑"; +const dotminus$1 = "∸"; +const dotplus$1 = "∔"; +const dotsquare$1 = "⊡"; +const doublebarwedge$1 = "⌆"; +const downarrow$1 = "↓"; +const downdownarrows$1 = "⇊"; +const downharpoonleft$1 = "⇃"; +const downharpoonright$1 = "⇂"; +const drbkarow$1 = "⤐"; +const drcorn$1 = "⌟"; +const drcrop$1 = "⌌"; +const dscr$1 = "𝒹"; +const dscy$1 = "ѕ"; +const dsol$1 = "⧶"; +const dstrok$1 = "đ"; +const dtdot$1 = "⋱"; +const dtri$1 = "▿"; +const dtrif$1 = "▾"; +const duarr$1 = "⇵"; +const duhar$1 = "⥯"; +const dwangle$1 = "⦦"; +const dzcy$1 = "џ"; +const dzigrarr$1 = "⟿"; +const eDDot$1 = "⩷"; +const eDot$1 = "≑"; +const eacut$1 = "é"; +const eacute$1 = "é"; +const easter$1 = "⩮"; +const ecaron$1 = "ě"; +const ecir$1 = "ê"; +const ecirc$1 = "ê"; +const ecolon$1 = "≕"; +const ecy$1 = "э"; +const edot$1 = "ė"; +const ee$1 = "ⅇ"; +const efDot$1 = "≒"; +const efr$1 = "𝔢"; +const eg$1 = "⪚"; +const egrav$1 = "è"; +const egrave$1 = "è"; +const egs$1 = "⪖"; +const egsdot$1 = "⪘"; +const el$1 = "⪙"; +const elinters$1 = "⏧"; +const ell$1 = "ℓ"; +const els$1 = "⪕"; +const elsdot$1 = "⪗"; +const emacr$1 = "ē"; +const empty$1 = "∅"; +const emptyset$1 = "∅"; +const emptyv$1 = "∅"; +const emsp13$1 = " "; +const emsp14$1 = " "; +const emsp$1 = " "; +const eng$1 = "ŋ"; +const ensp$1 = " "; +const eogon$1 = "ę"; +const eopf$1 = "𝕖"; +const epar$1 = "⋕"; +const eparsl$1 = "⧣"; +const eplus$1 = "⩱"; +const epsi$1 = "ε"; +const epsilon$1 = "ε"; +const epsiv$1 = "ϵ"; +const eqcirc$1 = "≖"; +const eqcolon$1 = "≕"; +const eqsim$1 = "≂"; +const eqslantgtr$1 = "⪖"; +const eqslantless$1 = "⪕"; +const equals$1 = "="; +const equest$1 = "≟"; +const equiv$1 = "≡"; +const equivDD$1 = "⩸"; +const eqvparsl$1 = "⧥"; +const erDot$1 = "≓"; +const erarr$1 = "⥱"; +const escr$1 = "ℯ"; +const esdot$1 = "≐"; +const esim$1 = "≂"; +const eta$1 = "η"; +const et$1 = "ð"; +const eth$1 = "ð"; +const eum$1 = "ë"; +const euml$1 = "ë"; +const euro$1 = "€"; +const excl$1 = "!"; +const exist$1 = "∃"; +const expectation$1 = "ℰ"; +const exponentiale$1 = "ⅇ"; +const fallingdotseq$1 = "≒"; +const fcy$1 = "ф"; +const female$1 = "♀"; +const ffilig$1 = "ffi"; +const fflig$1 = "ff"; +const ffllig$1 = "ffl"; +const ffr$1 = "𝔣"; +const filig$1 = "fi"; +const fjlig$1 = "fj"; +const flat$1 = "♭"; +const fllig$1 = "fl"; +const fltns$1 = "▱"; +const fnof$1 = "ƒ"; +const fopf$1 = "𝕗"; +const forall$1 = "∀"; +const fork$1 = "⋔"; +const forkv$1 = "⫙"; +const fpartint$1 = "⨍"; +const frac1$1 = "¼"; +const frac12$1 = "½"; +const frac13$1 = "⅓"; +const frac14$1 = "¼"; +const frac15$1 = "⅕"; +const frac16$1 = "⅙"; +const frac18$1 = "⅛"; +const frac23$1 = "⅔"; +const frac25$1 = "⅖"; +const frac3$1 = "¾"; +const frac34$1 = "¾"; +const frac35$1 = "⅗"; +const frac38$1 = "⅜"; +const frac45$1 = "⅘"; +const frac56$1 = "⅚"; +const frac58$1 = "⅝"; +const frac78$1 = "⅞"; +const frasl$1 = "⁄"; +const frown$1 = "⌢"; +const fscr$1 = "𝒻"; +const gE$1 = "≧"; +const gEl$1 = "⪌"; +const gacute$1 = "ǵ"; +const gamma$1 = "γ"; +const gammad$1 = "ϝ"; +const gap$1 = "⪆"; +const gbreve$1 = "ğ"; +const gcirc$1 = "ĝ"; +const gcy$1 = "г"; +const gdot$1 = "ġ"; +const ge$1 = "≥"; +const gel$1 = "⋛"; +const geq$1 = "≥"; +const geqq$1 = "≧"; +const geqslant$1 = "⩾"; +const ges$1 = "⩾"; +const gescc$1 = "⪩"; +const gesdot$1 = "⪀"; +const gesdoto$1 = "⪂"; +const gesdotol$1 = "⪄"; +const gesl$1 = "⋛︀"; +const gesles$1 = "⪔"; +const gfr$1 = "𝔤"; +const gg$1 = "≫"; +const ggg$1 = "⋙"; +const gimel$1 = "ℷ"; +const gjcy$1 = "ѓ"; +const gl$1 = "≷"; +const glE$1 = "⪒"; +const gla$1 = "⪥"; +const glj$1 = "⪤"; +const gnE$1 = "≩"; +const gnap$1 = "⪊"; +const gnapprox$1 = "⪊"; +const gne$1 = "⪈"; +const gneq$1 = "⪈"; +const gneqq$1 = "≩"; +const gnsim$1 = "⋧"; +const gopf$1 = "𝕘"; +const grave$1 = "`"; +const gscr$1 = "ℊ"; +const gsim$1 = "≳"; +const gsime$1 = "⪎"; +const gsiml$1 = "⪐"; +const g$1 = ">"; +const gt$1 = ">"; +const gtcc$1 = "⪧"; +const gtcir$1 = "⩺"; +const gtdot$1 = "⋗"; +const gtlPar$1 = "⦕"; +const gtquest$1 = "⩼"; +const gtrapprox$1 = "⪆"; +const gtrarr$1 = "⥸"; +const gtrdot$1 = "⋗"; +const gtreqless$1 = "⋛"; +const gtreqqless$1 = "⪌"; +const gtrless$1 = "≷"; +const gtrsim$1 = "≳"; +const gvertneqq$1 = "≩︀"; +const gvnE$1 = "≩︀"; +const hArr$1 = "⇔"; +const hairsp$1 = " "; +const half$1 = "½"; +const hamilt$1 = "ℋ"; +const hardcy$1 = "ъ"; +const harr$1 = "↔"; +const harrcir$1 = "⥈"; +const harrw$1 = "↭"; +const hbar$1 = "ℏ"; +const hcirc$1 = "ĥ"; +const hearts$1 = "♥"; +const heartsuit$1 = "♥"; +const hellip$1 = "…"; +const hercon$1 = "⊹"; +const hfr$1 = "𝔥"; +const hksearow$1 = "⤥"; +const hkswarow$1 = "⤦"; +const hoarr$1 = "⇿"; +const homtht$1 = "∻"; +const hookleftarrow$1 = "↩"; +const hookrightarrow$1 = "↪"; +const hopf$1 = "𝕙"; +const horbar$1 = "―"; +const hscr$1 = "𝒽"; +const hslash$1 = "ℏ"; +const hstrok$1 = "ħ"; +const hybull$1 = "⁃"; +const hyphen$1 = "‐"; +const iacut$1 = "í"; +const iacute$1 = "í"; +const ic$1 = "⁣"; +const icir$1 = "î"; +const icirc$1 = "î"; +const icy$1 = "и"; +const iecy$1 = "е"; +const iexc$1 = "¡"; +const iexcl$1 = "¡"; +const iff$1 = "⇔"; +const ifr$1 = "𝔦"; +const igrav$1 = "ì"; +const igrave$1 = "ì"; +const ii$1 = "ⅈ"; +const iiiint$1 = "⨌"; +const iiint$1 = "∭"; +const iinfin$1 = "⧜"; +const iiota$1 = "℩"; +const ijlig$1 = "ij"; +const imacr$1 = "ī"; +const image$2 = "ℑ"; +const imagline$1 = "ℐ"; +const imagpart$1 = "ℑ"; +const imath$1 = "ı"; +const imof$1 = "⊷"; +const imped$1 = "Ƶ"; +const incare$1 = "℅"; +const infin$1 = "∞"; +const infintie$1 = "⧝"; +const inodot$1 = "ı"; +const int$2 = "∫"; +const intcal$1 = "⊺"; +const integers$1 = "ℤ"; +const intercal$1 = "⊺"; +const intlarhk$1 = "⨗"; +const intprod$1 = "⨼"; +const iocy$1 = "ё"; +const iogon$1 = "į"; +const iopf$1 = "𝕚"; +const iota$1 = "ι"; +const iprod$1 = "⨼"; +const iques$1 = "¿"; +const iquest$1 = "¿"; +const iscr$1 = "𝒾"; +const isin$1 = "∈"; +const isinE$1 = "⋹"; +const isindot$1 = "⋵"; +const isins$1 = "⋴"; +const isinsv$1 = "⋳"; +const isinv$1 = "∈"; +const it$1 = "⁢"; +const itilde$1 = "ĩ"; +const iukcy$1 = "і"; +const ium$1 = "ï"; +const iuml$1 = "ï"; +const jcirc$1 = "ĵ"; +const jcy$1 = "й"; +const jfr$1 = "𝔧"; +const jmath$1 = "ȷ"; +const jopf$1 = "𝕛"; +const jscr$1 = "𝒿"; +const jsercy$1 = "ј"; +const jukcy$1 = "є"; +const kappa$1 = "κ"; +const kappav$1 = "ϰ"; +const kcedil$1 = "ķ"; +const kcy$1 = "к"; +const kfr$1 = "𝔨"; +const kgreen$1 = "ĸ"; +const khcy$1 = "х"; +const kjcy$1 = "ќ"; +const kopf$1 = "𝕜"; +const kscr$1 = "𝓀"; +const lAarr$1 = "⇚"; +const lArr$1 = "⇐"; +const lAtail$1 = "⤛"; +const lBarr$1 = "⤎"; +const lE$1 = "≦"; +const lEg$1 = "⪋"; +const lHar$1 = "⥢"; +const lacute$1 = "ĺ"; +const laemptyv$1 = "⦴"; +const lagran$1 = "ℒ"; +const lambda$1 = "λ"; +const lang$1 = "⟨"; +const langd$1 = "⦑"; +const langle$1 = "⟨"; +const lap$1 = "⪅"; +const laqu$1 = "«"; +const laquo$1 = "«"; +const larr$1 = "←"; +const larrb$1 = "⇤"; +const larrbfs$1 = "⤟"; +const larrfs$1 = "⤝"; +const larrhk$1 = "↩"; +const larrlp$1 = "↫"; +const larrpl$1 = "⤹"; +const larrsim$1 = "⥳"; +const larrtl$1 = "↢"; +const lat$1 = "⪫"; +const latail$1 = "⤙"; +const late$1 = "⪭"; +const lates$1 = "⪭︀"; +const lbarr$1 = "⤌"; +const lbbrk$1 = "❲"; +const lbrace$1 = "{"; +const lbrack$1 = "["; +const lbrke$1 = "⦋"; +const lbrksld$1 = "⦏"; +const lbrkslu$1 = "⦍"; +const lcaron$1 = "ľ"; +const lcedil$1 = "ļ"; +const lceil$1 = "⌈"; +const lcub$1 = "{"; +const lcy$1 = "л"; +const ldca$1 = "⤶"; +const ldquo$1 = "“"; +const ldquor$1 = "„"; +const ldrdhar$1 = "⥧"; +const ldrushar$1 = "⥋"; +const ldsh$1 = "↲"; +const le$1 = "≤"; +const leftarrow$1 = "←"; +const leftarrowtail$1 = "↢"; +const leftharpoondown$1 = "↽"; +const leftharpoonup$1 = "↼"; +const leftleftarrows$1 = "⇇"; +const leftrightarrow$1 = "↔"; +const leftrightarrows$1 = "⇆"; +const leftrightharpoons$1 = "⇋"; +const leftrightsquigarrow$1 = "↭"; +const leftthreetimes$1 = "⋋"; +const leg$1 = "⋚"; +const leq$1 = "≤"; +const leqq$1 = "≦"; +const leqslant$1 = "⩽"; +const les$1 = "⩽"; +const lescc$1 = "⪨"; +const lesdot$1 = "⩿"; +const lesdoto$1 = "⪁"; +const lesdotor$1 = "⪃"; +const lesg$1 = "⋚︀"; +const lesges$1 = "⪓"; +const lessapprox$1 = "⪅"; +const lessdot$1 = "⋖"; +const lesseqgtr$1 = "⋚"; +const lesseqqgtr$1 = "⪋"; +const lessgtr$1 = "≶"; +const lesssim$1 = "≲"; +const lfisht$1 = "⥼"; +const lfloor$1 = "⌊"; +const lfr$1 = "𝔩"; +const lg$1 = "≶"; +const lgE$1 = "⪑"; +const lhard$1 = "↽"; +const lharu$1 = "↼"; +const lharul$1 = "⥪"; +const lhblk$1 = "▄"; +const ljcy$1 = "љ"; +const ll$1 = "≪"; +const llarr$1 = "⇇"; +const llcorner$1 = "⌞"; +const llhard$1 = "⥫"; +const lltri$1 = "◺"; +const lmidot$1 = "ŀ"; +const lmoust$1 = "⎰"; +const lmoustache$1 = "⎰"; +const lnE$1 = "≨"; +const lnap$1 = "⪉"; +const lnapprox$1 = "⪉"; +const lne$1 = "⪇"; +const lneq$1 = "⪇"; +const lneqq$1 = "≨"; +const lnsim$1 = "⋦"; +const loang$1 = "⟬"; +const loarr$1 = "⇽"; +const lobrk$1 = "⟦"; +const longleftarrow$1 = "⟵"; +const longleftrightarrow$1 = "⟷"; +const longmapsto$1 = "⟼"; +const longrightarrow$1 = "⟶"; +const looparrowleft$1 = "↫"; +const looparrowright$1 = "↬"; +const lopar$1 = "⦅"; +const lopf$1 = "𝕝"; +const loplus$1 = "⨭"; +const lotimes$1 = "⨴"; +const lowast$1 = "∗"; +const lowbar$1 = "_"; +const loz$1 = "◊"; +const lozenge$1 = "◊"; +const lozf$1 = "⧫"; +const lpar$1 = "("; +const lparlt$1 = "⦓"; +const lrarr$1 = "⇆"; +const lrcorner$1 = "⌟"; +const lrhar$1 = "⇋"; +const lrhard$1 = "⥭"; +const lrm$1 = "‎"; +const lrtri$1 = "⊿"; +const lsaquo$1 = "‹"; +const lscr$1 = "𝓁"; +const lsh$1 = "↰"; +const lsim$1 = "≲"; +const lsime$1 = "⪍"; +const lsimg$1 = "⪏"; +const lsqb$1 = "["; +const lsquo$1 = "‘"; +const lsquor$1 = "‚"; +const lstrok$1 = "ł"; +const l$1 = "<"; +const lt$2 = "<"; +const ltcc$1 = "⪦"; +const ltcir$1 = "⩹"; +const ltdot$1 = "⋖"; +const lthree$1 = "⋋"; +const ltimes$1 = "⋉"; +const ltlarr$1 = "⥶"; +const ltquest$1 = "⩻"; +const ltrPar$1 = "⦖"; +const ltri$1 = "◃"; +const ltrie$1 = "⊴"; +const ltrif$1 = "◂"; +const lurdshar$1 = "⥊"; +const luruhar$1 = "⥦"; +const lvertneqq$1 = "≨︀"; +const lvnE$1 = "≨︀"; +const mDDot$1 = "∺"; +const mac$1 = "¯"; +const macr$1 = "¯"; +const male$1 = "♂"; +const malt$1 = "✠"; +const maltese$1 = "✠"; +const map$4 = "↦"; +const mapsto$1 = "↦"; +const mapstodown$1 = "↧"; +const mapstoleft$1 = "↤"; +const mapstoup$1 = "↥"; +const marker$1 = "▮"; +const mcomma$1 = "⨩"; +const mcy$1 = "м"; +const mdash$1 = "—"; +const measuredangle$1 = "∡"; +const mfr$1 = "𝔪"; +const mho$1 = "℧"; +const micr$1 = "µ"; +const micro$1 = "µ"; +const mid$1 = "∣"; +const midast$1 = "*"; +const midcir$1 = "⫰"; +const middo$1 = "·"; +const middot$1 = "·"; +const minus$1 = "−"; +const minusb$1 = "⊟"; +const minusd$1 = "∸"; +const minusdu$1 = "⨪"; +const mlcp$1 = "⫛"; +const mldr$1 = "…"; +const mnplus$1 = "∓"; +const models$1 = "⊧"; +const mopf$1 = "𝕞"; +const mp$1 = "∓"; +const mscr$1 = "𝓂"; +const mstpos$1 = "∾"; +const mu$1 = "μ"; +const multimap$1 = "⊸"; +const mumap$1 = "⊸"; +const nGg$1 = "⋙̸"; +const nGt$1 = "≫⃒"; +const nGtv$1 = "≫̸"; +const nLeftarrow$1 = "⇍"; +const nLeftrightarrow$1 = "⇎"; +const nLl$1 = "⋘̸"; +const nLt$1 = "≪⃒"; +const nLtv$1 = "≪̸"; +const nRightarrow$1 = "⇏"; +const nVDash$1 = "⊯"; +const nVdash$1 = "⊮"; +const nabla$1 = "∇"; +const nacute$1 = "ń"; +const nang$1 = "∠⃒"; +const nap$1 = "≉"; +const napE$1 = "⩰̸"; +const napid$1 = "≋̸"; +const napos$1 = "ʼn"; +const napprox$1 = "≉"; +const natur$1 = "♮"; +const natural$1 = "♮"; +const naturals$1 = "ℕ"; +const nbs$1 = " "; +const nbsp$1 = " "; +const nbump$1 = "≎̸"; +const nbumpe$1 = "≏̸"; +const ncap$1 = "⩃"; +const ncaron$1 = "ň"; +const ncedil$1 = "ņ"; +const ncong$1 = "≇"; +const ncongdot$1 = "⩭̸"; +const ncup$1 = "⩂"; +const ncy$1 = "н"; +const ndash$1 = "–"; +const ne$1 = "≠"; +const neArr$1 = "⇗"; +const nearhk$1 = "⤤"; +const nearr$1 = "↗"; +const nearrow$1 = "↗"; +const nedot$1 = "≐̸"; +const nequiv$1 = "≢"; +const nesear$1 = "⤨"; +const nesim$1 = "≂̸"; +const nexist$1 = "∄"; +const nexists$1 = "∄"; +const nfr$1 = "𝔫"; +const ngE$1 = "≧̸"; +const nge$1 = "≱"; +const ngeq$1 = "≱"; +const ngeqq$1 = "≧̸"; +const ngeqslant$1 = "⩾̸"; +const nges$1 = "⩾̸"; +const ngsim$1 = "≵"; +const ngt$1 = "≯"; +const ngtr$1 = "≯"; +const nhArr$1 = "⇎"; +const nharr$1 = "↮"; +const nhpar$1 = "⫲"; +const ni$1 = "∋"; +const nis$1 = "⋼"; +const nisd$1 = "⋺"; +const niv$1 = "∋"; +const njcy$1 = "њ"; +const nlArr$1 = "⇍"; +const nlE$1 = "≦̸"; +const nlarr$1 = "↚"; +const nldr$1 = "‥"; +const nle$1 = "≰"; +const nleftarrow$1 = "↚"; +const nleftrightarrow$1 = "↮"; +const nleq$1 = "≰"; +const nleqq$1 = "≦̸"; +const nleqslant$1 = "⩽̸"; +const nles$1 = "⩽̸"; +const nless$1 = "≮"; +const nlsim$1 = "≴"; +const nlt$1 = "≮"; +const nltri$1 = "⋪"; +const nltrie$1 = "⋬"; +const nmid$1 = "∤"; +const nopf$1 = "𝕟"; +const no$1 = "¬"; +const not$1 = "¬"; +const notin$1 = "∉"; +const notinE$1 = "⋹̸"; +const notindot$1 = "⋵̸"; +const notinva$1 = "∉"; +const notinvb$1 = "⋷"; +const notinvc$1 = "⋶"; +const notni$1 = "∌"; +const notniva$1 = "∌"; +const notnivb$1 = "⋾"; +const notnivc$1 = "⋽"; +const npar$1 = "∦"; +const nparallel$1 = "∦"; +const nparsl$1 = "⫽⃥"; +const npart$1 = "∂̸"; +const npolint$1 = "⨔"; +const npr$1 = "⊀"; +const nprcue$1 = "⋠"; +const npre$1 = "⪯̸"; +const nprec$1 = "⊀"; +const npreceq$1 = "⪯̸"; +const nrArr$1 = "⇏"; +const nrarr$1 = "↛"; +const nrarrc$1 = "⤳̸"; +const nrarrw$1 = "↝̸"; +const nrightarrow$1 = "↛"; +const nrtri$1 = "⋫"; +const nrtrie$1 = "⋭"; +const nsc$1 = "⊁"; +const nsccue$1 = "⋡"; +const nsce$1 = "⪰̸"; +const nscr$1 = "𝓃"; +const nshortmid$1 = "∤"; +const nshortparallel$1 = "∦"; +const nsim$1 = "≁"; +const nsime$1 = "≄"; +const nsimeq$1 = "≄"; +const nsmid$1 = "∤"; +const nspar$1 = "∦"; +const nsqsube$1 = "⋢"; +const nsqsupe$1 = "⋣"; +const nsub$1 = "⊄"; +const nsubE$1 = "⫅̸"; +const nsube$1 = "⊈"; +const nsubset$1 = "⊂⃒"; +const nsubseteq$1 = "⊈"; +const nsubseteqq$1 = "⫅̸"; +const nsucc$1 = "⊁"; +const nsucceq$1 = "⪰̸"; +const nsup$1 = "⊅"; +const nsupE$1 = "⫆̸"; +const nsupe$1 = "⊉"; +const nsupset$1 = "⊃⃒"; +const nsupseteq$1 = "⊉"; +const nsupseteqq$1 = "⫆̸"; +const ntgl$1 = "≹"; +const ntild$1 = "ñ"; +const ntilde$1 = "ñ"; +const ntlg$1 = "≸"; +const ntriangleleft$1 = "⋪"; +const ntrianglelefteq$1 = "⋬"; +const ntriangleright$1 = "⋫"; +const ntrianglerighteq$1 = "⋭"; +const nu$1 = "ν"; +const num$1 = "#"; +const numero$1 = "№"; +const numsp$1 = " "; +const nvDash$1 = "⊭"; +const nvHarr$1 = "⤄"; +const nvap$1 = "≍⃒"; +const nvdash$1 = "⊬"; +const nvge$1 = "≥⃒"; +const nvgt$1 = ">⃒"; +const nvinfin$1 = "⧞"; +const nvlArr$1 = "⤂"; +const nvle$1 = "≤⃒"; +const nvlt$1 = "<⃒"; +const nvltrie$1 = "⊴⃒"; +const nvrArr$1 = "⤃"; +const nvrtrie$1 = "⊵⃒"; +const nvsim$1 = "∼⃒"; +const nwArr$1 = "⇖"; +const nwarhk$1 = "⤣"; +const nwarr$1 = "↖"; +const nwarrow$1 = "↖"; +const nwnear$1 = "⤧"; +const oS$1 = "Ⓢ"; +const oacut$1 = "ó"; +const oacute$1 = "ó"; +const oast$1 = "⊛"; +const ocir$1 = "ô"; +const ocirc$1 = "ô"; +const ocy$1 = "о"; +const odash$1 = "⊝"; +const odblac$1 = "ő"; +const odiv$1 = "⨸"; +const odot$1 = "⊙"; +const odsold$1 = "⦼"; +const oelig$1 = "œ"; +const ofcir$1 = "⦿"; +const ofr$1 = "𝔬"; +const ogon$1 = "˛"; +const ograv$1 = "ò"; +const ograve$1 = "ò"; +const ogt$1 = "⧁"; +const ohbar$1 = "⦵"; +const ohm$1 = "Ω"; +const oint$1 = "∮"; +const olarr$1 = "↺"; +const olcir$1 = "⦾"; +const olcross$1 = "⦻"; +const oline$1 = "‾"; +const olt$1 = "⧀"; +const omacr$1 = "ō"; +const omega$1 = "ω"; +const omicron$1 = "ο"; +const omid$1 = "⦶"; +const ominus$1 = "⊖"; +const oopf$1 = "𝕠"; +const opar$1 = "⦷"; +const operp$1 = "⦹"; +const oplus$1 = "⊕"; +const or$1 = "∨"; +const orarr$1 = "↻"; +const ord$1 = "º"; +const order$1 = "ℴ"; +const orderof$1 = "ℴ"; +const ordf$1 = "ª"; +const ordm$1 = "º"; +const origof$1 = "⊶"; +const oror$1 = "⩖"; +const orslope$1 = "⩗"; +const orv$1 = "⩛"; +const oscr$1 = "ℴ"; +const oslas$1 = "ø"; +const oslash$1 = "ø"; +const osol$1 = "⊘"; +const otild$1 = "õ"; +const otilde$1 = "õ"; +const otimes$1 = "⊗"; +const otimesas$1 = "⨶"; +const oum$1 = "ö"; +const ouml$1 = "ö"; +const ovbar$1 = "⌽"; +const par$1 = "¶"; +const para$1 = "¶"; +const parallel$1 = "∥"; +const parsim$1 = "⫳"; +const parsl$1 = "⫽"; +const part$1 = "∂"; +const pcy$1 = "п"; +const percnt$1 = "%"; +const period$1 = "."; +const permil$1 = "‰"; +const perp$1 = "⊥"; +const pertenk$1 = "‱"; +const pfr$1 = "𝔭"; +const phi$1 = "φ"; +const phiv$1 = "ϕ"; +const phmmat$1 = "ℳ"; +const phone$1 = "☎"; +const pi$1 = "π"; +const pitchfork$1 = "⋔"; +const piv$1 = "ϖ"; +const planck$1 = "ℏ"; +const planckh$1 = "ℎ"; +const plankv$1 = "ℏ"; +const plus$1 = "+"; +const plusacir$1 = "⨣"; +const plusb$1 = "⊞"; +const pluscir$1 = "⨢"; +const plusdo$1 = "∔"; +const plusdu$1 = "⨥"; +const pluse$1 = "⩲"; +const plusm$1 = "±"; +const plusmn$1 = "±"; +const plussim$1 = "⨦"; +const plustwo$1 = "⨧"; +const pm$1 = "±"; +const pointint$1 = "⨕"; +const popf$1 = "𝕡"; +const poun$1 = "£"; +const pound$1 = "£"; +const pr$1 = "≺"; +const prE$1 = "⪳"; +const prap$1 = "⪷"; +const prcue$1 = "≼"; +const pre$1 = "⪯"; +const prec$1 = "≺"; +const precapprox$1 = "⪷"; +const preccurlyeq$1 = "≼"; +const preceq$1 = "⪯"; +const precnapprox$1 = "⪹"; +const precneqq$1 = "⪵"; +const precnsim$1 = "⋨"; +const precsim$1 = "≾"; +const prime$1 = "′"; +const primes$1 = "ℙ"; +const prnE$1 = "⪵"; +const prnap$1 = "⪹"; +const prnsim$1 = "⋨"; +const prod$1 = "∏"; +const profalar$1 = "⌮"; +const profline$1 = "⌒"; +const profsurf$1 = "⌓"; +const prop$1 = "∝"; +const propto$1 = "∝"; +const prsim$1 = "≾"; +const prurel$1 = "⊰"; +const pscr$1 = "𝓅"; +const psi$1 = "ψ"; +const puncsp$1 = " "; +const qfr$1 = "𝔮"; +const qint$1 = "⨌"; +const qopf$1 = "𝕢"; +const qprime$1 = "⁗"; +const qscr$1 = "𝓆"; +const quaternions$1 = "ℍ"; +const quatint$1 = "⨖"; +const quest$1 = "?"; +const questeq$1 = "≟"; +const quo$1 = "\""; +const quot$1 = "\""; +const rAarr$1 = "⇛"; +const rArr$1 = "⇒"; +const rAtail$1 = "⤜"; +const rBarr$1 = "⤏"; +const rHar$1 = "⥤"; +const race$1 = "∽̱"; +const racute$1 = "ŕ"; +const radic$1 = "√"; +const raemptyv$1 = "⦳"; +const rang$1 = "⟩"; +const rangd$1 = "⦒"; +const range$1 = "⦥"; +const rangle$1 = "⟩"; +const raqu$1 = "»"; +const raquo$1 = "»"; +const rarr$1 = "→"; +const rarrap$1 = "⥵"; +const rarrb$1 = "⇥"; +const rarrbfs$1 = "⤠"; +const rarrc$1 = "⤳"; +const rarrfs$1 = "⤞"; +const rarrhk$1 = "↪"; +const rarrlp$1 = "↬"; +const rarrpl$1 = "⥅"; +const rarrsim$1 = "⥴"; +const rarrtl$1 = "↣"; +const rarrw$1 = "↝"; +const ratail$1 = "⤚"; +const ratio$1 = "∶"; +const rationals$1 = "ℚ"; +const rbarr$1 = "⤍"; +const rbbrk$1 = "❳"; +const rbrace$1 = "}"; +const rbrack$1 = "]"; +const rbrke$1 = "⦌"; +const rbrksld$1 = "⦎"; +const rbrkslu$1 = "⦐"; +const rcaron$1 = "ř"; +const rcedil$1 = "ŗ"; +const rceil$1 = "⌉"; +const rcub$1 = "}"; +const rcy$1 = "р"; +const rdca$1 = "⤷"; +const rdldhar$1 = "⥩"; +const rdquo$1 = "”"; +const rdquor$1 = "”"; +const rdsh$1 = "↳"; +const real$1 = "ℜ"; +const realine$1 = "ℛ"; +const realpart$1 = "ℜ"; +const reals$1 = "ℝ"; +const rect$1 = "▭"; +const re$5 = "®"; +const reg$1 = "®"; +const rfisht$1 = "⥽"; +const rfloor$1 = "⌋"; +const rfr$1 = "𝔯"; +const rhard$1 = "⇁"; +const rharu$1 = "⇀"; +const rharul$1 = "⥬"; +const rho$1 = "ρ"; +const rhov$1 = "ϱ"; +const rightarrow$1 = "→"; +const rightarrowtail$1 = "↣"; +const rightharpoondown$1 = "⇁"; +const rightharpoonup$1 = "⇀"; +const rightleftarrows$1 = "⇄"; +const rightleftharpoons$1 = "⇌"; +const rightrightarrows$1 = "⇉"; +const rightsquigarrow$1 = "↝"; +const rightthreetimes$1 = "⋌"; +const ring$1 = "˚"; +const risingdotseq$1 = "≓"; +const rlarr$1 = "⇄"; +const rlhar$1 = "⇌"; +const rlm$1 = "‏"; +const rmoust$1 = "⎱"; +const rmoustache$1 = "⎱"; +const rnmid$1 = "⫮"; +const roang$1 = "⟭"; +const roarr$1 = "⇾"; +const robrk$1 = "⟧"; +const ropar$1 = "⦆"; +const ropf$1 = "𝕣"; +const roplus$1 = "⨮"; +const rotimes$1 = "⨵"; +const rpar$1 = ")"; +const rpargt$1 = "⦔"; +const rppolint$1 = "⨒"; +const rrarr$1 = "⇉"; +const rsaquo$1 = "›"; +const rscr$1 = "𝓇"; +const rsh$1 = "↱"; +const rsqb$1 = "]"; +const rsquo$1 = "’"; +const rsquor$1 = "’"; +const rthree$1 = "⋌"; +const rtimes$1 = "⋊"; +const rtri$1 = "▹"; +const rtrie$1 = "⊵"; +const rtrif$1 = "▸"; +const rtriltri$1 = "⧎"; +const ruluhar$1 = "⥨"; +const rx$1 = "℞"; +const sacute$1 = "ś"; +const sbquo$1 = "‚"; +const sc$1 = "≻"; +const scE$1 = "⪴"; +const scap$1 = "⪸"; +const scaron$1 = "š"; +const sccue$1 = "≽"; +const sce$1 = "⪰"; +const scedil$1 = "ş"; +const scirc$1 = "ŝ"; +const scnE$1 = "⪶"; +const scnap$1 = "⪺"; +const scnsim$1 = "⋩"; +const scpolint$1 = "⨓"; +const scsim$1 = "≿"; +const scy$1 = "с"; +const sdot$1 = "⋅"; +const sdotb$1 = "⊡"; +const sdote$1 = "⩦"; +const seArr$1 = "⇘"; +const searhk$1 = "⤥"; +const searr$1 = "↘"; +const searrow$1 = "↘"; +const sec$1 = "§"; +const sect$1 = "§"; +const semi$1 = ";"; +const seswar$1 = "⤩"; +const setminus$1 = "∖"; +const setmn$1 = "∖"; +const sext$1 = "✶"; +const sfr$1 = "𝔰"; +const sfrown$1 = "⌢"; +const sharp$1 = "♯"; +const shchcy$1 = "щ"; +const shcy$1 = "ш"; +const shortmid$1 = "∣"; +const shortparallel$1 = "∥"; +const sh$1 = "­"; +const shy$1 = "­"; +const sigma$1 = "σ"; +const sigmaf$1 = "ς"; +const sigmav$1 = "ς"; +const sim$1 = "∼"; +const simdot$1 = "⩪"; +const sime$1 = "≃"; +const simeq$1 = "≃"; +const simg$1 = "⪞"; +const simgE$1 = "⪠"; +const siml$1 = "⪝"; +const simlE$1 = "⪟"; +const simne$1 = "≆"; +const simplus$1 = "⨤"; +const simrarr$1 = "⥲"; +const slarr$1 = "←"; +const smallsetminus$1 = "∖"; +const smashp$1 = "⨳"; +const smeparsl$1 = "⧤"; +const smid$1 = "∣"; +const smile$1 = "⌣"; +const smt$1 = "⪪"; +const smte$1 = "⪬"; +const smtes$1 = "⪬︀"; +const softcy$1 = "ь"; +const sol$1 = "/"; +const solb$1 = "⧄"; +const solbar$1 = "⌿"; +const sopf$1 = "𝕤"; +const spades$1 = "♠"; +const spadesuit$1 = "♠"; +const spar$1 = "∥"; +const sqcap$1 = "⊓"; +const sqcaps$1 = "⊓︀"; +const sqcup$1 = "⊔"; +const sqcups$1 = "⊔︀"; +const sqsub$1 = "⊏"; +const sqsube$1 = "⊑"; +const sqsubset$1 = "⊏"; +const sqsubseteq$1 = "⊑"; +const sqsup$1 = "⊐"; +const sqsupe$1 = "⊒"; +const sqsupset$1 = "⊐"; +const sqsupseteq$1 = "⊒"; +const squ$1 = "□"; +const square$1 = "□"; +const squarf$1 = "▪"; +const squf$1 = "▪"; +const srarr$1 = "→"; +const sscr$1 = "𝓈"; +const ssetmn$1 = "∖"; +const ssmile$1 = "⌣"; +const sstarf$1 = "⋆"; +const star$1 = "☆"; +const starf$1 = "★"; +const straightepsilon$1 = "ϵ"; +const straightphi$1 = "ϕ"; +const strns$1 = "¯"; +const sub$1 = "⊂"; +const subE$1 = "⫅"; +const subdot$1 = "⪽"; +const sube$1 = "⊆"; +const subedot$1 = "⫃"; +const submult$1 = "⫁"; +const subnE$1 = "⫋"; +const subne$1 = "⊊"; +const subplus$1 = "⪿"; +const subrarr$1 = "⥹"; +const subset$1 = "⊂"; +const subseteq$1 = "⊆"; +const subseteqq$1 = "⫅"; +const subsetneq$1 = "⊊"; +const subsetneqq$1 = "⫋"; +const subsim$1 = "⫇"; +const subsub$1 = "⫕"; +const subsup$1 = "⫓"; +const succ$1 = "≻"; +const succapprox$1 = "⪸"; +const succcurlyeq$1 = "≽"; +const succeq$1 = "⪰"; +const succnapprox$1 = "⪺"; +const succneqq$1 = "⪶"; +const succnsim$1 = "⋩"; +const succsim$1 = "≿"; +const sum$1 = "∑"; +const sung$1 = "♪"; +const sup$1 = "⊃"; +const sup1$1 = "¹"; +const sup2$1 = "²"; +const sup3$1 = "³"; +const supE$1 = "⫆"; +const supdot$1 = "⪾"; +const supdsub$1 = "⫘"; +const supe$1 = "⊇"; +const supedot$1 = "⫄"; +const suphsol$1 = "⟉"; +const suphsub$1 = "⫗"; +const suplarr$1 = "⥻"; +const supmult$1 = "⫂"; +const supnE$1 = "⫌"; +const supne$1 = "⊋"; +const supplus$1 = "⫀"; +const supset$1 = "⊃"; +const supseteq$1 = "⊇"; +const supseteqq$1 = "⫆"; +const supsetneq$1 = "⊋"; +const supsetneqq$1 = "⫌"; +const supsim$1 = "⫈"; +const supsub$1 = "⫔"; +const supsup$1 = "⫖"; +const swArr$1 = "⇙"; +const swarhk$1 = "⤦"; +const swarr$1 = "↙"; +const swarrow$1 = "↙"; +const swnwar$1 = "⤪"; +const szli$1 = "ß"; +const szlig$1 = "ß"; +const target$1 = "⌖"; +const tau$1 = "τ"; +const tbrk$1 = "⎴"; +const tcaron$1 = "ť"; +const tcedil$1 = "ţ"; +const tcy$1 = "т"; +const tdot$1 = "⃛"; +const telrec$1 = "⌕"; +const tfr$1 = "𝔱"; +const there4$1 = "∴"; +const therefore$1 = "∴"; +const theta$1 = "θ"; +const thetasym$1 = "ϑ"; +const thetav$1 = "ϑ"; +const thickapprox$1 = "≈"; +const thicksim$1 = "∼"; +const thinsp$1 = " "; +const thkap$1 = "≈"; +const thksim$1 = "∼"; +const thor$1 = "þ"; +const thorn$1 = "þ"; +const tilde$1 = "˜"; +const time$1 = "×"; +const times$1 = "×"; +const timesb$1 = "⊠"; +const timesbar$1 = "⨱"; +const timesd$1 = "⨰"; +const tint$1 = "∭"; +const toea$1 = "⤨"; +const top$1 = "⊤"; +const topbot$1 = "⌶"; +const topcir$1 = "⫱"; +const topf$1 = "𝕥"; +const topfork$1 = "⫚"; +const tosa$1 = "⤩"; +const tprime$1 = "‴"; +const trade$1 = "™"; +const triangle$1 = "▵"; +const triangledown$1 = "▿"; +const triangleleft$1 = "◃"; +const trianglelefteq$1 = "⊴"; +const triangleq$1 = "≜"; +const triangleright$1 = "▹"; +const trianglerighteq$1 = "⊵"; +const tridot$1 = "◬"; +const trie$1 = "≜"; +const triminus$1 = "⨺"; +const triplus$1 = "⨹"; +const trisb$1 = "⧍"; +const tritime$1 = "⨻"; +const trpezium$1 = "⏢"; +const tscr$1 = "𝓉"; +const tscy$1 = "ц"; +const tshcy$1 = "ћ"; +const tstrok$1 = "ŧ"; +const twixt$1 = "≬"; +const twoheadleftarrow$1 = "↞"; +const twoheadrightarrow$1 = "↠"; +const uArr$1 = "⇑"; +const uHar$1 = "⥣"; +const uacut$1 = "ú"; +const uacute$1 = "ú"; +const uarr$1 = "↑"; +const ubrcy$1 = "ў"; +const ubreve$1 = "ŭ"; +const ucir$1 = "û"; +const ucirc$1 = "û"; +const ucy$1 = "у"; +const udarr$1 = "⇅"; +const udblac$1 = "ű"; +const udhar$1 = "⥮"; +const ufisht$1 = "⥾"; +const ufr$1 = "𝔲"; +const ugrav$1 = "ù"; +const ugrave$1 = "ù"; +const uharl$1 = "↿"; +const uharr$1 = "↾"; +const uhblk$1 = "▀"; +const ulcorn$1 = "⌜"; +const ulcorner$1 = "⌜"; +const ulcrop$1 = "⌏"; +const ultri$1 = "◸"; +const umacr$1 = "ū"; +const um$1 = "¨"; +const uml$1 = "¨"; +const uogon$1 = "ų"; +const uopf$1 = "𝕦"; +const uparrow$1 = "↑"; +const updownarrow$1 = "↕"; +const upharpoonleft$1 = "↿"; +const upharpoonright$1 = "↾"; +const uplus$1 = "⊎"; +const upsi$1 = "υ"; +const upsih$1 = "ϒ"; +const upsilon$1 = "υ"; +const upuparrows$1 = "⇈"; +const urcorn$1 = "⌝"; +const urcorner$1 = "⌝"; +const urcrop$1 = "⌎"; +const uring$1 = "ů"; +const urtri$1 = "◹"; +const uscr$1 = "𝓊"; +const utdot$1 = "⋰"; +const utilde$1 = "ũ"; +const utri$1 = "▵"; +const utrif$1 = "▴"; +const uuarr$1 = "⇈"; +const uum$1 = "ü"; +const uuml$1 = "ü"; +const uwangle$1 = "⦧"; +const vArr$1 = "⇕"; +const vBar$1 = "⫨"; +const vBarv$1 = "⫩"; +const vDash$1 = "⊨"; +const vangrt$1 = "⦜"; +const varepsilon$1 = "ϵ"; +const varkappa$1 = "ϰ"; +const varnothing$1 = "∅"; +const varphi$1 = "ϕ"; +const varpi$1 = "ϖ"; +const varpropto$1 = "∝"; +const varr$1 = "↕"; +const varrho$1 = "ϱ"; +const varsigma$1 = "ς"; +const varsubsetneq$1 = "⊊︀"; +const varsubsetneqq$1 = "⫋︀"; +const varsupsetneq$1 = "⊋︀"; +const varsupsetneqq$1 = "⫌︀"; +const vartheta$1 = "ϑ"; +const vartriangleleft$1 = "⊲"; +const vartriangleright$1 = "⊳"; +const vcy$1 = "в"; +const vdash$1 = "⊢"; +const vee$1 = "∨"; +const veebar$1 = "⊻"; +const veeeq$1 = "≚"; +const vellip$1 = "⋮"; +const verbar$1 = "|"; +const vert$1 = "|"; +const vfr$1 = "𝔳"; +const vltri$1 = "⊲"; +const vnsub$1 = "⊂⃒"; +const vnsup$1 = "⊃⃒"; +const vopf$1 = "𝕧"; +const vprop$1 = "∝"; +const vrtri$1 = "⊳"; +const vscr$1 = "𝓋"; +const vsubnE$1 = "⫋︀"; +const vsubne$1 = "⊊︀"; +const vsupnE$1 = "⫌︀"; +const vsupne$1 = "⊋︀"; +const vzigzag$1 = "⦚"; +const wcirc$1 = "ŵ"; +const wedbar$1 = "⩟"; +const wedge$1 = "∧"; +const wedgeq$1 = "≙"; +const weierp$1 = "℘"; +const wfr$1 = "𝔴"; +const wopf$1 = "𝕨"; +const wp$1 = "℘"; +const wr$1 = "≀"; +const wreath$1 = "≀"; +const wscr$1 = "𝓌"; +const xcap$1 = "⋂"; +const xcirc$1 = "◯"; +const xcup$1 = "⋃"; +const xdtri$1 = "▽"; +const xfr$1 = "𝔵"; +const xhArr$1 = "⟺"; +const xharr$1 = "⟷"; +const xi$1 = "ξ"; +const xlArr$1 = "⟸"; +const xlarr$1 = "⟵"; +const xmap$1 = "⟼"; +const xnis$1 = "⋻"; +const xodot$1 = "⨀"; +const xopf$1 = "𝕩"; +const xoplus$1 = "⨁"; +const xotime$1 = "⨂"; +const xrArr$1 = "⟹"; +const xrarr$1 = "⟶"; +const xscr$1 = "𝓍"; +const xsqcup$1 = "⨆"; +const xuplus$1 = "⨄"; +const xutri$1 = "△"; +const xvee$1 = "⋁"; +const xwedge$1 = "⋀"; +const yacut$1 = "ý"; +const yacute$1 = "ý"; +const yacy$1 = "я"; +const ycirc$1 = "ŷ"; +const ycy$1 = "ы"; +const ye$1 = "¥"; +const yen$1 = "¥"; +const yfr$1 = "𝔶"; +const yicy$1 = "ї"; +const yopf$1 = "𝕪"; +const yscr$1 = "𝓎"; +const yucy$1 = "ю"; +const yum$1 = "ÿ"; +const yuml$1 = "ÿ"; +const zacute$1 = "ź"; +const zcaron$1 = "ž"; +const zcy$1 = "з"; +const zdot$1 = "ż"; +const zeetrf$1 = "ℨ"; +const zeta$1 = "ζ"; +const zfr$1 = "𝔷"; +const zhcy$1 = "ж"; +const zigrarr$1 = "⇝"; +const zopf$1 = "𝕫"; +const zscr$1 = "𝓏"; +const zwj$1 = "‍"; +const zwnj$1 = "‌"; +var require$$0$1 = { + AEli: AEli$1, + AElig: AElig$1, + AM: AM$1, + AMP: AMP$1, + Aacut: Aacut$1, + Aacute: Aacute$1, + Abreve: Abreve$1, + Acir: Acir$1, + Acirc: Acirc$1, + Acy: Acy$1, + Afr: Afr$1, + Agrav: Agrav$1, + Agrave: Agrave$1, + Alpha: Alpha$1, + Amacr: Amacr$1, + And: And$1, + Aogon: Aogon$1, + Aopf: Aopf$1, + ApplyFunction: ApplyFunction$1, + Arin: Arin$1, + Aring: Aring$1, + Ascr: Ascr$1, + Assign: Assign$1, + Atild: Atild$1, + Atilde: Atilde$1, + Aum: Aum$1, + Auml: Auml$1, + Backslash: Backslash$1, + Barv: Barv$1, + Barwed: Barwed$1, + Bcy: Bcy$1, + Because: Because$1, + Bernoullis: Bernoullis$1, + Beta: Beta$1, + Bfr: Bfr$1, + Bopf: Bopf$1, + Breve: Breve$1, + Bscr: Bscr$1, + Bumpeq: Bumpeq$1, + CHcy: CHcy$1, + COP: COP$1, + COPY: COPY$1, + Cacute: Cacute$1, + Cap: Cap$1, + CapitalDifferentialD: CapitalDifferentialD$1, + Cayleys: Cayleys$1, + Ccaron: Ccaron$1, + Ccedi: Ccedi$1, + Ccedil: Ccedil$1, + Ccirc: Ccirc$1, + Cconint: Cconint$1, + Cdot: Cdot$1, + Cedilla: Cedilla$1, + CenterDot: CenterDot$1, + Cfr: Cfr$1, + Chi: Chi$1, + CircleDot: CircleDot$1, + CircleMinus: CircleMinus$1, + CirclePlus: CirclePlus$1, + CircleTimes: CircleTimes$1, + ClockwiseContourIntegral: ClockwiseContourIntegral$1, + CloseCurlyDoubleQuote: CloseCurlyDoubleQuote$1, + CloseCurlyQuote: CloseCurlyQuote$1, + Colon: Colon$1, + Colone: Colone$1, + Congruent: Congruent$1, + Conint: Conint$1, + ContourIntegral: ContourIntegral$1, + Copf: Copf$1, + Coproduct: Coproduct$1, + CounterClockwiseContourIntegral: CounterClockwiseContourIntegral$1, + Cross: Cross$1, + Cscr: Cscr$1, + Cup: Cup$1, + CupCap: CupCap$1, + DD: DD$1, + DDotrahd: DDotrahd$1, + DJcy: DJcy$1, + DScy: DScy$1, + DZcy: DZcy$1, + Dagger: Dagger$1, + Darr: Darr$1, + Dashv: Dashv$1, + Dcaron: Dcaron$1, + Dcy: Dcy$1, + Del: Del$1, + Delta: Delta$1, + Dfr: Dfr$1, + DiacriticalAcute: DiacriticalAcute$1, + DiacriticalDot: DiacriticalDot$1, + DiacriticalDoubleAcute: DiacriticalDoubleAcute$1, + DiacriticalGrave: DiacriticalGrave$1, + DiacriticalTilde: DiacriticalTilde$1, + Diamond: Diamond$1, + DifferentialD: DifferentialD$1, + Dopf: Dopf$1, + Dot: Dot$1, + DotDot: DotDot$1, + DotEqual: DotEqual$1, + DoubleContourIntegral: DoubleContourIntegral$1, + DoubleDot: DoubleDot$1, + DoubleDownArrow: DoubleDownArrow$1, + DoubleLeftArrow: DoubleLeftArrow$1, + DoubleLeftRightArrow: DoubleLeftRightArrow$1, + DoubleLeftTee: DoubleLeftTee$1, + DoubleLongLeftArrow: DoubleLongLeftArrow$1, + DoubleLongLeftRightArrow: DoubleLongLeftRightArrow$1, + DoubleLongRightArrow: DoubleLongRightArrow$1, + DoubleRightArrow: DoubleRightArrow$1, + DoubleRightTee: DoubleRightTee$1, + DoubleUpArrow: DoubleUpArrow$1, + DoubleUpDownArrow: DoubleUpDownArrow$1, + DoubleVerticalBar: DoubleVerticalBar$1, + DownArrow: DownArrow$1, + DownArrowBar: DownArrowBar$1, + DownArrowUpArrow: DownArrowUpArrow$1, + DownBreve: DownBreve$1, + DownLeftRightVector: DownLeftRightVector$1, + DownLeftTeeVector: DownLeftTeeVector$1, + DownLeftVector: DownLeftVector$1, + DownLeftVectorBar: DownLeftVectorBar$1, + DownRightTeeVector: DownRightTeeVector$1, + DownRightVector: DownRightVector$1, + DownRightVectorBar: DownRightVectorBar$1, + DownTee: DownTee$1, + DownTeeArrow: DownTeeArrow$1, + Downarrow: Downarrow$1, + Dscr: Dscr$1, + Dstrok: Dstrok$1, + ENG: ENG$1, + ET: ET$1, + ETH: ETH$1, + Eacut: Eacut$1, + Eacute: Eacute$1, + Ecaron: Ecaron$1, + Ecir: Ecir$1, + Ecirc: Ecirc$1, + Ecy: Ecy$1, + Edot: Edot$1, + Efr: Efr$1, + Egrav: Egrav$1, + Egrave: Egrave$1, + Element: Element$1, + Emacr: Emacr$1, + EmptySmallSquare: EmptySmallSquare$1, + EmptyVerySmallSquare: EmptyVerySmallSquare$1, + Eogon: Eogon$1, + Eopf: Eopf$1, + Epsilon: Epsilon$1, + Equal: Equal$1, + EqualTilde: EqualTilde$1, + Equilibrium: Equilibrium$1, + Escr: Escr$1, + Esim: Esim$1, + Eta: Eta$1, + Eum: Eum$1, + Euml: Euml$1, + Exists: Exists$1, + ExponentialE: ExponentialE$1, + Fcy: Fcy$1, + Ffr: Ffr$1, + FilledSmallSquare: FilledSmallSquare$1, + FilledVerySmallSquare: FilledVerySmallSquare$1, + Fopf: Fopf$1, + ForAll: ForAll$1, + Fouriertrf: Fouriertrf$1, + Fscr: Fscr$1, + GJcy: GJcy$1, + G: G$1, + GT: GT$1, + Gamma: Gamma$1, + Gammad: Gammad$1, + Gbreve: Gbreve$1, + Gcedil: Gcedil$1, + Gcirc: Gcirc$1, + Gcy: Gcy$1, + Gdot: Gdot$1, + Gfr: Gfr$1, + Gg: Gg$1, + Gopf: Gopf$1, + GreaterEqual: GreaterEqual$1, + GreaterEqualLess: GreaterEqualLess$1, + GreaterFullEqual: GreaterFullEqual$1, + GreaterGreater: GreaterGreater$1, + GreaterLess: GreaterLess$1, + GreaterSlantEqual: GreaterSlantEqual$1, + GreaterTilde: GreaterTilde$1, + Gscr: Gscr$1, + Gt: Gt$1, + HARDcy: HARDcy$1, + Hacek: Hacek$1, + Hat: Hat$1, + Hcirc: Hcirc$1, + Hfr: Hfr$1, + HilbertSpace: HilbertSpace$1, + Hopf: Hopf$1, + HorizontalLine: HorizontalLine$1, + Hscr: Hscr$1, + Hstrok: Hstrok$1, + HumpDownHump: HumpDownHump$1, + HumpEqual: HumpEqual$1, + IEcy: IEcy$1, + IJlig: IJlig$1, + IOcy: IOcy$1, + Iacut: Iacut$1, + Iacute: Iacute$1, + Icir: Icir$1, + Icirc: Icirc$1, + Icy: Icy$1, + Idot: Idot$1, + Ifr: Ifr$1, + Igrav: Igrav$1, + Igrave: Igrave$1, + Im: Im$1, + Imacr: Imacr$1, + ImaginaryI: ImaginaryI$1, + Implies: Implies$1, + Int: Int$1, + Integral: Integral$1, + Intersection: Intersection$1, + InvisibleComma: InvisibleComma$1, + InvisibleTimes: InvisibleTimes$1, + Iogon: Iogon$1, + Iopf: Iopf$1, + Iota: Iota$1, + Iscr: Iscr$1, + Itilde: Itilde$1, + Iukcy: Iukcy$1, + Ium: Ium$1, + Iuml: Iuml$1, + Jcirc: Jcirc$1, + Jcy: Jcy$1, + Jfr: Jfr$1, + Jopf: Jopf$1, + Jscr: Jscr$1, + Jsercy: Jsercy$1, + Jukcy: Jukcy$1, + KHcy: KHcy$1, + KJcy: KJcy$1, + Kappa: Kappa$1, + Kcedil: Kcedil$1, + Kcy: Kcy$1, + Kfr: Kfr$1, + Kopf: Kopf$1, + Kscr: Kscr$1, + LJcy: LJcy$1, + L: L$1, + LT: LT$1, + Lacute: Lacute$1, + Lambda: Lambda$1, + Lang: Lang$1, + Laplacetrf: Laplacetrf$1, + Larr: Larr$1, + Lcaron: Lcaron$1, + Lcedil: Lcedil$1, + Lcy: Lcy$1, + LeftAngleBracket: LeftAngleBracket$1, + LeftArrow: LeftArrow$1, + LeftArrowBar: LeftArrowBar$1, + LeftArrowRightArrow: LeftArrowRightArrow$1, + LeftCeiling: LeftCeiling$1, + LeftDoubleBracket: LeftDoubleBracket$1, + LeftDownTeeVector: LeftDownTeeVector$1, + LeftDownVector: LeftDownVector$1, + LeftDownVectorBar: LeftDownVectorBar$1, + LeftFloor: LeftFloor$1, + LeftRightArrow: LeftRightArrow$1, + LeftRightVector: LeftRightVector$1, + LeftTee: LeftTee$1, + LeftTeeArrow: LeftTeeArrow$1, + LeftTeeVector: LeftTeeVector$1, + LeftTriangle: LeftTriangle$1, + LeftTriangleBar: LeftTriangleBar$1, + LeftTriangleEqual: LeftTriangleEqual$1, + LeftUpDownVector: LeftUpDownVector$1, + LeftUpTeeVector: LeftUpTeeVector$1, + LeftUpVector: LeftUpVector$1, + LeftUpVectorBar: LeftUpVectorBar$1, + LeftVector: LeftVector$1, + LeftVectorBar: LeftVectorBar$1, + Leftarrow: Leftarrow$1, + Leftrightarrow: Leftrightarrow$1, + LessEqualGreater: LessEqualGreater$1, + LessFullEqual: LessFullEqual$1, + LessGreater: LessGreater$1, + LessLess: LessLess$1, + LessSlantEqual: LessSlantEqual$1, + LessTilde: LessTilde$1, + Lfr: Lfr$1, + Ll: Ll$1, + Lleftarrow: Lleftarrow$1, + Lmidot: Lmidot$1, + LongLeftArrow: LongLeftArrow$1, + LongLeftRightArrow: LongLeftRightArrow$1, + LongRightArrow: LongRightArrow$1, + Longleftarrow: Longleftarrow$1, + Longleftrightarrow: Longleftrightarrow$1, + Longrightarrow: Longrightarrow$1, + Lopf: Lopf$1, + LowerLeftArrow: LowerLeftArrow$1, + LowerRightArrow: LowerRightArrow$1, + Lscr: Lscr$1, + Lsh: Lsh$1, + Lstrok: Lstrok$1, + Lt: Lt$1, + "Map": "⤅", + Mcy: Mcy$1, + MediumSpace: MediumSpace$1, + Mellintrf: Mellintrf$1, + Mfr: Mfr$1, + MinusPlus: MinusPlus$1, + Mopf: Mopf$1, + Mscr: Mscr$1, + Mu: Mu$1, + NJcy: NJcy$1, + Nacute: Nacute$1, + Ncaron: Ncaron$1, + Ncedil: Ncedil$1, + Ncy: Ncy$1, + NegativeMediumSpace: NegativeMediumSpace$1, + NegativeThickSpace: NegativeThickSpace$1, + NegativeThinSpace: NegativeThinSpace$1, + NegativeVeryThinSpace: NegativeVeryThinSpace$1, + NestedGreaterGreater: NestedGreaterGreater$1, + NestedLessLess: NestedLessLess$1, + NewLine: NewLine$1, + Nfr: Nfr$1, + NoBreak: NoBreak$1, + NonBreakingSpace: NonBreakingSpace$1, + Nopf: Nopf$1, + Not: Not$1, + NotCongruent: NotCongruent$1, + NotCupCap: NotCupCap$1, + NotDoubleVerticalBar: NotDoubleVerticalBar$1, + NotElement: NotElement$1, + NotEqual: NotEqual$1, + NotEqualTilde: NotEqualTilde$1, + NotExists: NotExists$1, + NotGreater: NotGreater$1, + NotGreaterEqual: NotGreaterEqual$1, + NotGreaterFullEqual: NotGreaterFullEqual$1, + NotGreaterGreater: NotGreaterGreater$1, + NotGreaterLess: NotGreaterLess$1, + NotGreaterSlantEqual: NotGreaterSlantEqual$1, + NotGreaterTilde: NotGreaterTilde$1, + NotHumpDownHump: NotHumpDownHump$1, + NotHumpEqual: NotHumpEqual$1, + NotLeftTriangle: NotLeftTriangle$1, + NotLeftTriangleBar: NotLeftTriangleBar$1, + NotLeftTriangleEqual: NotLeftTriangleEqual$1, + NotLess: NotLess$1, + NotLessEqual: NotLessEqual$1, + NotLessGreater: NotLessGreater$1, + NotLessLess: NotLessLess$1, + NotLessSlantEqual: NotLessSlantEqual$1, + NotLessTilde: NotLessTilde$1, + NotNestedGreaterGreater: NotNestedGreaterGreater$1, + NotNestedLessLess: NotNestedLessLess$1, + NotPrecedes: NotPrecedes$1, + NotPrecedesEqual: NotPrecedesEqual$1, + NotPrecedesSlantEqual: NotPrecedesSlantEqual$1, + NotReverseElement: NotReverseElement$1, + NotRightTriangle: NotRightTriangle$1, + NotRightTriangleBar: NotRightTriangleBar$1, + NotRightTriangleEqual: NotRightTriangleEqual$1, + NotSquareSubset: NotSquareSubset$1, + NotSquareSubsetEqual: NotSquareSubsetEqual$1, + NotSquareSuperset: NotSquareSuperset$1, + NotSquareSupersetEqual: NotSquareSupersetEqual$1, + NotSubset: NotSubset$1, + NotSubsetEqual: NotSubsetEqual$1, + NotSucceeds: NotSucceeds$1, + NotSucceedsEqual: NotSucceedsEqual$1, + NotSucceedsSlantEqual: NotSucceedsSlantEqual$1, + NotSucceedsTilde: NotSucceedsTilde$1, + NotSuperset: NotSuperset$1, + NotSupersetEqual: NotSupersetEqual$1, + NotTilde: NotTilde$1, + NotTildeEqual: NotTildeEqual$1, + NotTildeFullEqual: NotTildeFullEqual$1, + NotTildeTilde: NotTildeTilde$1, + NotVerticalBar: NotVerticalBar$1, + Nscr: Nscr$1, + Ntild: Ntild$1, + Ntilde: Ntilde$1, + Nu: Nu$1, + OElig: OElig$1, + Oacut: Oacut$1, + Oacute: Oacute$1, + Ocir: Ocir$1, + Ocirc: Ocirc$1, + Ocy: Ocy$1, + Odblac: Odblac$1, + Ofr: Ofr$1, + Ograv: Ograv$1, + Ograve: Ograve$1, + Omacr: Omacr$1, + Omega: Omega$1, + Omicron: Omicron$1, + Oopf: Oopf$1, + OpenCurlyDoubleQuote: OpenCurlyDoubleQuote$1, + OpenCurlyQuote: OpenCurlyQuote$1, + Or: Or$1, + Oscr: Oscr$1, + Oslas: Oslas$1, + Oslash: Oslash$1, + Otild: Otild$1, + Otilde: Otilde$1, + Otimes: Otimes$1, + Oum: Oum$1, + Ouml: Ouml$1, + OverBar: OverBar$1, + OverBrace: OverBrace$1, + OverBracket: OverBracket$1, + OverParenthesis: OverParenthesis$1, + PartialD: PartialD$1, + Pcy: Pcy$1, + Pfr: Pfr$1, + Phi: Phi$1, + Pi: Pi$1, + PlusMinus: PlusMinus$1, + Poincareplane: Poincareplane$1, + Popf: Popf$1, + Pr: Pr$1, + Precedes: Precedes$1, + PrecedesEqual: PrecedesEqual$1, + PrecedesSlantEqual: PrecedesSlantEqual$1, + PrecedesTilde: PrecedesTilde$1, + Prime: Prime$1, + Product: Product$1, + Proportion: Proportion$1, + Proportional: Proportional$1, + Pscr: Pscr$1, + Psi: Psi$1, + QUO: QUO$1, + QUOT: QUOT$1, + Qfr: Qfr$1, + Qopf: Qopf$1, + Qscr: Qscr$1, + RBarr: RBarr$1, + RE: RE$1, + REG: REG$1, + Racute: Racute$1, + Rang: Rang$1, + Rarr: Rarr$1, + Rarrtl: Rarrtl$1, + Rcaron: Rcaron$1, + Rcedil: Rcedil$1, + Rcy: Rcy$1, + Re: Re$1, + ReverseElement: ReverseElement$1, + ReverseEquilibrium: ReverseEquilibrium$1, + ReverseUpEquilibrium: ReverseUpEquilibrium$1, + Rfr: Rfr$1, + Rho: Rho$1, + RightAngleBracket: RightAngleBracket$1, + RightArrow: RightArrow$1, + RightArrowBar: RightArrowBar$1, + RightArrowLeftArrow: RightArrowLeftArrow$1, + RightCeiling: RightCeiling$1, + RightDoubleBracket: RightDoubleBracket$1, + RightDownTeeVector: RightDownTeeVector$1, + RightDownVector: RightDownVector$1, + RightDownVectorBar: RightDownVectorBar$1, + RightFloor: RightFloor$1, + RightTee: RightTee$1, + RightTeeArrow: RightTeeArrow$1, + RightTeeVector: RightTeeVector$1, + RightTriangle: RightTriangle$1, + RightTriangleBar: RightTriangleBar$1, + RightTriangleEqual: RightTriangleEqual$1, + RightUpDownVector: RightUpDownVector$1, + RightUpTeeVector: RightUpTeeVector$1, + RightUpVector: RightUpVector$1, + RightUpVectorBar: RightUpVectorBar$1, + RightVector: RightVector$1, + RightVectorBar: RightVectorBar$1, + Rightarrow: Rightarrow$1, + Ropf: Ropf$1, + RoundImplies: RoundImplies$1, + Rrightarrow: Rrightarrow$1, + Rscr: Rscr$1, + Rsh: Rsh$1, + RuleDelayed: RuleDelayed$1, + SHCHcy: SHCHcy$1, + SHcy: SHcy$1, + SOFTcy: SOFTcy$1, + Sacute: Sacute$1, + Sc: Sc$1, + Scaron: Scaron$1, + Scedil: Scedil$1, + Scirc: Scirc$1, + Scy: Scy$1, + Sfr: Sfr$1, + ShortDownArrow: ShortDownArrow$1, + ShortLeftArrow: ShortLeftArrow$1, + ShortRightArrow: ShortRightArrow$1, + ShortUpArrow: ShortUpArrow$1, + Sigma: Sigma$1, + SmallCircle: SmallCircle$1, + Sopf: Sopf$1, + Sqrt: Sqrt$1, + Square: Square$1, + SquareIntersection: SquareIntersection$1, + SquareSubset: SquareSubset$1, + SquareSubsetEqual: SquareSubsetEqual$1, + SquareSuperset: SquareSuperset$1, + SquareSupersetEqual: SquareSupersetEqual$1, + SquareUnion: SquareUnion$1, + Sscr: Sscr$1, + Star: Star$1, + Sub: Sub$1, + Subset: Subset$1, + SubsetEqual: SubsetEqual$1, + Succeeds: Succeeds$1, + SucceedsEqual: SucceedsEqual$1, + SucceedsSlantEqual: SucceedsSlantEqual$1, + SucceedsTilde: SucceedsTilde$1, + SuchThat: SuchThat$1, + Sum: Sum$1, + Sup: Sup$1, + Superset: Superset$1, + SupersetEqual: SupersetEqual$1, + Supset: Supset$1, + THOR: THOR$1, + THORN: THORN$1, + TRADE: TRADE$1, + TSHcy: TSHcy$1, + TScy: TScy$1, + Tab: Tab$1, + Tau: Tau$1, + Tcaron: Tcaron$1, + Tcedil: Tcedil$1, + Tcy: Tcy$1, + Tfr: Tfr$1, + Therefore: Therefore$1, + Theta: Theta$1, + ThickSpace: ThickSpace$1, + ThinSpace: ThinSpace$1, + Tilde: Tilde$1, + TildeEqual: TildeEqual$1, + TildeFullEqual: TildeFullEqual$1, + TildeTilde: TildeTilde$1, + Topf: Topf$1, + TripleDot: TripleDot$1, + Tscr: Tscr$1, + Tstrok: Tstrok$1, + Uacut: Uacut$1, + Uacute: Uacute$1, + Uarr: Uarr$1, + Uarrocir: Uarrocir$1, + Ubrcy: Ubrcy$1, + Ubreve: Ubreve$1, + Ucir: Ucir$1, + Ucirc: Ucirc$1, + Ucy: Ucy$1, + Udblac: Udblac$1, + Ufr: Ufr$1, + Ugrav: Ugrav$1, + Ugrave: Ugrave$1, + Umacr: Umacr$1, + UnderBar: UnderBar$1, + UnderBrace: UnderBrace$1, + UnderBracket: UnderBracket$1, + UnderParenthesis: UnderParenthesis$1, + Union: Union$1, + UnionPlus: UnionPlus$1, + Uogon: Uogon$1, + Uopf: Uopf$1, + UpArrow: UpArrow$1, + UpArrowBar: UpArrowBar$1, + UpArrowDownArrow: UpArrowDownArrow$1, + UpDownArrow: UpDownArrow$1, + UpEquilibrium: UpEquilibrium$1, + UpTee: UpTee$1, + UpTeeArrow: UpTeeArrow$1, + Uparrow: Uparrow$1, + Updownarrow: Updownarrow$1, + UpperLeftArrow: UpperLeftArrow$1, + UpperRightArrow: UpperRightArrow$1, + Upsi: Upsi$1, + Upsilon: Upsilon$1, + Uring: Uring$1, + Uscr: Uscr$1, + Utilde: Utilde$1, + Uum: Uum$1, + Uuml: Uuml$1, + VDash: VDash$1, + Vbar: Vbar$1, + Vcy: Vcy$1, + Vdash: Vdash$1, + Vdashl: Vdashl$1, + Vee: Vee$1, + Verbar: Verbar$1, + Vert: Vert$1, + VerticalBar: VerticalBar$1, + VerticalLine: VerticalLine$1, + VerticalSeparator: VerticalSeparator$1, + VerticalTilde: VerticalTilde$1, + VeryThinSpace: VeryThinSpace$1, + Vfr: Vfr$1, + Vopf: Vopf$1, + Vscr: Vscr$1, + Vvdash: Vvdash$1, + Wcirc: Wcirc$1, + Wedge: Wedge$1, + Wfr: Wfr$1, + Wopf: Wopf$1, + Wscr: Wscr$1, + Xfr: Xfr$1, + Xi: Xi$1, + Xopf: Xopf$1, + Xscr: Xscr$1, + YAcy: YAcy$1, + YIcy: YIcy$1, + YUcy: YUcy$1, + Yacut: Yacut$1, + Yacute: Yacute$1, + Ycirc: Ycirc$1, + Ycy: Ycy$1, + Yfr: Yfr$1, + Yopf: Yopf$1, + Yscr: Yscr$1, + Yuml: Yuml$1, + ZHcy: ZHcy$1, + Zacute: Zacute$1, + Zcaron: Zcaron$1, + Zcy: Zcy$1, + Zdot: Zdot$1, + ZeroWidthSpace: ZeroWidthSpace$1, + Zeta: Zeta$1, + Zfr: Zfr$1, + Zopf: Zopf$1, + Zscr: Zscr$1, + aacut: aacut$1, + aacute: aacute$1, + abreve: abreve$1, + ac: ac$1, + acE: acE$1, + acd: acd$1, + acir: acir$1, + acirc: acirc$1, + acut: acut$1, + acute: acute$1, + acy: acy$1, + aeli: aeli$1, + aelig: aelig$1, + af: af$1, + afr: afr$1, + agrav: agrav$1, + agrave: agrave$1, + alefsym: alefsym$1, + aleph: aleph$1, + alpha: alpha$1, + amacr: amacr$1, + amalg: amalg$1, + am: am$1, + amp: amp$1, + and: and$1, + andand: andand$1, + andd: andd$1, + andslope: andslope$1, + andv: andv$1, + ang: ang$1, + ange: ange$1, + angle: angle$1, + angmsd: angmsd$1, + angmsdaa: angmsdaa$1, + angmsdab: angmsdab$1, + angmsdac: angmsdac$1, + angmsdad: angmsdad$1, + angmsdae: angmsdae$1, + angmsdaf: angmsdaf$1, + angmsdag: angmsdag$1, + angmsdah: angmsdah$1, + angrt: angrt$1, + angrtvb: angrtvb$1, + angrtvbd: angrtvbd$1, + angsph: angsph$1, + angst: angst$1, + angzarr: angzarr$1, + aogon: aogon$1, + aopf: aopf$1, + ap: ap$1, + apE: apE$1, + apacir: apacir$1, + ape: ape$1, + apid: apid$1, + apos: apos$1, + approx: approx$1, + approxeq: approxeq$1, + arin: arin$1, + aring: aring$1, + ascr: ascr$1, + ast: ast$1, + asymp: asymp$1, + asympeq: asympeq$1, + atild: atild$1, + atilde: atilde$1, + aum: aum$1, + auml: auml$1, + awconint: awconint$1, + awint: awint$1, + bNot: bNot$1, + backcong: backcong$1, + backepsilon: backepsilon$1, + backprime: backprime$1, + backsim: backsim$1, + backsimeq: backsimeq$1, + barvee: barvee$1, + barwed: barwed$1, + barwedge: barwedge$1, + bbrk: bbrk$1, + bbrktbrk: bbrktbrk$1, + bcong: bcong$1, + bcy: bcy$1, + bdquo: bdquo$1, + becaus: becaus$1, + because: because$1, + bemptyv: bemptyv$1, + bepsi: bepsi$1, + bernou: bernou$1, + beta: beta$1, + beth: beth$1, + between: between$1, + bfr: bfr$1, + bigcap: bigcap$1, + bigcirc: bigcirc$1, + bigcup: bigcup$1, + bigodot: bigodot$1, + bigoplus: bigoplus$1, + bigotimes: bigotimes$1, + bigsqcup: bigsqcup$1, + bigstar: bigstar$1, + bigtriangledown: bigtriangledown$1, + bigtriangleup: bigtriangleup$1, + biguplus: biguplus$1, + bigvee: bigvee$1, + bigwedge: bigwedge$1, + bkarow: bkarow$1, + blacklozenge: blacklozenge$1, + blacksquare: blacksquare$1, + blacktriangle: blacktriangle$1, + blacktriangledown: blacktriangledown$1, + blacktriangleleft: blacktriangleleft$1, + blacktriangleright: blacktriangleright$1, + blank: blank$1, + blk12: blk12$1, + blk14: blk14$1, + blk34: blk34$1, + block: block$1, + bne: bne$1, + bnequiv: bnequiv$1, + bnot: bnot$1, + bopf: bopf$1, + bot: bot$1, + bottom: bottom$1, + bowtie: bowtie$1, + boxDL: boxDL$1, + boxDR: boxDR$1, + boxDl: boxDl$1, + boxDr: boxDr$1, + boxH: boxH$1, + boxHD: boxHD$1, + boxHU: boxHU$1, + boxHd: boxHd$1, + boxHu: boxHu$1, + boxUL: boxUL$1, + boxUR: boxUR$1, + boxUl: boxUl$1, + boxUr: boxUr$1, + boxV: boxV$1, + boxVH: boxVH$1, + boxVL: boxVL$1, + boxVR: boxVR$1, + boxVh: boxVh$1, + boxVl: boxVl$1, + boxVr: boxVr$1, + boxbox: boxbox$1, + boxdL: boxdL$1, + boxdR: boxdR$1, + boxdl: boxdl$1, + boxdr: boxdr$1, + boxh: boxh$1, + boxhD: boxhD$1, + boxhU: boxhU$1, + boxhd: boxhd$1, + boxhu: boxhu$1, + boxminus: boxminus$1, + boxplus: boxplus$1, + boxtimes: boxtimes$1, + boxuL: boxuL$1, + boxuR: boxuR$1, + boxul: boxul$1, + boxur: boxur$1, + boxv: boxv$1, + boxvH: boxvH$1, + boxvL: boxvL$1, + boxvR: boxvR$1, + boxvh: boxvh$1, + boxvl: boxvl$1, + boxvr: boxvr$1, + bprime: bprime$1, + breve: breve$1, + brvba: brvba$1, + brvbar: brvbar$1, + bscr: bscr$1, + bsemi: bsemi$1, + bsim: bsim$1, + bsime: bsime$1, + bsol: bsol$1, + bsolb: bsolb$1, + bsolhsub: bsolhsub$1, + bull: bull$1, + bullet: bullet$1, + bump: bump$1, + bumpE: bumpE$1, + bumpe: bumpe$1, + bumpeq: bumpeq$1, + cacute: cacute$1, + cap: cap$1, + capand: capand$1, + capbrcup: capbrcup$1, + capcap: capcap$1, + capcup: capcup$1, + capdot: capdot$1, + caps: caps$1, + caret: caret$1, + caron: caron$1, + ccaps: ccaps$1, + ccaron: ccaron$1, + ccedi: ccedi$1, + ccedil: ccedil$1, + ccirc: ccirc$1, + ccups: ccups$1, + ccupssm: ccupssm$1, + cdot: cdot$1, + cedi: cedi$1, + cedil: cedil$1, + cemptyv: cemptyv$1, + cen: cen$1, + cent: cent$1, + centerdot: centerdot$1, + cfr: cfr$1, + chcy: chcy$1, + check: check$2, + checkmark: checkmark$1, + chi: chi$1, + cir: cir$1, + cirE: cirE$1, + circ: circ$1, + circeq: circeq$1, + circlearrowleft: circlearrowleft$1, + circlearrowright: circlearrowright$1, + circledR: circledR$1, + circledS: circledS$1, + circledast: circledast$1, + circledcirc: circledcirc$1, + circleddash: circleddash$1, + cire: cire$1, + cirfnint: cirfnint$1, + cirmid: cirmid$1, + cirscir: cirscir$1, + clubs: clubs$1, + clubsuit: clubsuit$1, + colon: colon$1, + colone: colone$1, + coloneq: coloneq$1, + comma: comma$1, + commat: commat$1, + comp: comp$1, + compfn: compfn$1, + complement: complement$1, + complexes: complexes$1, + cong: cong$1, + congdot: congdot$1, + conint: conint$1, + copf: copf$1, + coprod: coprod$1, + cop: cop$1, + copy: copy$1, + copysr: copysr$1, + crarr: crarr$1, + cross: cross$1, + cscr: cscr$1, + csub: csub$1, + csube: csube$1, + csup: csup$1, + csupe: csupe$1, + ctdot: ctdot$1, + cudarrl: cudarrl$1, + cudarrr: cudarrr$1, + cuepr: cuepr$1, + cuesc: cuesc$1, + cularr: cularr$1, + cularrp: cularrp$1, + cup: cup$1, + cupbrcap: cupbrcap$1, + cupcap: cupcap$1, + cupcup: cupcup$1, + cupdot: cupdot$1, + cupor: cupor$1, + cups: cups$1, + curarr: curarr$1, + curarrm: curarrm$1, + curlyeqprec: curlyeqprec$1, + curlyeqsucc: curlyeqsucc$1, + curlyvee: curlyvee$1, + curlywedge: curlywedge$1, + curre: curre$1, + curren: curren$1, + curvearrowleft: curvearrowleft$1, + curvearrowright: curvearrowright$1, + cuvee: cuvee$1, + cuwed: cuwed$1, + cwconint: cwconint$1, + cwint: cwint$1, + cylcty: cylcty$1, + dArr: dArr$1, + dHar: dHar$1, + dagger: dagger$1, + daleth: daleth$1, + darr: darr$1, + dash: dash$1, + dashv: dashv$1, + dbkarow: dbkarow$1, + dblac: dblac$1, + dcaron: dcaron$1, + dcy: dcy$1, + dd: dd$1, + ddagger: ddagger$1, + ddarr: ddarr$1, + ddotseq: ddotseq$1, + de: de$1, + deg: deg$1, + delta: delta$1, + demptyv: demptyv$1, + dfisht: dfisht$1, + dfr: dfr$1, + dharl: dharl$1, + dharr: dharr$1, + diam: diam$1, + diamond: diamond$1, + diamondsuit: diamondsuit$1, + diams: diams$1, + die: die$1, + digamma: digamma$1, + disin: disin$1, + div: div$1, + divid: divid$1, + divide: divide$1, + divideontimes: divideontimes$1, + divonx: divonx$1, + djcy: djcy$1, + dlcorn: dlcorn$1, + dlcrop: dlcrop$1, + dollar: dollar$1, + dopf: dopf$1, + dot: dot$1, + doteq: doteq$1, + doteqdot: doteqdot$1, + dotminus: dotminus$1, + dotplus: dotplus$1, + dotsquare: dotsquare$1, + doublebarwedge: doublebarwedge$1, + downarrow: downarrow$1, + downdownarrows: downdownarrows$1, + downharpoonleft: downharpoonleft$1, + downharpoonright: downharpoonright$1, + drbkarow: drbkarow$1, + drcorn: drcorn$1, + drcrop: drcrop$1, + dscr: dscr$1, + dscy: dscy$1, + dsol: dsol$1, + dstrok: dstrok$1, + dtdot: dtdot$1, + dtri: dtri$1, + dtrif: dtrif$1, + duarr: duarr$1, + duhar: duhar$1, + dwangle: dwangle$1, + dzcy: dzcy$1, + dzigrarr: dzigrarr$1, + eDDot: eDDot$1, + eDot: eDot$1, + eacut: eacut$1, + eacute: eacute$1, + easter: easter$1, + ecaron: ecaron$1, + ecir: ecir$1, + ecirc: ecirc$1, + ecolon: ecolon$1, + ecy: ecy$1, + edot: edot$1, + ee: ee$1, + efDot: efDot$1, + efr: efr$1, + eg: eg$1, + egrav: egrav$1, + egrave: egrave$1, + egs: egs$1, + egsdot: egsdot$1, + el: el$1, + elinters: elinters$1, + ell: ell$1, + els: els$1, + elsdot: elsdot$1, + emacr: emacr$1, + empty: empty$1, + emptyset: emptyset$1, + emptyv: emptyv$1, + emsp13: emsp13$1, + emsp14: emsp14$1, + emsp: emsp$1, + eng: eng$1, + ensp: ensp$1, + eogon: eogon$1, + eopf: eopf$1, + epar: epar$1, + eparsl: eparsl$1, + eplus: eplus$1, + epsi: epsi$1, + epsilon: epsilon$1, + epsiv: epsiv$1, + eqcirc: eqcirc$1, + eqcolon: eqcolon$1, + eqsim: eqsim$1, + eqslantgtr: eqslantgtr$1, + eqslantless: eqslantless$1, + equals: equals$1, + equest: equest$1, + equiv: equiv$1, + equivDD: equivDD$1, + eqvparsl: eqvparsl$1, + erDot: erDot$1, + erarr: erarr$1, + escr: escr$1, + esdot: esdot$1, + esim: esim$1, + eta: eta$1, + et: et$1, + eth: eth$1, + eum: eum$1, + euml: euml$1, + euro: euro$1, + excl: excl$1, + exist: exist$1, + expectation: expectation$1, + exponentiale: exponentiale$1, + fallingdotseq: fallingdotseq$1, + fcy: fcy$1, + female: female$1, + ffilig: ffilig$1, + fflig: fflig$1, + ffllig: ffllig$1, + ffr: ffr$1, + filig: filig$1, + fjlig: fjlig$1, + flat: flat$1, + fllig: fllig$1, + fltns: fltns$1, + fnof: fnof$1, + fopf: fopf$1, + forall: forall$1, + fork: fork$1, + forkv: forkv$1, + fpartint: fpartint$1, + frac1: frac1$1, + frac12: frac12$1, + frac13: frac13$1, + frac14: frac14$1, + frac15: frac15$1, + frac16: frac16$1, + frac18: frac18$1, + frac23: frac23$1, + frac25: frac25$1, + frac3: frac3$1, + frac34: frac34$1, + frac35: frac35$1, + frac38: frac38$1, + frac45: frac45$1, + frac56: frac56$1, + frac58: frac58$1, + frac78: frac78$1, + frasl: frasl$1, + frown: frown$1, + fscr: fscr$1, + gE: gE$1, + gEl: gEl$1, + gacute: gacute$1, + gamma: gamma$1, + gammad: gammad$1, + gap: gap$1, + gbreve: gbreve$1, + gcirc: gcirc$1, + gcy: gcy$1, + gdot: gdot$1, + ge: ge$1, + gel: gel$1, + geq: geq$1, + geqq: geqq$1, + geqslant: geqslant$1, + ges: ges$1, + gescc: gescc$1, + gesdot: gesdot$1, + gesdoto: gesdoto$1, + gesdotol: gesdotol$1, + gesl: gesl$1, + gesles: gesles$1, + gfr: gfr$1, + gg: gg$1, + ggg: ggg$1, + gimel: gimel$1, + gjcy: gjcy$1, + gl: gl$1, + glE: glE$1, + gla: gla$1, + glj: glj$1, + gnE: gnE$1, + gnap: gnap$1, + gnapprox: gnapprox$1, + gne: gne$1, + gneq: gneq$1, + gneqq: gneqq$1, + gnsim: gnsim$1, + gopf: gopf$1, + grave: grave$1, + gscr: gscr$1, + gsim: gsim$1, + gsime: gsime$1, + gsiml: gsiml$1, + g: g$1, + gt: gt$1, + gtcc: gtcc$1, + gtcir: gtcir$1, + gtdot: gtdot$1, + gtlPar: gtlPar$1, + gtquest: gtquest$1, + gtrapprox: gtrapprox$1, + gtrarr: gtrarr$1, + gtrdot: gtrdot$1, + gtreqless: gtreqless$1, + gtreqqless: gtreqqless$1, + gtrless: gtrless$1, + gtrsim: gtrsim$1, + gvertneqq: gvertneqq$1, + gvnE: gvnE$1, + hArr: hArr$1, + hairsp: hairsp$1, + half: half$1, + hamilt: hamilt$1, + hardcy: hardcy$1, + harr: harr$1, + harrcir: harrcir$1, + harrw: harrw$1, + hbar: hbar$1, + hcirc: hcirc$1, + hearts: hearts$1, + heartsuit: heartsuit$1, + hellip: hellip$1, + hercon: hercon$1, + hfr: hfr$1, + hksearow: hksearow$1, + hkswarow: hkswarow$1, + hoarr: hoarr$1, + homtht: homtht$1, + hookleftarrow: hookleftarrow$1, + hookrightarrow: hookrightarrow$1, + hopf: hopf$1, + horbar: horbar$1, + hscr: hscr$1, + hslash: hslash$1, + hstrok: hstrok$1, + hybull: hybull$1, + hyphen: hyphen$1, + iacut: iacut$1, + iacute: iacute$1, + ic: ic$1, + icir: icir$1, + icirc: icirc$1, + icy: icy$1, + iecy: iecy$1, + iexc: iexc$1, + iexcl: iexcl$1, + iff: iff$1, + ifr: ifr$1, + igrav: igrav$1, + igrave: igrave$1, + ii: ii$1, + iiiint: iiiint$1, + iiint: iiint$1, + iinfin: iinfin$1, + iiota: iiota$1, + ijlig: ijlig$1, + imacr: imacr$1, + image: image$2, + imagline: imagline$1, + imagpart: imagpart$1, + imath: imath$1, + imof: imof$1, + imped: imped$1, + "in": "∈", + incare: incare$1, + infin: infin$1, + infintie: infintie$1, + inodot: inodot$1, + int: int$2, + intcal: intcal$1, + integers: integers$1, + intercal: intercal$1, + intlarhk: intlarhk$1, + intprod: intprod$1, + iocy: iocy$1, + iogon: iogon$1, + iopf: iopf$1, + iota: iota$1, + iprod: iprod$1, + iques: iques$1, + iquest: iquest$1, + iscr: iscr$1, + isin: isin$1, + isinE: isinE$1, + isindot: isindot$1, + isins: isins$1, + isinsv: isinsv$1, + isinv: isinv$1, + it: it$1, + itilde: itilde$1, + iukcy: iukcy$1, + ium: ium$1, + iuml: iuml$1, + jcirc: jcirc$1, + jcy: jcy$1, + jfr: jfr$1, + jmath: jmath$1, + jopf: jopf$1, + jscr: jscr$1, + jsercy: jsercy$1, + jukcy: jukcy$1, + kappa: kappa$1, + kappav: kappav$1, + kcedil: kcedil$1, + kcy: kcy$1, + kfr: kfr$1, + kgreen: kgreen$1, + khcy: khcy$1, + kjcy: kjcy$1, + kopf: kopf$1, + kscr: kscr$1, + lAarr: lAarr$1, + lArr: lArr$1, + lAtail: lAtail$1, + lBarr: lBarr$1, + lE: lE$1, + lEg: lEg$1, + lHar: lHar$1, + lacute: lacute$1, + laemptyv: laemptyv$1, + lagran: lagran$1, + lambda: lambda$1, + lang: lang$1, + langd: langd$1, + langle: langle$1, + lap: lap$1, + laqu: laqu$1, + laquo: laquo$1, + larr: larr$1, + larrb: larrb$1, + larrbfs: larrbfs$1, + larrfs: larrfs$1, + larrhk: larrhk$1, + larrlp: larrlp$1, + larrpl: larrpl$1, + larrsim: larrsim$1, + larrtl: larrtl$1, + lat: lat$1, + latail: latail$1, + late: late$1, + lates: lates$1, + lbarr: lbarr$1, + lbbrk: lbbrk$1, + lbrace: lbrace$1, + lbrack: lbrack$1, + lbrke: lbrke$1, + lbrksld: lbrksld$1, + lbrkslu: lbrkslu$1, + lcaron: lcaron$1, + lcedil: lcedil$1, + lceil: lceil$1, + lcub: lcub$1, + lcy: lcy$1, + ldca: ldca$1, + ldquo: ldquo$1, + ldquor: ldquor$1, + ldrdhar: ldrdhar$1, + ldrushar: ldrushar$1, + ldsh: ldsh$1, + le: le$1, + leftarrow: leftarrow$1, + leftarrowtail: leftarrowtail$1, + leftharpoondown: leftharpoondown$1, + leftharpoonup: leftharpoonup$1, + leftleftarrows: leftleftarrows$1, + leftrightarrow: leftrightarrow$1, + leftrightarrows: leftrightarrows$1, + leftrightharpoons: leftrightharpoons$1, + leftrightsquigarrow: leftrightsquigarrow$1, + leftthreetimes: leftthreetimes$1, + leg: leg$1, + leq: leq$1, + leqq: leqq$1, + leqslant: leqslant$1, + les: les$1, + lescc: lescc$1, + lesdot: lesdot$1, + lesdoto: lesdoto$1, + lesdotor: lesdotor$1, + lesg: lesg$1, + lesges: lesges$1, + lessapprox: lessapprox$1, + lessdot: lessdot$1, + lesseqgtr: lesseqgtr$1, + lesseqqgtr: lesseqqgtr$1, + lessgtr: lessgtr$1, + lesssim: lesssim$1, + lfisht: lfisht$1, + lfloor: lfloor$1, + lfr: lfr$1, + lg: lg$1, + lgE: lgE$1, + lhard: lhard$1, + lharu: lharu$1, + lharul: lharul$1, + lhblk: lhblk$1, + ljcy: ljcy$1, + ll: ll$1, + llarr: llarr$1, + llcorner: llcorner$1, + llhard: llhard$1, + lltri: lltri$1, + lmidot: lmidot$1, + lmoust: lmoust$1, + lmoustache: lmoustache$1, + lnE: lnE$1, + lnap: lnap$1, + lnapprox: lnapprox$1, + lne: lne$1, + lneq: lneq$1, + lneqq: lneqq$1, + lnsim: lnsim$1, + loang: loang$1, + loarr: loarr$1, + lobrk: lobrk$1, + longleftarrow: longleftarrow$1, + longleftrightarrow: longleftrightarrow$1, + longmapsto: longmapsto$1, + longrightarrow: longrightarrow$1, + looparrowleft: looparrowleft$1, + looparrowright: looparrowright$1, + lopar: lopar$1, + lopf: lopf$1, + loplus: loplus$1, + lotimes: lotimes$1, + lowast: lowast$1, + lowbar: lowbar$1, + loz: loz$1, + lozenge: lozenge$1, + lozf: lozf$1, + lpar: lpar$1, + lparlt: lparlt$1, + lrarr: lrarr$1, + lrcorner: lrcorner$1, + lrhar: lrhar$1, + lrhard: lrhard$1, + lrm: lrm$1, + lrtri: lrtri$1, + lsaquo: lsaquo$1, + lscr: lscr$1, + lsh: lsh$1, + lsim: lsim$1, + lsime: lsime$1, + lsimg: lsimg$1, + lsqb: lsqb$1, + lsquo: lsquo$1, + lsquor: lsquor$1, + lstrok: lstrok$1, + l: l$1, + lt: lt$2, + ltcc: ltcc$1, + ltcir: ltcir$1, + ltdot: ltdot$1, + lthree: lthree$1, + ltimes: ltimes$1, + ltlarr: ltlarr$1, + ltquest: ltquest$1, + ltrPar: ltrPar$1, + ltri: ltri$1, + ltrie: ltrie$1, + ltrif: ltrif$1, + lurdshar: lurdshar$1, + luruhar: luruhar$1, + lvertneqq: lvertneqq$1, + lvnE: lvnE$1, + mDDot: mDDot$1, + mac: mac$1, + macr: macr$1, + male: male$1, + malt: malt$1, + maltese: maltese$1, + map: map$4, + mapsto: mapsto$1, + mapstodown: mapstodown$1, + mapstoleft: mapstoleft$1, + mapstoup: mapstoup$1, + marker: marker$1, + mcomma: mcomma$1, + mcy: mcy$1, + mdash: mdash$1, + measuredangle: measuredangle$1, + mfr: mfr$1, + mho: mho$1, + micr: micr$1, + micro: micro$1, + mid: mid$1, + midast: midast$1, + midcir: midcir$1, + middo: middo$1, + middot: middot$1, + minus: minus$1, + minusb: minusb$1, + minusd: minusd$1, + minusdu: minusdu$1, + mlcp: mlcp$1, + mldr: mldr$1, + mnplus: mnplus$1, + models: models$1, + mopf: mopf$1, + mp: mp$1, + mscr: mscr$1, + mstpos: mstpos$1, + mu: mu$1, + multimap: multimap$1, + mumap: mumap$1, + nGg: nGg$1, + nGt: nGt$1, + nGtv: nGtv$1, + nLeftarrow: nLeftarrow$1, + nLeftrightarrow: nLeftrightarrow$1, + nLl: nLl$1, + nLt: nLt$1, + nLtv: nLtv$1, + nRightarrow: nRightarrow$1, + nVDash: nVDash$1, + nVdash: nVdash$1, + nabla: nabla$1, + nacute: nacute$1, + nang: nang$1, + nap: nap$1, + napE: napE$1, + napid: napid$1, + napos: napos$1, + napprox: napprox$1, + natur: natur$1, + natural: natural$1, + naturals: naturals$1, + nbs: nbs$1, + nbsp: nbsp$1, + nbump: nbump$1, + nbumpe: nbumpe$1, + ncap: ncap$1, + ncaron: ncaron$1, + ncedil: ncedil$1, + ncong: ncong$1, + ncongdot: ncongdot$1, + ncup: ncup$1, + ncy: ncy$1, + ndash: ndash$1, + ne: ne$1, + neArr: neArr$1, + nearhk: nearhk$1, + nearr: nearr$1, + nearrow: nearrow$1, + nedot: nedot$1, + nequiv: nequiv$1, + nesear: nesear$1, + nesim: nesim$1, + nexist: nexist$1, + nexists: nexists$1, + nfr: nfr$1, + ngE: ngE$1, + nge: nge$1, + ngeq: ngeq$1, + ngeqq: ngeqq$1, + ngeqslant: ngeqslant$1, + nges: nges$1, + ngsim: ngsim$1, + ngt: ngt$1, + ngtr: ngtr$1, + nhArr: nhArr$1, + nharr: nharr$1, + nhpar: nhpar$1, + ni: ni$1, + nis: nis$1, + nisd: nisd$1, + niv: niv$1, + njcy: njcy$1, + nlArr: nlArr$1, + nlE: nlE$1, + nlarr: nlarr$1, + nldr: nldr$1, + nle: nle$1, + nleftarrow: nleftarrow$1, + nleftrightarrow: nleftrightarrow$1, + nleq: nleq$1, + nleqq: nleqq$1, + nleqslant: nleqslant$1, + nles: nles$1, + nless: nless$1, + nlsim: nlsim$1, + nlt: nlt$1, + nltri: nltri$1, + nltrie: nltrie$1, + nmid: nmid$1, + nopf: nopf$1, + no: no$1, + not: not$1, + notin: notin$1, + notinE: notinE$1, + notindot: notindot$1, + notinva: notinva$1, + notinvb: notinvb$1, + notinvc: notinvc$1, + notni: notni$1, + notniva: notniva$1, + notnivb: notnivb$1, + notnivc: notnivc$1, + npar: npar$1, + nparallel: nparallel$1, + nparsl: nparsl$1, + npart: npart$1, + npolint: npolint$1, + npr: npr$1, + nprcue: nprcue$1, + npre: npre$1, + nprec: nprec$1, + npreceq: npreceq$1, + nrArr: nrArr$1, + nrarr: nrarr$1, + nrarrc: nrarrc$1, + nrarrw: nrarrw$1, + nrightarrow: nrightarrow$1, + nrtri: nrtri$1, + nrtrie: nrtrie$1, + nsc: nsc$1, + nsccue: nsccue$1, + nsce: nsce$1, + nscr: nscr$1, + nshortmid: nshortmid$1, + nshortparallel: nshortparallel$1, + nsim: nsim$1, + nsime: nsime$1, + nsimeq: nsimeq$1, + nsmid: nsmid$1, + nspar: nspar$1, + nsqsube: nsqsube$1, + nsqsupe: nsqsupe$1, + nsub: nsub$1, + nsubE: nsubE$1, + nsube: nsube$1, + nsubset: nsubset$1, + nsubseteq: nsubseteq$1, + nsubseteqq: nsubseteqq$1, + nsucc: nsucc$1, + nsucceq: nsucceq$1, + nsup: nsup$1, + nsupE: nsupE$1, + nsupe: nsupe$1, + nsupset: nsupset$1, + nsupseteq: nsupseteq$1, + nsupseteqq: nsupseteqq$1, + ntgl: ntgl$1, + ntild: ntild$1, + ntilde: ntilde$1, + ntlg: ntlg$1, + ntriangleleft: ntriangleleft$1, + ntrianglelefteq: ntrianglelefteq$1, + ntriangleright: ntriangleright$1, + ntrianglerighteq: ntrianglerighteq$1, + nu: nu$1, + num: num$1, + numero: numero$1, + numsp: numsp$1, + nvDash: nvDash$1, + nvHarr: nvHarr$1, + nvap: nvap$1, + nvdash: nvdash$1, + nvge: nvge$1, + nvgt: nvgt$1, + nvinfin: nvinfin$1, + nvlArr: nvlArr$1, + nvle: nvle$1, + nvlt: nvlt$1, + nvltrie: nvltrie$1, + nvrArr: nvrArr$1, + nvrtrie: nvrtrie$1, + nvsim: nvsim$1, + nwArr: nwArr$1, + nwarhk: nwarhk$1, + nwarr: nwarr$1, + nwarrow: nwarrow$1, + nwnear: nwnear$1, + oS: oS$1, + oacut: oacut$1, + oacute: oacute$1, + oast: oast$1, + ocir: ocir$1, + ocirc: ocirc$1, + ocy: ocy$1, + odash: odash$1, + odblac: odblac$1, + odiv: odiv$1, + odot: odot$1, + odsold: odsold$1, + oelig: oelig$1, + ofcir: ofcir$1, + ofr: ofr$1, + ogon: ogon$1, + ograv: ograv$1, + ograve: ograve$1, + ogt: ogt$1, + ohbar: ohbar$1, + ohm: ohm$1, + oint: oint$1, + olarr: olarr$1, + olcir: olcir$1, + olcross: olcross$1, + oline: oline$1, + olt: olt$1, + omacr: omacr$1, + omega: omega$1, + omicron: omicron$1, + omid: omid$1, + ominus: ominus$1, + oopf: oopf$1, + opar: opar$1, + operp: operp$1, + oplus: oplus$1, + or: or$1, + orarr: orarr$1, + ord: ord$1, + order: order$1, + orderof: orderof$1, + ordf: ordf$1, + ordm: ordm$1, + origof: origof$1, + oror: oror$1, + orslope: orslope$1, + orv: orv$1, + oscr: oscr$1, + oslas: oslas$1, + oslash: oslash$1, + osol: osol$1, + otild: otild$1, + otilde: otilde$1, + otimes: otimes$1, + otimesas: otimesas$1, + oum: oum$1, + ouml: ouml$1, + ovbar: ovbar$1, + par: par$1, + para: para$1, + parallel: parallel$1, + parsim: parsim$1, + parsl: parsl$1, + part: part$1, + pcy: pcy$1, + percnt: percnt$1, + period: period$1, + permil: permil$1, + perp: perp$1, + pertenk: pertenk$1, + pfr: pfr$1, + phi: phi$1, + phiv: phiv$1, + phmmat: phmmat$1, + phone: phone$1, + pi: pi$1, + pitchfork: pitchfork$1, + piv: piv$1, + planck: planck$1, + planckh: planckh$1, + plankv: plankv$1, + plus: plus$1, + plusacir: plusacir$1, + plusb: plusb$1, + pluscir: pluscir$1, + plusdo: plusdo$1, + plusdu: plusdu$1, + pluse: pluse$1, + plusm: plusm$1, + plusmn: plusmn$1, + plussim: plussim$1, + plustwo: plustwo$1, + pm: pm$1, + pointint: pointint$1, + popf: popf$1, + poun: poun$1, + pound: pound$1, + pr: pr$1, + prE: prE$1, + prap: prap$1, + prcue: prcue$1, + pre: pre$1, + prec: prec$1, + precapprox: precapprox$1, + preccurlyeq: preccurlyeq$1, + preceq: preceq$1, + precnapprox: precnapprox$1, + precneqq: precneqq$1, + precnsim: precnsim$1, + precsim: precsim$1, + prime: prime$1, + primes: primes$1, + prnE: prnE$1, + prnap: prnap$1, + prnsim: prnsim$1, + prod: prod$1, + profalar: profalar$1, + profline: profline$1, + profsurf: profsurf$1, + prop: prop$1, + propto: propto$1, + prsim: prsim$1, + prurel: prurel$1, + pscr: pscr$1, + psi: psi$1, + puncsp: puncsp$1, + qfr: qfr$1, + qint: qint$1, + qopf: qopf$1, + qprime: qprime$1, + qscr: qscr$1, + quaternions: quaternions$1, + quatint: quatint$1, + quest: quest$1, + questeq: questeq$1, + quo: quo$1, + quot: quot$1, + rAarr: rAarr$1, + rArr: rArr$1, + rAtail: rAtail$1, + rBarr: rBarr$1, + rHar: rHar$1, + race: race$1, + racute: racute$1, + radic: radic$1, + raemptyv: raemptyv$1, + rang: rang$1, + rangd: rangd$1, + range: range$1, + rangle: rangle$1, + raqu: raqu$1, + raquo: raquo$1, + rarr: rarr$1, + rarrap: rarrap$1, + rarrb: rarrb$1, + rarrbfs: rarrbfs$1, + rarrc: rarrc$1, + rarrfs: rarrfs$1, + rarrhk: rarrhk$1, + rarrlp: rarrlp$1, + rarrpl: rarrpl$1, + rarrsim: rarrsim$1, + rarrtl: rarrtl$1, + rarrw: rarrw$1, + ratail: ratail$1, + ratio: ratio$1, + rationals: rationals$1, + rbarr: rbarr$1, + rbbrk: rbbrk$1, + rbrace: rbrace$1, + rbrack: rbrack$1, + rbrke: rbrke$1, + rbrksld: rbrksld$1, + rbrkslu: rbrkslu$1, + rcaron: rcaron$1, + rcedil: rcedil$1, + rceil: rceil$1, + rcub: rcub$1, + rcy: rcy$1, + rdca: rdca$1, + rdldhar: rdldhar$1, + rdquo: rdquo$1, + rdquor: rdquor$1, + rdsh: rdsh$1, + real: real$1, + realine: realine$1, + realpart: realpart$1, + reals: reals$1, + rect: rect$1, + re: re$5, + reg: reg$1, + rfisht: rfisht$1, + rfloor: rfloor$1, + rfr: rfr$1, + rhard: rhard$1, + rharu: rharu$1, + rharul: rharul$1, + rho: rho$1, + rhov: rhov$1, + rightarrow: rightarrow$1, + rightarrowtail: rightarrowtail$1, + rightharpoondown: rightharpoondown$1, + rightharpoonup: rightharpoonup$1, + rightleftarrows: rightleftarrows$1, + rightleftharpoons: rightleftharpoons$1, + rightrightarrows: rightrightarrows$1, + rightsquigarrow: rightsquigarrow$1, + rightthreetimes: rightthreetimes$1, + ring: ring$1, + risingdotseq: risingdotseq$1, + rlarr: rlarr$1, + rlhar: rlhar$1, + rlm: rlm$1, + rmoust: rmoust$1, + rmoustache: rmoustache$1, + rnmid: rnmid$1, + roang: roang$1, + roarr: roarr$1, + robrk: robrk$1, + ropar: ropar$1, + ropf: ropf$1, + roplus: roplus$1, + rotimes: rotimes$1, + rpar: rpar$1, + rpargt: rpargt$1, + rppolint: rppolint$1, + rrarr: rrarr$1, + rsaquo: rsaquo$1, + rscr: rscr$1, + rsh: rsh$1, + rsqb: rsqb$1, + rsquo: rsquo$1, + rsquor: rsquor$1, + rthree: rthree$1, + rtimes: rtimes$1, + rtri: rtri$1, + rtrie: rtrie$1, + rtrif: rtrif$1, + rtriltri: rtriltri$1, + ruluhar: ruluhar$1, + rx: rx$1, + sacute: sacute$1, + sbquo: sbquo$1, + sc: sc$1, + scE: scE$1, + scap: scap$1, + scaron: scaron$1, + sccue: sccue$1, + sce: sce$1, + scedil: scedil$1, + scirc: scirc$1, + scnE: scnE$1, + scnap: scnap$1, + scnsim: scnsim$1, + scpolint: scpolint$1, + scsim: scsim$1, + scy: scy$1, + sdot: sdot$1, + sdotb: sdotb$1, + sdote: sdote$1, + seArr: seArr$1, + searhk: searhk$1, + searr: searr$1, + searrow: searrow$1, + sec: sec$1, + sect: sect$1, + semi: semi$1, + seswar: seswar$1, + setminus: setminus$1, + setmn: setmn$1, + sext: sext$1, + sfr: sfr$1, + sfrown: sfrown$1, + sharp: sharp$1, + shchcy: shchcy$1, + shcy: shcy$1, + shortmid: shortmid$1, + shortparallel: shortparallel$1, + sh: sh$1, + shy: shy$1, + sigma: sigma$1, + sigmaf: sigmaf$1, + sigmav: sigmav$1, + sim: sim$1, + simdot: simdot$1, + sime: sime$1, + simeq: simeq$1, + simg: simg$1, + simgE: simgE$1, + siml: siml$1, + simlE: simlE$1, + simne: simne$1, + simplus: simplus$1, + simrarr: simrarr$1, + slarr: slarr$1, + smallsetminus: smallsetminus$1, + smashp: smashp$1, + smeparsl: smeparsl$1, + smid: smid$1, + smile: smile$1, + smt: smt$1, + smte: smte$1, + smtes: smtes$1, + softcy: softcy$1, + sol: sol$1, + solb: solb$1, + solbar: solbar$1, + sopf: sopf$1, + spades: spades$1, + spadesuit: spadesuit$1, + spar: spar$1, + sqcap: sqcap$1, + sqcaps: sqcaps$1, + sqcup: sqcup$1, + sqcups: sqcups$1, + sqsub: sqsub$1, + sqsube: sqsube$1, + sqsubset: sqsubset$1, + sqsubseteq: sqsubseteq$1, + sqsup: sqsup$1, + sqsupe: sqsupe$1, + sqsupset: sqsupset$1, + sqsupseteq: sqsupseteq$1, + squ: squ$1, + square: square$1, + squarf: squarf$1, + squf: squf$1, + srarr: srarr$1, + sscr: sscr$1, + ssetmn: ssetmn$1, + ssmile: ssmile$1, + sstarf: sstarf$1, + star: star$1, + starf: starf$1, + straightepsilon: straightepsilon$1, + straightphi: straightphi$1, + strns: strns$1, + sub: sub$1, + subE: subE$1, + subdot: subdot$1, + sube: sube$1, + subedot: subedot$1, + submult: submult$1, + subnE: subnE$1, + subne: subne$1, + subplus: subplus$1, + subrarr: subrarr$1, + subset: subset$1, + subseteq: subseteq$1, + subseteqq: subseteqq$1, + subsetneq: subsetneq$1, + subsetneqq: subsetneqq$1, + subsim: subsim$1, + subsub: subsub$1, + subsup: subsup$1, + succ: succ$1, + succapprox: succapprox$1, + succcurlyeq: succcurlyeq$1, + succeq: succeq$1, + succnapprox: succnapprox$1, + succneqq: succneqq$1, + succnsim: succnsim$1, + succsim: succsim$1, + sum: sum$1, + sung: sung$1, + sup: sup$1, + sup1: sup1$1, + sup2: sup2$1, + sup3: sup3$1, + supE: supE$1, + supdot: supdot$1, + supdsub: supdsub$1, + supe: supe$1, + supedot: supedot$1, + suphsol: suphsol$1, + suphsub: suphsub$1, + suplarr: suplarr$1, + supmult: supmult$1, + supnE: supnE$1, + supne: supne$1, + supplus: supplus$1, + supset: supset$1, + supseteq: supseteq$1, + supseteqq: supseteqq$1, + supsetneq: supsetneq$1, + supsetneqq: supsetneqq$1, + supsim: supsim$1, + supsub: supsub$1, + supsup: supsup$1, + swArr: swArr$1, + swarhk: swarhk$1, + swarr: swarr$1, + swarrow: swarrow$1, + swnwar: swnwar$1, + szli: szli$1, + szlig: szlig$1, + target: target$1, + tau: tau$1, + tbrk: tbrk$1, + tcaron: tcaron$1, + tcedil: tcedil$1, + tcy: tcy$1, + tdot: tdot$1, + telrec: telrec$1, + tfr: tfr$1, + there4: there4$1, + therefore: therefore$1, + theta: theta$1, + thetasym: thetasym$1, + thetav: thetav$1, + thickapprox: thickapprox$1, + thicksim: thicksim$1, + thinsp: thinsp$1, + thkap: thkap$1, + thksim: thksim$1, + thor: thor$1, + thorn: thorn$1, + tilde: tilde$1, + time: time$1, + times: times$1, + timesb: timesb$1, + timesbar: timesbar$1, + timesd: timesd$1, + tint: tint$1, + toea: toea$1, + top: top$1, + topbot: topbot$1, + topcir: topcir$1, + topf: topf$1, + topfork: topfork$1, + tosa: tosa$1, + tprime: tprime$1, + trade: trade$1, + triangle: triangle$1, + triangledown: triangledown$1, + triangleleft: triangleleft$1, + trianglelefteq: trianglelefteq$1, + triangleq: triangleq$1, + triangleright: triangleright$1, + trianglerighteq: trianglerighteq$1, + tridot: tridot$1, + trie: trie$1, + triminus: triminus$1, + triplus: triplus$1, + trisb: trisb$1, + tritime: tritime$1, + trpezium: trpezium$1, + tscr: tscr$1, + tscy: tscy$1, + tshcy: tshcy$1, + tstrok: tstrok$1, + twixt: twixt$1, + twoheadleftarrow: twoheadleftarrow$1, + twoheadrightarrow: twoheadrightarrow$1, + uArr: uArr$1, + uHar: uHar$1, + uacut: uacut$1, + uacute: uacute$1, + uarr: uarr$1, + ubrcy: ubrcy$1, + ubreve: ubreve$1, + ucir: ucir$1, + ucirc: ucirc$1, + ucy: ucy$1, + udarr: udarr$1, + udblac: udblac$1, + udhar: udhar$1, + ufisht: ufisht$1, + ufr: ufr$1, + ugrav: ugrav$1, + ugrave: ugrave$1, + uharl: uharl$1, + uharr: uharr$1, + uhblk: uhblk$1, + ulcorn: ulcorn$1, + ulcorner: ulcorner$1, + ulcrop: ulcrop$1, + ultri: ultri$1, + umacr: umacr$1, + um: um$1, + uml: uml$1, + uogon: uogon$1, + uopf: uopf$1, + uparrow: uparrow$1, + updownarrow: updownarrow$1, + upharpoonleft: upharpoonleft$1, + upharpoonright: upharpoonright$1, + uplus: uplus$1, + upsi: upsi$1, + upsih: upsih$1, + upsilon: upsilon$1, + upuparrows: upuparrows$1, + urcorn: urcorn$1, + urcorner: urcorner$1, + urcrop: urcrop$1, + uring: uring$1, + urtri: urtri$1, + uscr: uscr$1, + utdot: utdot$1, + utilde: utilde$1, + utri: utri$1, + utrif: utrif$1, + uuarr: uuarr$1, + uum: uum$1, + uuml: uuml$1, + uwangle: uwangle$1, + vArr: vArr$1, + vBar: vBar$1, + vBarv: vBarv$1, + vDash: vDash$1, + vangrt: vangrt$1, + varepsilon: varepsilon$1, + varkappa: varkappa$1, + varnothing: varnothing$1, + varphi: varphi$1, + varpi: varpi$1, + varpropto: varpropto$1, + varr: varr$1, + varrho: varrho$1, + varsigma: varsigma$1, + varsubsetneq: varsubsetneq$1, + varsubsetneqq: varsubsetneqq$1, + varsupsetneq: varsupsetneq$1, + varsupsetneqq: varsupsetneqq$1, + vartheta: vartheta$1, + vartriangleleft: vartriangleleft$1, + vartriangleright: vartriangleright$1, + vcy: vcy$1, + vdash: vdash$1, + vee: vee$1, + veebar: veebar$1, + veeeq: veeeq$1, + vellip: vellip$1, + verbar: verbar$1, + vert: vert$1, + vfr: vfr$1, + vltri: vltri$1, + vnsub: vnsub$1, + vnsup: vnsup$1, + vopf: vopf$1, + vprop: vprop$1, + vrtri: vrtri$1, + vscr: vscr$1, + vsubnE: vsubnE$1, + vsubne: vsubne$1, + vsupnE: vsupnE$1, + vsupne: vsupne$1, + vzigzag: vzigzag$1, + wcirc: wcirc$1, + wedbar: wedbar$1, + wedge: wedge$1, + wedgeq: wedgeq$1, + weierp: weierp$1, + wfr: wfr$1, + wopf: wopf$1, + wp: wp$1, + wr: wr$1, + wreath: wreath$1, + wscr: wscr$1, + xcap: xcap$1, + xcirc: xcirc$1, + xcup: xcup$1, + xdtri: xdtri$1, + xfr: xfr$1, + xhArr: xhArr$1, + xharr: xharr$1, + xi: xi$1, + xlArr: xlArr$1, + xlarr: xlarr$1, + xmap: xmap$1, + xnis: xnis$1, + xodot: xodot$1, + xopf: xopf$1, + xoplus: xoplus$1, + xotime: xotime$1, + xrArr: xrArr$1, + xrarr: xrarr$1, + xscr: xscr$1, + xsqcup: xsqcup$1, + xuplus: xuplus$1, + xutri: xutri$1, + xvee: xvee$1, + xwedge: xwedge$1, + yacut: yacut$1, + yacute: yacute$1, + yacy: yacy$1, + ycirc: ycirc$1, + ycy: ycy$1, + ye: ye$1, + yen: yen$1, + yfr: yfr$1, + yicy: yicy$1, + yopf: yopf$1, + yscr: yscr$1, + yucy: yucy$1, + yum: yum$1, + yuml: yuml$1, + zacute: zacute$1, + zcaron: zcaron$1, + zcy: zcy$1, + zdot: zdot$1, + zeetrf: zeetrf$1, + zeta: zeta$1, + zfr: zfr$1, + zhcy: zhcy$1, + zigrarr: zigrarr$1, + zopf: zopf$1, + zscr: zscr$1, + zwj: zwj$1, + zwnj: zwnj$1 +}; + +var characterEntities$1 = require$$0$1; + +var decodeEntity_1$1 = decodeEntity$1; + +var own$8 = {}.hasOwnProperty; + +function decodeEntity$1(characters) { + return own$8.call(characterEntities$1, characters) + ? characterEntities$1[characters] + : false +} + +var own$7 = {}.hasOwnProperty; -var dist$2 = fromMarkdown; +var unistUtilStringifyPosition = stringify$2; -// These three are compiled away in the `dist/` +function stringify$2(value) { + // Nothing. + if (!value || typeof value !== 'object') { + return '' + } + // Node. + if (own$7.call(value, 'position') || own$7.call(value, 'type')) { + return position$3(value.position) + } + // Position. + if (own$7.call(value, 'start') || own$7.call(value, 'end')) { + return position$3(value) + } + // Point. + if (own$7.call(value, 'line') || own$7.call(value, 'column')) { + return point$s(value) + } + // ? + return '' +} +function point$s(point) { + if (!point || typeof point !== 'object') { + point = {}; + } + return index$1(point.line) + ':' + index$1(point.column) +} +function position$3(pos) { + if (!pos || typeof pos !== 'object') { + pos = {}; + } + return point$s(pos.start) + '-' + point$s(pos.end) +} +function index$1(value) { + return value && typeof value === 'number' ? value : 1 +} +var dist = fromMarkdown$1; +// These three are compiled away in the `dist/` -function fromMarkdown(value, encoding, options) { +var toString$4 = mdastUtilToString$1; +var assign = assign_1; +var own$6 = hasOwnProperty$2; +var normalizeIdentifier$1 = normalizeIdentifier_1; +var safeFromInt = safeFromInt_1; +var parser = parse_1$1; +var preprocessor = preprocess_1; +var postprocess = postprocess_1; +var decode$1 = decodeEntity_1$1; +var stringifyPosition$1 = unistUtilStringifyPosition; + +function fromMarkdown$1(value, encoding, options) { if (typeof encoding !== 'string') { options = encoding; encoding = undefined; } return compiler(options)( - postprocess_1( - parse_1$3(options).document().write(preprocess_1()(value, encoding, true)) + postprocess( + parser(options).document().write(preprocessor()(value, encoding, true)) ) ) } @@ -37404,6 +42973,7 @@ function compiler(options) { var settings = options || {}; var config = configure$2( { + transforms: [], canContainEols: [ 'emphasis', 'fragment', @@ -37516,7 +43086,8 @@ function compiler(options) { return compile function compile(events) { - var stack = [{type: 'root', children: []}]; + var tree = {type: 'root', children: []}; + var stack = [tree]; var tokenStack = []; var listStack = []; var index = -1; @@ -37556,9 +43127,9 @@ function compiler(options) { while (++index < events.length) { handler = config[events[index][0]]; - if (hasOwnProperty.call(handler, events[index][1].type)) { + if (own$6.call(handler, events[index][1].type)) { handler[events[index][1].type].call( - assign_1({sliceSerialize: events[index][2].sliceSerialize}, context), + assign({sliceSerialize: events[index][2].sliceSerialize}, context), events[index][1] ); } @@ -37569,7 +43140,7 @@ function compiler(options) { 'Cannot close document, a token (`' + tokenStack[tokenStack.length - 1].type + '`, ' + - unistUtilStringifyPosition({ + stringifyPosition$1({ start: tokenStack[tokenStack.length - 1].start, end: tokenStack[tokenStack.length - 1].end }) + @@ -37578,7 +43149,7 @@ function compiler(options) { } // Figure out `root` position. - stack[0].position = { + tree.position = { start: point( events.length ? events[0][1].start : {line: 1, column: 1, offset: 0} ), @@ -37590,7 +43161,12 @@ function compiler(options) { ) }; - return stack[0] + index = -1; + while (++index < config.transforms.length) { + tree = config.transforms[index](tree) || tree; + } + + return tree } function prepareList(events, start, length) { @@ -37772,7 +43348,7 @@ function compiler(options) { 'Cannot close `' + token.type + '` (' + - unistUtilStringifyPosition({start: token.start, end: token.end}) + + stringifyPosition$1({start: token.start, end: token.end}) + '): it’s not open' ) } else if (open.type !== token.type) { @@ -37780,11 +43356,11 @@ function compiler(options) { 'Cannot close `' + token.type + '` (' + - unistUtilStringifyPosition({start: token.start, end: token.end}) + + stringifyPosition$1({start: token.start, end: token.end}) + '): a different token (`' + open.type + '`, ' + - unistUtilStringifyPosition({start: open.start, end: open.end}) + + stringifyPosition$1({start: open.start, end: open.end}) + ') is open' ) } @@ -37794,7 +43370,7 @@ function compiler(options) { } function resume() { - return mdastUtilToString(this.stack.pop()) + return toString$4(this.stack.pop()) } // @@ -37852,7 +43428,7 @@ function compiler(options) { // Discard label, use the source content instead. var label = this.resume(); this.stack[this.stack.length - 1].label = label; - this.stack[this.stack.length - 1].identifier = normalizeIdentifier_1( + this.stack[this.stack.length - 1].identifier = normalizeIdentifier$1( this.sliceSerialize(token) ).toLowerCase(); } @@ -37986,7 +43562,7 @@ function compiler(options) { } function onexitlabeltext(token) { - this.stack[this.stack.length - 2].identifier = normalizeIdentifier_1( + this.stack[this.stack.length - 2].identifier = normalizeIdentifier$1( this.sliceSerialize(token) ).toLowerCase(); } @@ -38028,7 +43604,7 @@ function compiler(options) { function onexitreferencestring(token) { var label = this.resume(); this.stack[this.stack.length - 1].label = label; - this.stack[this.stack.length - 1].identifier = normalizeIdentifier_1( + this.stack[this.stack.length - 1].identifier = normalizeIdentifier$1( this.sliceSerialize(token) ).toLowerCase(); setData('referenceType', 'full'); @@ -38045,14 +43621,14 @@ function compiler(options) { var tail; if (type) { - value = safeFromInt_1( + value = safeFromInt( data, type === 'characterReferenceMarkerNumeric' ? 10 : 16 ); setData('characterReferenceType'); } else { - value = decodeEntity_1(data); + value = decode$1(data); } tail = this.stack.pop(); @@ -38161,20 +43737,20 @@ function configure$2(config, extensions) { var index = -1; while (++index < extensions.length) { - extension$2(config, extensions[index]); + extension(config, extensions[index]); } return config } -function extension$2(config, extension) { +function extension(config, extension) { var key; var left; for (key in extension) { - left = hasOwnProperty.call(config, key) ? config[key] : (config[key] = {}); + left = own$6.call(config, key) ? config[key] : (config[key] = {}); - if (key === 'canContainEols') { + if (key === 'canContainEols' || key === 'transforms') { config[key] = [].concat(left, extension[key]); } else { Object.assign(left, extension[key]); @@ -38182,19 +43758,19 @@ function extension$2(config, extension) { } } -var mdastUtilFromMarkdown = dist$2; - -var remarkParse = parse$8; +var mdastUtilFromMarkdown = dist; +var remarkParse = parse$2; +var fromMarkdown = mdastUtilFromMarkdown; -function parse$8(options) { +function parse$2(options) { var self = this; this.Parser = parse; function parse(doc) { - return mdastUtilFromMarkdown( + return fromMarkdown( doc, Object.assign({}, self.data('settings'), options, { // Note: these options are not in the readme. @@ -38207,13 +43783,13 @@ function parse$8(options) { } } -var zwitch = factory$1; +var zwitch$1 = factory$3; var noop$1 = Function.prototype; var own$5 = {}.hasOwnProperty; // Handle values based on a property. -function factory$1(key, options) { +function factory$3(key, options) { var settings = options || {}; function one(value) { @@ -38234,16 +43810,16 @@ function factory$1(key, options) { return one } -var configure_1$2 = configure$3; +var configure_1 = configure$1; -function configure$3(base, extension) { +function configure$1(base, extension) { var index = -1; var key; // First do subextensions. if (extension.extensions) { while (++index < extension.extensions.length) { - configure$3(base, extension.extensions[index]); + configure$1(base, extension.extensions[index]); } } @@ -38260,11 +43836,13 @@ function configure$3(base, extension) { return base } -var containerFlow = flow$2; +var handle = {}; +var containerFlow$1 = flow$4; +var repeat$5 = repeatString; -function flow$2(parent, context) { +function flow$4(parent, context) { var children = parent.children || []; var results = []; var index = -1; @@ -38296,7 +43874,7 @@ function flow$2(parent, context) { } if (typeof result === 'number') { - return repeatString('\n', 1 + Number(result)) + return repeat$5('\n', 1 + Number(result)) } if (result === false) { @@ -38308,17 +43886,17 @@ function flow$2(parent, context) { } } -var indentLines_1 = indentLines; +var indentLines_1 = indentLines$4; -var eol = /\r?\n|\r/g; +var eol$1 = /\r?\n|\r/g; -function indentLines(value, map) { +function indentLines$4(value, map) { var result = []; var start = 0; var line = 0; var match; - while ((match = eol.exec(value))) { + while ((match = eol$1.exec(value))) { one(value.slice(start, match.index)); result.push(match[0]); start = match.index + match[0].length; @@ -38336,12 +43914,12 @@ function indentLines(value, map) { var blockquote_1 = blockquote; - - +var flow$3 = containerFlow$1; +var indentLines$3 = indentLines_1; function blockquote(node, _, context) { var exit = context.enter('blockquote'); - var value = indentLines_1(containerFlow(node, context), map$3); + var value = indentLines$3(flow$3(node, context), map$3); exit(); return value } @@ -38350,9 +43928,55 @@ function map$3(line, index, blank) { return '>' + (blank ? '' : ' ') + line } +var patternInScope_1 = patternInScope$2; + +function patternInScope$2(stack, pattern) { + return ( + listInScope(stack, pattern.inConstruct, true) && + !listInScope(stack, pattern.notInConstruct) + ) +} + +function listInScope(stack, list, none) { + var index; + + if (!list) { + return none + } + + if (typeof list === 'string') { + list = [list]; + } + + index = -1; + + while (++index < list.length) { + if (stack.indexOf(list[index]) !== -1) { + return true + } + } + + return false +} + var _break = hardBreak; -function hardBreak() { +var patternInScope$1 = patternInScope_1; + +function hardBreak(node, _, context, safe) { + var index = -1; + + while (++index < context.unsafe.length) { + // If we can’t put eols in this construct (setext headings, tables), use a + // space instead. + if ( + context.unsafe[index].character === '\n' && + patternInScope$1(context.stack, context.unsafe[index]) + ) { + return /[ \t]/.test(safe.before) ? '' : ' ' + } + } + return '\\\n' } @@ -38391,9 +44015,9 @@ function longestStreak(value, character) { return maximum } -var formatCodeAsIndented_1 = formatCodeAsIndented; +var formatCodeAsIndented_1 = formatCodeAsIndented$2; -function formatCodeAsIndented(node, context) { +function formatCodeAsIndented$2(node, context) { return ( !context.options.fences && node.value && @@ -38402,13 +44026,13 @@ function formatCodeAsIndented(node, context) { // And there’s a non-whitespace character… /[^ \r\n]/.test(node.value) && // And the value doesn’t start or end in a blank… - !/^[\t ]*[\r\n]|[\r\n][\t ]*$/.test(node.value) + !/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(node.value) ) } -var checkFence_1 = checkFence; +var checkFence_1 = checkFence$1; -function checkFence(context) { +function checkFence$1(context) { var marker = context.options.fence || '`'; if (marker !== '`' && marker !== '~') { @@ -38422,9 +44046,38 @@ function checkFence(context) { return marker } -var safe_1 = safe; +var patternCompile_1 = patternCompile$3; + +function patternCompile$3(pattern) { + var before; + var after; + + if (!pattern._compiled) { + before = pattern.before ? '(?:' + pattern.before + ')' : ''; + after = pattern.after ? '(?:' + pattern.after + ')' : ''; + + if (pattern.atBreak) { + before = '[\\r\\n][\\t ]*' + before; + } + + pattern._compiled = new RegExp( + (before ? '(' + before + ')' : '') + + (/[|\\{}()[\]^$+*?.-]/.test(pattern.character) ? '\\' : '') + + pattern.character + + (after || ''), + 'g' + ); + } + + return pattern._compiled +} + +var safe_1 = safe$7; + +var patternCompile$2 = patternCompile_1; +var patternInScope = patternInScope_1; -function safe(context, input, config) { +function safe$7(context, input, config) { var value = (config.before || '') + (input || '') + (config.after || ''); var positions = []; var result = []; @@ -38442,19 +44095,16 @@ function safe(context, input, config) { while (++index < context.unsafe.length) { pattern = context.unsafe[index]; - if ( - !inScope(context.stack, pattern.inConstruct, true) || - inScope(context.stack, pattern.notInConstruct) - ) { + if (!patternInScope(context.stack, pattern)) { continue } - expression = - pattern._compiled || (pattern._compiled = toExpression(pattern)); + expression = patternCompile$2(pattern); while ((match = expression.exec(value))) { before = 'before' in pattern || pattern.atBreak; after = 'after' in pattern; + position = match.index + (before ? match[1].length : 0); if (positions.indexOf(position) === -1) { @@ -38503,7 +44153,10 @@ function safe(context, input, config) { } if (start !== position) { - result.push(value.slice(start, position)); + // If we have to use a character reference, an ampersand would be more + // correct, but as backslashes only care about punctuation, either will + // do the trick + result.push(escapeBackslashes(value.slice(start, position), '\\')); } start = position; @@ -38523,65 +44176,53 @@ function safe(context, input, config) { } } - result.push(value.slice(start, end)); + result.push(escapeBackslashes(value.slice(start, end), config.after)); return result.join('') } -function inScope(stack, list, none) { - var index; +function numerical(a, b) { + return a - b +} - if (!list) { - return none - } +function escapeBackslashes(value, after) { + var expression = /\\(?=[!-/:-@[-`{-~])/g; + var positions = []; + var results = []; + var index = -1; + var start = 0; + var whole = value + after; + var match; - if (typeof list === 'string') { - list = [list]; + while ((match = expression.exec(whole))) { + positions.push(match.index); } - index = -1; - - while (++index < list.length) { - if (stack.indexOf(list[index]) !== -1) { - return true + while (++index < positions.length) { + if (start !== positions[index]) { + results.push(value.slice(start, positions[index])); } - } - - return false -} - -function toExpression(pattern) { - var before = pattern.before ? '(?:' + pattern.before + ')' : ''; - var after = pattern.after ? '(?:' + pattern.after + ')' : ''; - if (pattern.atBreak) { - before = '[\\r\\n][\\t ]*' + before; + results.push('\\'); + start = positions[index]; } - return new RegExp( - (before ? '(' + before + ')' : '') + - (/[|\\{}()[\]^$+*?.-]/.test(pattern.character) ? '\\' : '') + - pattern.character + - (after || ''), - 'g' - ) -} + results.push(value.slice(start)); -function numerical(a, b) { - return a - b + return results.join('') } -var code_1 = code; - +var code_1 = code$1; +var repeat$4 = repeatString; +var streak = longestStreak_1; +var formatCodeAsIndented$1 = formatCodeAsIndented_1; +var checkFence = checkFence_1; +var indentLines$2 = indentLines_1; +var safe$6 = safe_1; - - - - - -function code(node, _, context) { - var marker = checkFence_1(context); +function code$1(node, _, context) { + var marker = checkFence(context); var raw = node.value || ''; var suffix = marker === '`' ? 'GraveAccent' : 'Tilde'; var value; @@ -38589,17 +44230,17 @@ function code(node, _, context) { var exit; var subexit; - if (formatCodeAsIndented_1(node, context)) { + if (formatCodeAsIndented$1(node, context)) { exit = context.enter('codeIndented'); - value = indentLines_1(raw, map$4); + value = indentLines$2(raw, map$2); } else { - sequence = repeatString(marker, Math.max(longestStreak_1(raw, marker) + 1, 3)); + sequence = repeat$4(marker, Math.max(streak(raw, marker) + 1, 3)); exit = context.enter('codeFenced'); value = sequence; if (node.lang) { subexit = context.enter('codeFencedLang' + suffix); - value += safe_1(context, node.lang, { + value += safe$6(context, node.lang, { before: '`', after: ' ', encode: ['`'] @@ -38611,7 +44252,7 @@ function code(node, _, context) { subexit = context.enter('codeFencedMeta' + suffix); value += ' ' + - safe_1(context, node.meta, { + safe$6(context, node.meta, { before: ' ', after: '\n', encode: ['`'] @@ -38621,27 +44262,4484 @@ function code(node, _, context) { value += '\n'; - if (raw) { - value += raw + '\n'; - } + if (raw) { + value += raw + '\n'; + } + + value += sequence; + } + + exit(); + return value +} + +function map$2(line, _, blank) { + return (blank ? '' : ' ') + line +} + +const AEli = "Æ"; +const AElig = "Æ"; +const AM = "&"; +const AMP = "&"; +const Aacut = "Á"; +const Aacute = "Á"; +const Abreve = "Ă"; +const Acir = "Â"; +const Acirc = "Â"; +const Acy = "А"; +const Afr = "𝔄"; +const Agrav = "À"; +const Agrave = "À"; +const Alpha = "Α"; +const Amacr = "Ā"; +const And = "⩓"; +const Aogon = "Ą"; +const Aopf = "𝔸"; +const ApplyFunction = "⁡"; +const Arin = "Å"; +const Aring = "Å"; +const Ascr = "𝒜"; +const Assign = "≔"; +const Atild = "Ã"; +const Atilde = "Ã"; +const Aum = "Ä"; +const Auml = "Ä"; +const Backslash = "∖"; +const Barv = "⫧"; +const Barwed = "⌆"; +const Bcy = "Б"; +const Because = "∵"; +const Bernoullis = "ℬ"; +const Beta = "Β"; +const Bfr = "𝔅"; +const Bopf = "𝔹"; +const Breve = "˘"; +const Bscr = "ℬ"; +const Bumpeq = "≎"; +const CHcy = "Ч"; +const COP = "©"; +const COPY = "©"; +const Cacute = "Ć"; +const Cap = "⋒"; +const CapitalDifferentialD = "ⅅ"; +const Cayleys = "ℭ"; +const Ccaron = "Č"; +const Ccedi = "Ç"; +const Ccedil = "Ç"; +const Ccirc = "Ĉ"; +const Cconint = "∰"; +const Cdot = "Ċ"; +const Cedilla = "¸"; +const CenterDot = "·"; +const Cfr = "ℭ"; +const Chi = "Χ"; +const CircleDot = "⊙"; +const CircleMinus = "⊖"; +const CirclePlus = "⊕"; +const CircleTimes = "⊗"; +const ClockwiseContourIntegral = "∲"; +const CloseCurlyDoubleQuote = "”"; +const CloseCurlyQuote = "’"; +const Colon = "∷"; +const Colone = "⩴"; +const Congruent = "≡"; +const Conint = "∯"; +const ContourIntegral = "∮"; +const Copf = "ℂ"; +const Coproduct = "∐"; +const CounterClockwiseContourIntegral = "∳"; +const Cross = "⨯"; +const Cscr = "𝒞"; +const Cup = "⋓"; +const CupCap = "≍"; +const DD = "ⅅ"; +const DDotrahd = "⤑"; +const DJcy = "Ђ"; +const DScy = "Ѕ"; +const DZcy = "Џ"; +const Dagger = "‡"; +const Darr = "↡"; +const Dashv = "⫤"; +const Dcaron = "Ď"; +const Dcy = "Д"; +const Del = "∇"; +const Delta = "Δ"; +const Dfr = "𝔇"; +const DiacriticalAcute = "´"; +const DiacriticalDot = "˙"; +const DiacriticalDoubleAcute = "˝"; +const DiacriticalGrave = "`"; +const DiacriticalTilde = "˜"; +const Diamond = "⋄"; +const DifferentialD = "ⅆ"; +const Dopf = "𝔻"; +const Dot = "¨"; +const DotDot = "⃜"; +const DotEqual = "≐"; +const DoubleContourIntegral = "∯"; +const DoubleDot = "¨"; +const DoubleDownArrow = "⇓"; +const DoubleLeftArrow = "⇐"; +const DoubleLeftRightArrow = "⇔"; +const DoubleLeftTee = "⫤"; +const DoubleLongLeftArrow = "⟸"; +const DoubleLongLeftRightArrow = "⟺"; +const DoubleLongRightArrow = "⟹"; +const DoubleRightArrow = "⇒"; +const DoubleRightTee = "⊨"; +const DoubleUpArrow = "⇑"; +const DoubleUpDownArrow = "⇕"; +const DoubleVerticalBar = "∥"; +const DownArrow = "↓"; +const DownArrowBar = "⤓"; +const DownArrowUpArrow = "⇵"; +const DownBreve = "̑"; +const DownLeftRightVector = "⥐"; +const DownLeftTeeVector = "⥞"; +const DownLeftVector = "↽"; +const DownLeftVectorBar = "⥖"; +const DownRightTeeVector = "⥟"; +const DownRightVector = "⇁"; +const DownRightVectorBar = "⥗"; +const DownTee = "⊤"; +const DownTeeArrow = "↧"; +const Downarrow = "⇓"; +const Dscr = "𝒟"; +const Dstrok = "Đ"; +const ENG = "Ŋ"; +const ET = "Ð"; +const ETH = "Ð"; +const Eacut = "É"; +const Eacute = "É"; +const Ecaron = "Ě"; +const Ecir = "Ê"; +const Ecirc = "Ê"; +const Ecy = "Э"; +const Edot = "Ė"; +const Efr = "𝔈"; +const Egrav = "È"; +const Egrave = "È"; +const Element = "∈"; +const Emacr = "Ē"; +const EmptySmallSquare = "◻"; +const EmptyVerySmallSquare = "▫"; +const Eogon = "Ę"; +const Eopf = "𝔼"; +const Epsilon = "Ε"; +const Equal = "⩵"; +const EqualTilde = "≂"; +const Equilibrium = "⇌"; +const Escr = "ℰ"; +const Esim = "⩳"; +const Eta = "Η"; +const Eum = "Ë"; +const Euml = "Ë"; +const Exists = "∃"; +const ExponentialE = "ⅇ"; +const Fcy = "Ф"; +const Ffr = "𝔉"; +const FilledSmallSquare = "◼"; +const FilledVerySmallSquare = "▪"; +const Fopf = "𝔽"; +const ForAll = "∀"; +const Fouriertrf = "ℱ"; +const Fscr = "ℱ"; +const GJcy = "Ѓ"; +const G = ">"; +const GT = ">"; +const Gamma = "Γ"; +const Gammad = "Ϝ"; +const Gbreve = "Ğ"; +const Gcedil = "Ģ"; +const Gcirc = "Ĝ"; +const Gcy = "Г"; +const Gdot = "Ġ"; +const Gfr = "𝔊"; +const Gg = "⋙"; +const Gopf = "𝔾"; +const GreaterEqual = "≥"; +const GreaterEqualLess = "⋛"; +const GreaterFullEqual = "≧"; +const GreaterGreater = "⪢"; +const GreaterLess = "≷"; +const GreaterSlantEqual = "⩾"; +const GreaterTilde = "≳"; +const Gscr = "𝒢"; +const Gt = "≫"; +const HARDcy = "Ъ"; +const Hacek = "ˇ"; +const Hat = "^"; +const Hcirc = "Ĥ"; +const Hfr = "ℌ"; +const HilbertSpace = "ℋ"; +const Hopf = "ℍ"; +const HorizontalLine = "─"; +const Hscr = "ℋ"; +const Hstrok = "Ħ"; +const HumpDownHump = "≎"; +const HumpEqual = "≏"; +const IEcy = "Е"; +const IJlig = "IJ"; +const IOcy = "Ё"; +const Iacut = "Í"; +const Iacute = "Í"; +const Icir = "Î"; +const Icirc = "Î"; +const Icy = "И"; +const Idot = "İ"; +const Ifr = "ℑ"; +const Igrav = "Ì"; +const Igrave = "Ì"; +const Im = "ℑ"; +const Imacr = "Ī"; +const ImaginaryI = "ⅈ"; +const Implies = "⇒"; +const Int = "∬"; +const Integral = "∫"; +const Intersection = "⋂"; +const InvisibleComma = "⁣"; +const InvisibleTimes = "⁢"; +const Iogon = "Į"; +const Iopf = "𝕀"; +const Iota = "Ι"; +const Iscr = "ℐ"; +const Itilde = "Ĩ"; +const Iukcy = "І"; +const Ium = "Ï"; +const Iuml = "Ï"; +const Jcirc = "Ĵ"; +const Jcy = "Й"; +const Jfr = "𝔍"; +const Jopf = "𝕁"; +const Jscr = "𝒥"; +const Jsercy = "Ј"; +const Jukcy = "Є"; +const KHcy = "Х"; +const KJcy = "Ќ"; +const Kappa = "Κ"; +const Kcedil = "Ķ"; +const Kcy = "К"; +const Kfr = "𝔎"; +const Kopf = "𝕂"; +const Kscr = "𝒦"; +const LJcy = "Љ"; +const L = "<"; +const LT = "<"; +const Lacute = "Ĺ"; +const Lambda = "Λ"; +const Lang = "⟪"; +const Laplacetrf = "ℒ"; +const Larr = "↞"; +const Lcaron = "Ľ"; +const Lcedil = "Ļ"; +const Lcy = "Л"; +const LeftAngleBracket = "⟨"; +const LeftArrow = "←"; +const LeftArrowBar = "⇤"; +const LeftArrowRightArrow = "⇆"; +const LeftCeiling = "⌈"; +const LeftDoubleBracket = "⟦"; +const LeftDownTeeVector = "⥡"; +const LeftDownVector = "⇃"; +const LeftDownVectorBar = "⥙"; +const LeftFloor = "⌊"; +const LeftRightArrow = "↔"; +const LeftRightVector = "⥎"; +const LeftTee = "⊣"; +const LeftTeeArrow = "↤"; +const LeftTeeVector = "⥚"; +const LeftTriangle = "⊲"; +const LeftTriangleBar = "⧏"; +const LeftTriangleEqual = "⊴"; +const LeftUpDownVector = "⥑"; +const LeftUpTeeVector = "⥠"; +const LeftUpVector = "↿"; +const LeftUpVectorBar = "⥘"; +const LeftVector = "↼"; +const LeftVectorBar = "⥒"; +const Leftarrow = "⇐"; +const Leftrightarrow = "⇔"; +const LessEqualGreater = "⋚"; +const LessFullEqual = "≦"; +const LessGreater = "≶"; +const LessLess = "⪡"; +const LessSlantEqual = "⩽"; +const LessTilde = "≲"; +const Lfr = "𝔏"; +const Ll = "⋘"; +const Lleftarrow = "⇚"; +const Lmidot = "Ŀ"; +const LongLeftArrow = "⟵"; +const LongLeftRightArrow = "⟷"; +const LongRightArrow = "⟶"; +const Longleftarrow = "⟸"; +const Longleftrightarrow = "⟺"; +const Longrightarrow = "⟹"; +const Lopf = "𝕃"; +const LowerLeftArrow = "↙"; +const LowerRightArrow = "↘"; +const Lscr = "ℒ"; +const Lsh = "↰"; +const Lstrok = "Ł"; +const Lt = "≪"; +const Mcy = "М"; +const MediumSpace = " "; +const Mellintrf = "ℳ"; +const Mfr = "𝔐"; +const MinusPlus = "∓"; +const Mopf = "𝕄"; +const Mscr = "ℳ"; +const Mu = "Μ"; +const NJcy = "Њ"; +const Nacute = "Ń"; +const Ncaron = "Ň"; +const Ncedil = "Ņ"; +const Ncy = "Н"; +const NegativeMediumSpace = "​"; +const NegativeThickSpace = "​"; +const NegativeThinSpace = "​"; +const NegativeVeryThinSpace = "​"; +const NestedGreaterGreater = "≫"; +const NestedLessLess = "≪"; +const NewLine = "\n"; +const Nfr = "𝔑"; +const NoBreak = "⁠"; +const NonBreakingSpace = " "; +const Nopf = "ℕ"; +const Not = "⫬"; +const NotCongruent = "≢"; +const NotCupCap = "≭"; +const NotDoubleVerticalBar = "∦"; +const NotElement = "∉"; +const NotEqual = "≠"; +const NotEqualTilde = "≂̸"; +const NotExists = "∄"; +const NotGreater = "≯"; +const NotGreaterEqual = "≱"; +const NotGreaterFullEqual = "≧̸"; +const NotGreaterGreater = "≫̸"; +const NotGreaterLess = "≹"; +const NotGreaterSlantEqual = "⩾̸"; +const NotGreaterTilde = "≵"; +const NotHumpDownHump = "≎̸"; +const NotHumpEqual = "≏̸"; +const NotLeftTriangle = "⋪"; +const NotLeftTriangleBar = "⧏̸"; +const NotLeftTriangleEqual = "⋬"; +const NotLess = "≮"; +const NotLessEqual = "≰"; +const NotLessGreater = "≸"; +const NotLessLess = "≪̸"; +const NotLessSlantEqual = "⩽̸"; +const NotLessTilde = "≴"; +const NotNestedGreaterGreater = "⪢̸"; +const NotNestedLessLess = "⪡̸"; +const NotPrecedes = "⊀"; +const NotPrecedesEqual = "⪯̸"; +const NotPrecedesSlantEqual = "⋠"; +const NotReverseElement = "∌"; +const NotRightTriangle = "⋫"; +const NotRightTriangleBar = "⧐̸"; +const NotRightTriangleEqual = "⋭"; +const NotSquareSubset = "⊏̸"; +const NotSquareSubsetEqual = "⋢"; +const NotSquareSuperset = "⊐̸"; +const NotSquareSupersetEqual = "⋣"; +const NotSubset = "⊂⃒"; +const NotSubsetEqual = "⊈"; +const NotSucceeds = "⊁"; +const NotSucceedsEqual = "⪰̸"; +const NotSucceedsSlantEqual = "⋡"; +const NotSucceedsTilde = "≿̸"; +const NotSuperset = "⊃⃒"; +const NotSupersetEqual = "⊉"; +const NotTilde = "≁"; +const NotTildeEqual = "≄"; +const NotTildeFullEqual = "≇"; +const NotTildeTilde = "≉"; +const NotVerticalBar = "∤"; +const Nscr = "𝒩"; +const Ntild = "Ñ"; +const Ntilde = "Ñ"; +const Nu = "Ν"; +const OElig = "Œ"; +const Oacut = "Ó"; +const Oacute = "Ó"; +const Ocir = "Ô"; +const Ocirc = "Ô"; +const Ocy = "О"; +const Odblac = "Ő"; +const Ofr = "𝔒"; +const Ograv = "Ò"; +const Ograve = "Ò"; +const Omacr = "Ō"; +const Omega = "Ω"; +const Omicron = "Ο"; +const Oopf = "𝕆"; +const OpenCurlyDoubleQuote = "“"; +const OpenCurlyQuote = "‘"; +const Or = "⩔"; +const Oscr = "𝒪"; +const Oslas = "Ø"; +const Oslash = "Ø"; +const Otild = "Õ"; +const Otilde = "Õ"; +const Otimes = "⨷"; +const Oum = "Ö"; +const Ouml = "Ö"; +const OverBar = "‾"; +const OverBrace = "⏞"; +const OverBracket = "⎴"; +const OverParenthesis = "⏜"; +const PartialD = "∂"; +const Pcy = "П"; +const Pfr = "𝔓"; +const Phi = "Φ"; +const Pi = "Π"; +const PlusMinus = "±"; +const Poincareplane = "ℌ"; +const Popf = "ℙ"; +const Pr = "⪻"; +const Precedes = "≺"; +const PrecedesEqual = "⪯"; +const PrecedesSlantEqual = "≼"; +const PrecedesTilde = "≾"; +const Prime = "″"; +const Product = "∏"; +const Proportion = "∷"; +const Proportional = "∝"; +const Pscr = "𝒫"; +const Psi = "Ψ"; +const QUO = "\""; +const QUOT = "\""; +const Qfr = "𝔔"; +const Qopf = "ℚ"; +const Qscr = "𝒬"; +const RBarr = "⤐"; +const RE = "®"; +const REG = "®"; +const Racute = "Ŕ"; +const Rang = "⟫"; +const Rarr = "↠"; +const Rarrtl = "⤖"; +const Rcaron = "Ř"; +const Rcedil = "Ŗ"; +const Rcy = "Р"; +const Re = "ℜ"; +const ReverseElement = "∋"; +const ReverseEquilibrium = "⇋"; +const ReverseUpEquilibrium = "⥯"; +const Rfr = "ℜ"; +const Rho = "Ρ"; +const RightAngleBracket = "⟩"; +const RightArrow = "→"; +const RightArrowBar = "⇥"; +const RightArrowLeftArrow = "⇄"; +const RightCeiling = "⌉"; +const RightDoubleBracket = "⟧"; +const RightDownTeeVector = "⥝"; +const RightDownVector = "⇂"; +const RightDownVectorBar = "⥕"; +const RightFloor = "⌋"; +const RightTee = "⊢"; +const RightTeeArrow = "↦"; +const RightTeeVector = "⥛"; +const RightTriangle = "⊳"; +const RightTriangleBar = "⧐"; +const RightTriangleEqual = "⊵"; +const RightUpDownVector = "⥏"; +const RightUpTeeVector = "⥜"; +const RightUpVector = "↾"; +const RightUpVectorBar = "⥔"; +const RightVector = "⇀"; +const RightVectorBar = "⥓"; +const Rightarrow = "⇒"; +const Ropf = "ℝ"; +const RoundImplies = "⥰"; +const Rrightarrow = "⇛"; +const Rscr = "ℛ"; +const Rsh = "↱"; +const RuleDelayed = "⧴"; +const SHCHcy = "Щ"; +const SHcy = "Ш"; +const SOFTcy = "Ь"; +const Sacute = "Ś"; +const Sc = "⪼"; +const Scaron = "Š"; +const Scedil = "Ş"; +const Scirc = "Ŝ"; +const Scy = "С"; +const Sfr = "𝔖"; +const ShortDownArrow = "↓"; +const ShortLeftArrow = "←"; +const ShortRightArrow = "→"; +const ShortUpArrow = "↑"; +const Sigma = "Σ"; +const SmallCircle = "∘"; +const Sopf = "𝕊"; +const Sqrt = "√"; +const Square = "□"; +const SquareIntersection = "⊓"; +const SquareSubset = "⊏"; +const SquareSubsetEqual = "⊑"; +const SquareSuperset = "⊐"; +const SquareSupersetEqual = "⊒"; +const SquareUnion = "⊔"; +const Sscr = "𝒮"; +const Star = "⋆"; +const Sub = "⋐"; +const Subset = "⋐"; +const SubsetEqual = "⊆"; +const Succeeds = "≻"; +const SucceedsEqual = "⪰"; +const SucceedsSlantEqual = "≽"; +const SucceedsTilde = "≿"; +const SuchThat = "∋"; +const Sum = "∑"; +const Sup = "⋑"; +const Superset = "⊃"; +const SupersetEqual = "⊇"; +const Supset = "⋑"; +const THOR = "Þ"; +const THORN = "Þ"; +const TRADE = "™"; +const TSHcy = "Ћ"; +const TScy = "Ц"; +const Tab = "\t"; +const Tau = "Τ"; +const Tcaron = "Ť"; +const Tcedil = "Ţ"; +const Tcy = "Т"; +const Tfr = "𝔗"; +const Therefore = "∴"; +const Theta = "Θ"; +const ThickSpace = "  "; +const ThinSpace = " "; +const Tilde = "∼"; +const TildeEqual = "≃"; +const TildeFullEqual = "≅"; +const TildeTilde = "≈"; +const Topf = "𝕋"; +const TripleDot = "⃛"; +const Tscr = "𝒯"; +const Tstrok = "Ŧ"; +const Uacut = "Ú"; +const Uacute = "Ú"; +const Uarr = "↟"; +const Uarrocir = "⥉"; +const Ubrcy = "Ў"; +const Ubreve = "Ŭ"; +const Ucir = "Û"; +const Ucirc = "Û"; +const Ucy = "У"; +const Udblac = "Ű"; +const Ufr = "𝔘"; +const Ugrav = "Ù"; +const Ugrave = "Ù"; +const Umacr = "Ū"; +const UnderBar = "_"; +const UnderBrace = "⏟"; +const UnderBracket = "⎵"; +const UnderParenthesis = "⏝"; +const Union = "⋃"; +const UnionPlus = "⊎"; +const Uogon = "Ų"; +const Uopf = "𝕌"; +const UpArrow = "↑"; +const UpArrowBar = "⤒"; +const UpArrowDownArrow = "⇅"; +const UpDownArrow = "↕"; +const UpEquilibrium = "⥮"; +const UpTee = "⊥"; +const UpTeeArrow = "↥"; +const Uparrow = "⇑"; +const Updownarrow = "⇕"; +const UpperLeftArrow = "↖"; +const UpperRightArrow = "↗"; +const Upsi = "ϒ"; +const Upsilon = "Υ"; +const Uring = "Ů"; +const Uscr = "𝒰"; +const Utilde = "Ũ"; +const Uum = "Ü"; +const Uuml = "Ü"; +const VDash = "⊫"; +const Vbar = "⫫"; +const Vcy = "В"; +const Vdash = "⊩"; +const Vdashl = "⫦"; +const Vee = "⋁"; +const Verbar = "‖"; +const Vert = "‖"; +const VerticalBar = "∣"; +const VerticalLine = "|"; +const VerticalSeparator = "❘"; +const VerticalTilde = "≀"; +const VeryThinSpace = " "; +const Vfr = "𝔙"; +const Vopf = "𝕍"; +const Vscr = "𝒱"; +const Vvdash = "⊪"; +const Wcirc = "Ŵ"; +const Wedge = "⋀"; +const Wfr = "𝔚"; +const Wopf = "𝕎"; +const Wscr = "𝒲"; +const Xfr = "𝔛"; +const Xi = "Ξ"; +const Xopf = "𝕏"; +const Xscr = "𝒳"; +const YAcy = "Я"; +const YIcy = "Ї"; +const YUcy = "Ю"; +const Yacut = "Ý"; +const Yacute = "Ý"; +const Ycirc = "Ŷ"; +const Ycy = "Ы"; +const Yfr = "𝔜"; +const Yopf = "𝕐"; +const Yscr = "𝒴"; +const Yuml = "Ÿ"; +const ZHcy = "Ж"; +const Zacute = "Ź"; +const Zcaron = "Ž"; +const Zcy = "З"; +const Zdot = "Ż"; +const ZeroWidthSpace = "​"; +const Zeta = "Ζ"; +const Zfr = "ℨ"; +const Zopf = "ℤ"; +const Zscr = "𝒵"; +const aacut = "á"; +const aacute = "á"; +const abreve = "ă"; +const ac = "∾"; +const acE = "∾̳"; +const acd = "∿"; +const acir = "â"; +const acirc = "â"; +const acut = "´"; +const acute = "´"; +const acy = "а"; +const aeli = "æ"; +const aelig = "æ"; +const af = "⁡"; +const afr = "𝔞"; +const agrav = "à"; +const agrave = "à"; +const alefsym = "ℵ"; +const aleph = "ℵ"; +const alpha = "α"; +const amacr = "ā"; +const amalg = "⨿"; +const am = "&"; +const amp = "&"; +const and = "∧"; +const andand = "⩕"; +const andd = "⩜"; +const andslope = "⩘"; +const andv = "⩚"; +const ang = "∠"; +const ange = "⦤"; +const angle = "∠"; +const angmsd = "∡"; +const angmsdaa = "⦨"; +const angmsdab = "⦩"; +const angmsdac = "⦪"; +const angmsdad = "⦫"; +const angmsdae = "⦬"; +const angmsdaf = "⦭"; +const angmsdag = "⦮"; +const angmsdah = "⦯"; +const angrt = "∟"; +const angrtvb = "⊾"; +const angrtvbd = "⦝"; +const angsph = "∢"; +const angst = "Å"; +const angzarr = "⍼"; +const aogon = "ą"; +const aopf = "𝕒"; +const ap = "≈"; +const apE = "⩰"; +const apacir = "⩯"; +const ape = "≊"; +const apid = "≋"; +const apos = "'"; +const approx = "≈"; +const approxeq = "≊"; +const arin = "å"; +const aring = "å"; +const ascr = "𝒶"; +const ast = "*"; +const asymp = "≈"; +const asympeq = "≍"; +const atild = "ã"; +const atilde = "ã"; +const aum = "ä"; +const auml = "ä"; +const awconint = "∳"; +const awint = "⨑"; +const bNot = "⫭"; +const backcong = "≌"; +const backepsilon = "϶"; +const backprime = "‵"; +const backsim = "∽"; +const backsimeq = "⋍"; +const barvee = "⊽"; +const barwed = "⌅"; +const barwedge = "⌅"; +const bbrk = "⎵"; +const bbrktbrk = "⎶"; +const bcong = "≌"; +const bcy = "б"; +const bdquo = "„"; +const becaus = "∵"; +const because = "∵"; +const bemptyv = "⦰"; +const bepsi = "϶"; +const bernou = "ℬ"; +const beta = "β"; +const beth = "ℶ"; +const between = "≬"; +const bfr = "𝔟"; +const bigcap = "⋂"; +const bigcirc = "◯"; +const bigcup = "⋃"; +const bigodot = "⨀"; +const bigoplus = "⨁"; +const bigotimes = "⨂"; +const bigsqcup = "⨆"; +const bigstar = "★"; +const bigtriangledown = "▽"; +const bigtriangleup = "△"; +const biguplus = "⨄"; +const bigvee = "⋁"; +const bigwedge = "⋀"; +const bkarow = "⤍"; +const blacklozenge = "⧫"; +const blacksquare = "▪"; +const blacktriangle = "▴"; +const blacktriangledown = "▾"; +const blacktriangleleft = "◂"; +const blacktriangleright = "▸"; +const blank = "␣"; +const blk12 = "▒"; +const blk14 = "░"; +const blk34 = "▓"; +const block = "█"; +const bne = "=⃥"; +const bnequiv = "≡⃥"; +const bnot = "⌐"; +const bopf = "𝕓"; +const bot = "⊥"; +const bottom = "⊥"; +const bowtie = "⋈"; +const boxDL = "╗"; +const boxDR = "╔"; +const boxDl = "╖"; +const boxDr = "╓"; +const boxH = "═"; +const boxHD = "╦"; +const boxHU = "╩"; +const boxHd = "╤"; +const boxHu = "╧"; +const boxUL = "╝"; +const boxUR = "╚"; +const boxUl = "╜"; +const boxUr = "╙"; +const boxV = "║"; +const boxVH = "╬"; +const boxVL = "╣"; +const boxVR = "╠"; +const boxVh = "╫"; +const boxVl = "╢"; +const boxVr = "╟"; +const boxbox = "⧉"; +const boxdL = "╕"; +const boxdR = "╒"; +const boxdl = "┐"; +const boxdr = "┌"; +const boxh = "─"; +const boxhD = "╥"; +const boxhU = "╨"; +const boxhd = "┬"; +const boxhu = "┴"; +const boxminus = "⊟"; +const boxplus = "⊞"; +const boxtimes = "⊠"; +const boxuL = "╛"; +const boxuR = "╘"; +const boxul = "┘"; +const boxur = "└"; +const boxv = "│"; +const boxvH = "╪"; +const boxvL = "╡"; +const boxvR = "╞"; +const boxvh = "┼"; +const boxvl = "┤"; +const boxvr = "├"; +const bprime = "‵"; +const breve = "˘"; +const brvba = "¦"; +const brvbar = "¦"; +const bscr = "𝒷"; +const bsemi = "⁏"; +const bsim = "∽"; +const bsime = "⋍"; +const bsol = "\\"; +const bsolb = "⧅"; +const bsolhsub = "⟈"; +const bull = "•"; +const bullet = "•"; +const bump = "≎"; +const bumpE = "⪮"; +const bumpe = "≏"; +const bumpeq = "≏"; +const cacute = "ć"; +const cap = "∩"; +const capand = "⩄"; +const capbrcup = "⩉"; +const capcap = "⩋"; +const capcup = "⩇"; +const capdot = "⩀"; +const caps = "∩︀"; +const caret = "⁁"; +const caron = "ˇ"; +const ccaps = "⩍"; +const ccaron = "č"; +const ccedi = "ç"; +const ccedil = "ç"; +const ccirc = "ĉ"; +const ccups = "⩌"; +const ccupssm = "⩐"; +const cdot = "ċ"; +const cedi = "¸"; +const cedil = "¸"; +const cemptyv = "⦲"; +const cen = "¢"; +const cent = "¢"; +const centerdot = "·"; +const cfr = "𝔠"; +const chcy = "ч"; +const check$1 = "✓"; +const checkmark = "✓"; +const chi = "χ"; +const cir = "○"; +const cirE = "⧃"; +const circ = "ˆ"; +const circeq = "≗"; +const circlearrowleft = "↺"; +const circlearrowright = "↻"; +const circledR = "®"; +const circledS = "Ⓢ"; +const circledast = "⊛"; +const circledcirc = "⊚"; +const circleddash = "⊝"; +const cire = "≗"; +const cirfnint = "⨐"; +const cirmid = "⫯"; +const cirscir = "⧂"; +const clubs = "♣"; +const clubsuit = "♣"; +const colon = ":"; +const colone = "≔"; +const coloneq = "≔"; +const comma = ","; +const commat = "@"; +const comp = "∁"; +const compfn = "∘"; +const complement = "∁"; +const complexes = "ℂ"; +const cong = "≅"; +const congdot = "⩭"; +const conint = "∮"; +const copf = "𝕔"; +const coprod = "∐"; +const cop = "©"; +const copy = "©"; +const copysr = "℗"; +const crarr = "↵"; +const cross = "✗"; +const cscr = "𝒸"; +const csub = "⫏"; +const csube = "⫑"; +const csup = "⫐"; +const csupe = "⫒"; +const ctdot = "⋯"; +const cudarrl = "⤸"; +const cudarrr = "⤵"; +const cuepr = "⋞"; +const cuesc = "⋟"; +const cularr = "↶"; +const cularrp = "⤽"; +const cup = "∪"; +const cupbrcap = "⩈"; +const cupcap = "⩆"; +const cupcup = "⩊"; +const cupdot = "⊍"; +const cupor = "⩅"; +const cups = "∪︀"; +const curarr = "↷"; +const curarrm = "⤼"; +const curlyeqprec = "⋞"; +const curlyeqsucc = "⋟"; +const curlyvee = "⋎"; +const curlywedge = "⋏"; +const curre = "¤"; +const curren = "¤"; +const curvearrowleft = "↶"; +const curvearrowright = "↷"; +const cuvee = "⋎"; +const cuwed = "⋏"; +const cwconint = "∲"; +const cwint = "∱"; +const cylcty = "⌭"; +const dArr = "⇓"; +const dHar = "⥥"; +const dagger = "†"; +const daleth = "ℸ"; +const darr = "↓"; +const dash = "‐"; +const dashv = "⊣"; +const dbkarow = "⤏"; +const dblac = "˝"; +const dcaron = "ď"; +const dcy = "д"; +const dd = "ⅆ"; +const ddagger = "‡"; +const ddarr = "⇊"; +const ddotseq = "⩷"; +const de = "°"; +const deg = "°"; +const delta = "δ"; +const demptyv = "⦱"; +const dfisht = "⥿"; +const dfr = "𝔡"; +const dharl = "⇃"; +const dharr = "⇂"; +const diam = "⋄"; +const diamond = "⋄"; +const diamondsuit = "♦"; +const diams = "♦"; +const die = "¨"; +const digamma = "ϝ"; +const disin = "⋲"; +const div = "÷"; +const divid = "÷"; +const divide = "÷"; +const divideontimes = "⋇"; +const divonx = "⋇"; +const djcy = "ђ"; +const dlcorn = "⌞"; +const dlcrop = "⌍"; +const dollar = "$"; +const dopf = "𝕕"; +const dot = "˙"; +const doteq = "≐"; +const doteqdot = "≑"; +const dotminus = "∸"; +const dotplus = "∔"; +const dotsquare = "⊡"; +const doublebarwedge = "⌆"; +const downarrow = "↓"; +const downdownarrows = "⇊"; +const downharpoonleft = "⇃"; +const downharpoonright = "⇂"; +const drbkarow = "⤐"; +const drcorn = "⌟"; +const drcrop = "⌌"; +const dscr = "𝒹"; +const dscy = "ѕ"; +const dsol = "⧶"; +const dstrok = "đ"; +const dtdot = "⋱"; +const dtri = "▿"; +const dtrif = "▾"; +const duarr = "⇵"; +const duhar = "⥯"; +const dwangle = "⦦"; +const dzcy = "џ"; +const dzigrarr = "⟿"; +const eDDot = "⩷"; +const eDot = "≑"; +const eacut = "é"; +const eacute = "é"; +const easter = "⩮"; +const ecaron = "ě"; +const ecir = "ê"; +const ecirc = "ê"; +const ecolon = "≕"; +const ecy = "э"; +const edot = "ė"; +const ee = "ⅇ"; +const efDot = "≒"; +const efr = "𝔢"; +const eg = "⪚"; +const egrav = "è"; +const egrave = "è"; +const egs = "⪖"; +const egsdot = "⪘"; +const el = "⪙"; +const elinters = "⏧"; +const ell = "ℓ"; +const els = "⪕"; +const elsdot = "⪗"; +const emacr = "ē"; +const empty = "∅"; +const emptyset = "∅"; +const emptyv = "∅"; +const emsp13 = " "; +const emsp14 = " "; +const emsp = " "; +const eng = "ŋ"; +const ensp = " "; +const eogon = "ę"; +const eopf = "𝕖"; +const epar = "⋕"; +const eparsl = "⧣"; +const eplus = "⩱"; +const epsi = "ε"; +const epsilon = "ε"; +const epsiv = "ϵ"; +const eqcirc = "≖"; +const eqcolon = "≕"; +const eqsim = "≂"; +const eqslantgtr = "⪖"; +const eqslantless = "⪕"; +const equals = "="; +const equest = "≟"; +const equiv = "≡"; +const equivDD = "⩸"; +const eqvparsl = "⧥"; +const erDot = "≓"; +const erarr = "⥱"; +const escr = "ℯ"; +const esdot = "≐"; +const esim = "≂"; +const eta = "η"; +const et = "ð"; +const eth = "ð"; +const eum = "ë"; +const euml = "ë"; +const euro = "€"; +const excl = "!"; +const exist = "∃"; +const expectation = "ℰ"; +const exponentiale = "ⅇ"; +const fallingdotseq = "≒"; +const fcy = "ф"; +const female = "♀"; +const ffilig = "ffi"; +const fflig = "ff"; +const ffllig = "ffl"; +const ffr = "𝔣"; +const filig = "fi"; +const fjlig = "fj"; +const flat = "♭"; +const fllig = "fl"; +const fltns = "▱"; +const fnof = "ƒ"; +const fopf = "𝕗"; +const forall = "∀"; +const fork = "⋔"; +const forkv = "⫙"; +const fpartint = "⨍"; +const frac1 = "¼"; +const frac12 = "½"; +const frac13 = "⅓"; +const frac14 = "¼"; +const frac15 = "⅕"; +const frac16 = "⅙"; +const frac18 = "⅛"; +const frac23 = "⅔"; +const frac25 = "⅖"; +const frac3 = "¾"; +const frac34 = "¾"; +const frac35 = "⅗"; +const frac38 = "⅜"; +const frac45 = "⅘"; +const frac56 = "⅚"; +const frac58 = "⅝"; +const frac78 = "⅞"; +const frasl = "⁄"; +const frown = "⌢"; +const fscr = "𝒻"; +const gE = "≧"; +const gEl = "⪌"; +const gacute = "ǵ"; +const gamma = "γ"; +const gammad = "ϝ"; +const gap = "⪆"; +const gbreve = "ğ"; +const gcirc = "ĝ"; +const gcy = "г"; +const gdot = "ġ"; +const ge = "≥"; +const gel = "⋛"; +const geq = "≥"; +const geqq = "≧"; +const geqslant = "⩾"; +const ges = "⩾"; +const gescc = "⪩"; +const gesdot = "⪀"; +const gesdoto = "⪂"; +const gesdotol = "⪄"; +const gesl = "⋛︀"; +const gesles = "⪔"; +const gfr = "𝔤"; +const gg = "≫"; +const ggg = "⋙"; +const gimel = "ℷ"; +const gjcy = "ѓ"; +const gl = "≷"; +const glE = "⪒"; +const gla = "⪥"; +const glj = "⪤"; +const gnE = "≩"; +const gnap = "⪊"; +const gnapprox = "⪊"; +const gne = "⪈"; +const gneq = "⪈"; +const gneqq = "≩"; +const gnsim = "⋧"; +const gopf = "𝕘"; +const grave = "`"; +const gscr = "ℊ"; +const gsim = "≳"; +const gsime = "⪎"; +const gsiml = "⪐"; +const g = ">"; +const gt = ">"; +const gtcc = "⪧"; +const gtcir = "⩺"; +const gtdot = "⋗"; +const gtlPar = "⦕"; +const gtquest = "⩼"; +const gtrapprox = "⪆"; +const gtrarr = "⥸"; +const gtrdot = "⋗"; +const gtreqless = "⋛"; +const gtreqqless = "⪌"; +const gtrless = "≷"; +const gtrsim = "≳"; +const gvertneqq = "≩︀"; +const gvnE = "≩︀"; +const hArr = "⇔"; +const hairsp = " "; +const half = "½"; +const hamilt = "ℋ"; +const hardcy = "ъ"; +const harr = "↔"; +const harrcir = "⥈"; +const harrw = "↭"; +const hbar = "ℏ"; +const hcirc = "ĥ"; +const hearts = "♥"; +const heartsuit = "♥"; +const hellip = "…"; +const hercon = "⊹"; +const hfr = "𝔥"; +const hksearow = "⤥"; +const hkswarow = "⤦"; +const hoarr = "⇿"; +const homtht = "∻"; +const hookleftarrow = "↩"; +const hookrightarrow = "↪"; +const hopf = "𝕙"; +const horbar = "―"; +const hscr = "𝒽"; +const hslash = "ℏ"; +const hstrok = "ħ"; +const hybull = "⁃"; +const hyphen = "‐"; +const iacut = "í"; +const iacute = "í"; +const ic = "⁣"; +const icir = "î"; +const icirc = "î"; +const icy = "и"; +const iecy = "е"; +const iexc = "¡"; +const iexcl = "¡"; +const iff = "⇔"; +const ifr = "𝔦"; +const igrav = "ì"; +const igrave = "ì"; +const ii = "ⅈ"; +const iiiint = "⨌"; +const iiint = "∭"; +const iinfin = "⧜"; +const iiota = "℩"; +const ijlig = "ij"; +const imacr = "ī"; +const image$1 = "ℑ"; +const imagline = "ℐ"; +const imagpart = "ℑ"; +const imath = "ı"; +const imof = "⊷"; +const imped = "Ƶ"; +const incare = "℅"; +const infin = "∞"; +const infintie = "⧝"; +const inodot = "ı"; +const int$1 = "∫"; +const intcal = "⊺"; +const integers = "ℤ"; +const intercal = "⊺"; +const intlarhk = "⨗"; +const intprod = "⨼"; +const iocy = "ё"; +const iogon = "į"; +const iopf = "𝕚"; +const iota = "ι"; +const iprod = "⨼"; +const iques = "¿"; +const iquest = "¿"; +const iscr = "𝒾"; +const isin = "∈"; +const isinE = "⋹"; +const isindot = "⋵"; +const isins = "⋴"; +const isinsv = "⋳"; +const isinv = "∈"; +const it = "⁢"; +const itilde = "ĩ"; +const iukcy = "і"; +const ium = "ï"; +const iuml = "ï"; +const jcirc = "ĵ"; +const jcy = "й"; +const jfr = "𝔧"; +const jmath = "ȷ"; +const jopf = "𝕛"; +const jscr = "𝒿"; +const jsercy = "ј"; +const jukcy = "є"; +const kappa = "κ"; +const kappav = "ϰ"; +const kcedil = "ķ"; +const kcy = "к"; +const kfr = "𝔨"; +const kgreen = "ĸ"; +const khcy = "х"; +const kjcy = "ќ"; +const kopf = "𝕜"; +const kscr = "𝓀"; +const lAarr = "⇚"; +const lArr = "⇐"; +const lAtail = "⤛"; +const lBarr = "⤎"; +const lE = "≦"; +const lEg = "⪋"; +const lHar = "⥢"; +const lacute = "ĺ"; +const laemptyv = "⦴"; +const lagran = "ℒ"; +const lambda = "λ"; +const lang = "⟨"; +const langd = "⦑"; +const langle = "⟨"; +const lap = "⪅"; +const laqu = "«"; +const laquo = "«"; +const larr = "←"; +const larrb = "⇤"; +const larrbfs = "⤟"; +const larrfs = "⤝"; +const larrhk = "↩"; +const larrlp = "↫"; +const larrpl = "⤹"; +const larrsim = "⥳"; +const larrtl = "↢"; +const lat = "⪫"; +const latail = "⤙"; +const late = "⪭"; +const lates = "⪭︀"; +const lbarr = "⤌"; +const lbbrk = "❲"; +const lbrace = "{"; +const lbrack = "["; +const lbrke = "⦋"; +const lbrksld = "⦏"; +const lbrkslu = "⦍"; +const lcaron = "ľ"; +const lcedil = "ļ"; +const lceil = "⌈"; +const lcub = "{"; +const lcy = "л"; +const ldca = "⤶"; +const ldquo = "“"; +const ldquor = "„"; +const ldrdhar = "⥧"; +const ldrushar = "⥋"; +const ldsh = "↲"; +const le = "≤"; +const leftarrow = "←"; +const leftarrowtail = "↢"; +const leftharpoondown = "↽"; +const leftharpoonup = "↼"; +const leftleftarrows = "⇇"; +const leftrightarrow = "↔"; +const leftrightarrows = "⇆"; +const leftrightharpoons = "⇋"; +const leftrightsquigarrow = "↭"; +const leftthreetimes = "⋋"; +const leg = "⋚"; +const leq = "≤"; +const leqq = "≦"; +const leqslant = "⩽"; +const les = "⩽"; +const lescc = "⪨"; +const lesdot = "⩿"; +const lesdoto = "⪁"; +const lesdotor = "⪃"; +const lesg = "⋚︀"; +const lesges = "⪓"; +const lessapprox = "⪅"; +const lessdot = "⋖"; +const lesseqgtr = "⋚"; +const lesseqqgtr = "⪋"; +const lessgtr = "≶"; +const lesssim = "≲"; +const lfisht = "⥼"; +const lfloor = "⌊"; +const lfr = "𝔩"; +const lg = "≶"; +const lgE = "⪑"; +const lhard = "↽"; +const lharu = "↼"; +const lharul = "⥪"; +const lhblk = "▄"; +const ljcy = "љ"; +const ll = "≪"; +const llarr = "⇇"; +const llcorner = "⌞"; +const llhard = "⥫"; +const lltri = "◺"; +const lmidot = "ŀ"; +const lmoust = "⎰"; +const lmoustache = "⎰"; +const lnE = "≨"; +const lnap = "⪉"; +const lnapprox = "⪉"; +const lne = "⪇"; +const lneq = "⪇"; +const lneqq = "≨"; +const lnsim = "⋦"; +const loang = "⟬"; +const loarr = "⇽"; +const lobrk = "⟦"; +const longleftarrow = "⟵"; +const longleftrightarrow = "⟷"; +const longmapsto = "⟼"; +const longrightarrow = "⟶"; +const looparrowleft = "↫"; +const looparrowright = "↬"; +const lopar = "⦅"; +const lopf = "𝕝"; +const loplus = "⨭"; +const lotimes = "⨴"; +const lowast = "∗"; +const lowbar = "_"; +const loz = "◊"; +const lozenge = "◊"; +const lozf = "⧫"; +const lpar = "("; +const lparlt = "⦓"; +const lrarr = "⇆"; +const lrcorner = "⌟"; +const lrhar = "⇋"; +const lrhard = "⥭"; +const lrm = "‎"; +const lrtri = "⊿"; +const lsaquo = "‹"; +const lscr = "𝓁"; +const lsh = "↰"; +const lsim = "≲"; +const lsime = "⪍"; +const lsimg = "⪏"; +const lsqb = "["; +const lsquo = "‘"; +const lsquor = "‚"; +const lstrok = "ł"; +const l = "<"; +const lt$1 = "<"; +const ltcc = "⪦"; +const ltcir = "⩹"; +const ltdot = "⋖"; +const lthree = "⋋"; +const ltimes = "⋉"; +const ltlarr = "⥶"; +const ltquest = "⩻"; +const ltrPar = "⦖"; +const ltri = "◃"; +const ltrie = "⊴"; +const ltrif = "◂"; +const lurdshar = "⥊"; +const luruhar = "⥦"; +const lvertneqq = "≨︀"; +const lvnE = "≨︀"; +const mDDot = "∺"; +const mac = "¯"; +const macr = "¯"; +const male = "♂"; +const malt = "✠"; +const maltese = "✠"; +const map$1 = "↦"; +const mapsto = "↦"; +const mapstodown = "↧"; +const mapstoleft = "↤"; +const mapstoup = "↥"; +const marker = "▮"; +const mcomma = "⨩"; +const mcy = "м"; +const mdash = "—"; +const measuredangle = "∡"; +const mfr = "𝔪"; +const mho = "℧"; +const micr = "µ"; +const micro = "µ"; +const mid = "∣"; +const midast = "*"; +const midcir = "⫰"; +const middo = "·"; +const middot = "·"; +const minus = "−"; +const minusb = "⊟"; +const minusd = "∸"; +const minusdu = "⨪"; +const mlcp = "⫛"; +const mldr = "…"; +const mnplus = "∓"; +const models = "⊧"; +const mopf = "𝕞"; +const mp = "∓"; +const mscr = "𝓂"; +const mstpos = "∾"; +const mu = "μ"; +const multimap = "⊸"; +const mumap = "⊸"; +const nGg = "⋙̸"; +const nGt = "≫⃒"; +const nGtv = "≫̸"; +const nLeftarrow = "⇍"; +const nLeftrightarrow = "⇎"; +const nLl = "⋘̸"; +const nLt = "≪⃒"; +const nLtv = "≪̸"; +const nRightarrow = "⇏"; +const nVDash = "⊯"; +const nVdash = "⊮"; +const nabla = "∇"; +const nacute = "ń"; +const nang = "∠⃒"; +const nap = "≉"; +const napE = "⩰̸"; +const napid = "≋̸"; +const napos = "ʼn"; +const napprox = "≉"; +const natur = "♮"; +const natural = "♮"; +const naturals = "ℕ"; +const nbs = " "; +const nbsp = " "; +const nbump = "≎̸"; +const nbumpe = "≏̸"; +const ncap = "⩃"; +const ncaron = "ň"; +const ncedil = "ņ"; +const ncong = "≇"; +const ncongdot = "⩭̸"; +const ncup = "⩂"; +const ncy = "н"; +const ndash = "–"; +const ne = "≠"; +const neArr = "⇗"; +const nearhk = "⤤"; +const nearr = "↗"; +const nearrow = "↗"; +const nedot = "≐̸"; +const nequiv = "≢"; +const nesear = "⤨"; +const nesim = "≂̸"; +const nexist = "∄"; +const nexists = "∄"; +const nfr = "𝔫"; +const ngE = "≧̸"; +const nge = "≱"; +const ngeq = "≱"; +const ngeqq = "≧̸"; +const ngeqslant = "⩾̸"; +const nges = "⩾̸"; +const ngsim = "≵"; +const ngt = "≯"; +const ngtr = "≯"; +const nhArr = "⇎"; +const nharr = "↮"; +const nhpar = "⫲"; +const ni = "∋"; +const nis = "⋼"; +const nisd = "⋺"; +const niv = "∋"; +const njcy = "њ"; +const nlArr = "⇍"; +const nlE = "≦̸"; +const nlarr = "↚"; +const nldr = "‥"; +const nle = "≰"; +const nleftarrow = "↚"; +const nleftrightarrow = "↮"; +const nleq = "≰"; +const nleqq = "≦̸"; +const nleqslant = "⩽̸"; +const nles = "⩽̸"; +const nless = "≮"; +const nlsim = "≴"; +const nlt = "≮"; +const nltri = "⋪"; +const nltrie = "⋬"; +const nmid = "∤"; +const nopf = "𝕟"; +const no = "¬"; +const not = "¬"; +const notin = "∉"; +const notinE = "⋹̸"; +const notindot = "⋵̸"; +const notinva = "∉"; +const notinvb = "⋷"; +const notinvc = "⋶"; +const notni = "∌"; +const notniva = "∌"; +const notnivb = "⋾"; +const notnivc = "⋽"; +const npar = "∦"; +const nparallel = "∦"; +const nparsl = "⫽⃥"; +const npart = "∂̸"; +const npolint = "⨔"; +const npr = "⊀"; +const nprcue = "⋠"; +const npre = "⪯̸"; +const nprec = "⊀"; +const npreceq = "⪯̸"; +const nrArr = "⇏"; +const nrarr = "↛"; +const nrarrc = "⤳̸"; +const nrarrw = "↝̸"; +const nrightarrow = "↛"; +const nrtri = "⋫"; +const nrtrie = "⋭"; +const nsc = "⊁"; +const nsccue = "⋡"; +const nsce = "⪰̸"; +const nscr = "𝓃"; +const nshortmid = "∤"; +const nshortparallel = "∦"; +const nsim = "≁"; +const nsime = "≄"; +const nsimeq = "≄"; +const nsmid = "∤"; +const nspar = "∦"; +const nsqsube = "⋢"; +const nsqsupe = "⋣"; +const nsub = "⊄"; +const nsubE = "⫅̸"; +const nsube = "⊈"; +const nsubset = "⊂⃒"; +const nsubseteq = "⊈"; +const nsubseteqq = "⫅̸"; +const nsucc = "⊁"; +const nsucceq = "⪰̸"; +const nsup = "⊅"; +const nsupE = "⫆̸"; +const nsupe = "⊉"; +const nsupset = "⊃⃒"; +const nsupseteq = "⊉"; +const nsupseteqq = "⫆̸"; +const ntgl = "≹"; +const ntild = "ñ"; +const ntilde = "ñ"; +const ntlg = "≸"; +const ntriangleleft = "⋪"; +const ntrianglelefteq = "⋬"; +const ntriangleright = "⋫"; +const ntrianglerighteq = "⋭"; +const nu = "ν"; +const num = "#"; +const numero = "№"; +const numsp = " "; +const nvDash = "⊭"; +const nvHarr = "⤄"; +const nvap = "≍⃒"; +const nvdash = "⊬"; +const nvge = "≥⃒"; +const nvgt = ">⃒"; +const nvinfin = "⧞"; +const nvlArr = "⤂"; +const nvle = "≤⃒"; +const nvlt = "<⃒"; +const nvltrie = "⊴⃒"; +const nvrArr = "⤃"; +const nvrtrie = "⊵⃒"; +const nvsim = "∼⃒"; +const nwArr = "⇖"; +const nwarhk = "⤣"; +const nwarr = "↖"; +const nwarrow = "↖"; +const nwnear = "⤧"; +const oS = "Ⓢ"; +const oacut = "ó"; +const oacute = "ó"; +const oast = "⊛"; +const ocir = "ô"; +const ocirc = "ô"; +const ocy = "о"; +const odash = "⊝"; +const odblac = "ő"; +const odiv = "⨸"; +const odot = "⊙"; +const odsold = "⦼"; +const oelig = "œ"; +const ofcir = "⦿"; +const ofr = "𝔬"; +const ogon = "˛"; +const ograv = "ò"; +const ograve = "ò"; +const ogt = "⧁"; +const ohbar = "⦵"; +const ohm = "Ω"; +const oint = "∮"; +const olarr = "↺"; +const olcir = "⦾"; +const olcross = "⦻"; +const oline = "‾"; +const olt = "⧀"; +const omacr = "ō"; +const omega = "ω"; +const omicron = "ο"; +const omid = "⦶"; +const ominus = "⊖"; +const oopf = "𝕠"; +const opar = "⦷"; +const operp = "⦹"; +const oplus = "⊕"; +const or = "∨"; +const orarr = "↻"; +const ord = "º"; +const order = "ℴ"; +const orderof = "ℴ"; +const ordf = "ª"; +const ordm = "º"; +const origof = "⊶"; +const oror = "⩖"; +const orslope = "⩗"; +const orv = "⩛"; +const oscr = "ℴ"; +const oslas = "ø"; +const oslash = "ø"; +const osol = "⊘"; +const otild = "õ"; +const otilde = "õ"; +const otimes = "⊗"; +const otimesas = "⨶"; +const oum = "ö"; +const ouml = "ö"; +const ovbar = "⌽"; +const par = "¶"; +const para = "¶"; +const parallel = "∥"; +const parsim = "⫳"; +const parsl = "⫽"; +const part = "∂"; +const pcy = "п"; +const percnt = "%"; +const period = "."; +const permil = "‰"; +const perp = "⊥"; +const pertenk = "‱"; +const pfr = "𝔭"; +const phi = "φ"; +const phiv = "ϕ"; +const phmmat = "ℳ"; +const phone = "☎"; +const pi = "π"; +const pitchfork = "⋔"; +const piv = "ϖ"; +const planck = "ℏ"; +const planckh = "ℎ"; +const plankv = "ℏ"; +const plus = "+"; +const plusacir = "⨣"; +const plusb = "⊞"; +const pluscir = "⨢"; +const plusdo = "∔"; +const plusdu = "⨥"; +const pluse = "⩲"; +const plusm = "±"; +const plusmn = "±"; +const plussim = "⨦"; +const plustwo = "⨧"; +const pm = "±"; +const pointint = "⨕"; +const popf = "𝕡"; +const poun = "£"; +const pound = "£"; +const pr = "≺"; +const prE = "⪳"; +const prap = "⪷"; +const prcue = "≼"; +const pre = "⪯"; +const prec = "≺"; +const precapprox = "⪷"; +const preccurlyeq = "≼"; +const preceq = "⪯"; +const precnapprox = "⪹"; +const precneqq = "⪵"; +const precnsim = "⋨"; +const precsim = "≾"; +const prime = "′"; +const primes = "ℙ"; +const prnE = "⪵"; +const prnap = "⪹"; +const prnsim = "⋨"; +const prod = "∏"; +const profalar = "⌮"; +const profline = "⌒"; +const profsurf = "⌓"; +const prop = "∝"; +const propto = "∝"; +const prsim = "≾"; +const prurel = "⊰"; +const pscr = "𝓅"; +const psi = "ψ"; +const puncsp = " "; +const qfr = "𝔮"; +const qint = "⨌"; +const qopf = "𝕢"; +const qprime = "⁗"; +const qscr = "𝓆"; +const quaternions = "ℍ"; +const quatint = "⨖"; +const quest = "?"; +const questeq = "≟"; +const quo = "\""; +const quot = "\""; +const rAarr = "⇛"; +const rArr = "⇒"; +const rAtail = "⤜"; +const rBarr = "⤏"; +const rHar = "⥤"; +const race = "∽̱"; +const racute = "ŕ"; +const radic = "√"; +const raemptyv = "⦳"; +const rang = "⟩"; +const rangd = "⦒"; +const range = "⦥"; +const rangle = "⟩"; +const raqu = "»"; +const raquo = "»"; +const rarr = "→"; +const rarrap = "⥵"; +const rarrb = "⇥"; +const rarrbfs = "⤠"; +const rarrc = "⤳"; +const rarrfs = "⤞"; +const rarrhk = "↪"; +const rarrlp = "↬"; +const rarrpl = "⥅"; +const rarrsim = "⥴"; +const rarrtl = "↣"; +const rarrw = "↝"; +const ratail = "⤚"; +const ratio = "∶"; +const rationals = "ℚ"; +const rbarr = "⤍"; +const rbbrk = "❳"; +const rbrace = "}"; +const rbrack = "]"; +const rbrke = "⦌"; +const rbrksld = "⦎"; +const rbrkslu = "⦐"; +const rcaron = "ř"; +const rcedil = "ŗ"; +const rceil = "⌉"; +const rcub = "}"; +const rcy = "р"; +const rdca = "⤷"; +const rdldhar = "⥩"; +const rdquo = "”"; +const rdquor = "”"; +const rdsh = "↳"; +const real = "ℜ"; +const realine = "ℛ"; +const realpart = "ℜ"; +const reals = "ℝ"; +const rect = "▭"; +const re$4 = "®"; +const reg = "®"; +const rfisht = "⥽"; +const rfloor = "⌋"; +const rfr = "𝔯"; +const rhard = "⇁"; +const rharu = "⇀"; +const rharul = "⥬"; +const rho = "ρ"; +const rhov = "ϱ"; +const rightarrow = "→"; +const rightarrowtail = "↣"; +const rightharpoondown = "⇁"; +const rightharpoonup = "⇀"; +const rightleftarrows = "⇄"; +const rightleftharpoons = "⇌"; +const rightrightarrows = "⇉"; +const rightsquigarrow = "↝"; +const rightthreetimes = "⋌"; +const ring = "˚"; +const risingdotseq = "≓"; +const rlarr = "⇄"; +const rlhar = "⇌"; +const rlm = "‏"; +const rmoust = "⎱"; +const rmoustache = "⎱"; +const rnmid = "⫮"; +const roang = "⟭"; +const roarr = "⇾"; +const robrk = "⟧"; +const ropar = "⦆"; +const ropf = "𝕣"; +const roplus = "⨮"; +const rotimes = "⨵"; +const rpar = ")"; +const rpargt = "⦔"; +const rppolint = "⨒"; +const rrarr = "⇉"; +const rsaquo = "›"; +const rscr = "𝓇"; +const rsh = "↱"; +const rsqb = "]"; +const rsquo = "’"; +const rsquor = "’"; +const rthree = "⋌"; +const rtimes = "⋊"; +const rtri = "▹"; +const rtrie = "⊵"; +const rtrif = "▸"; +const rtriltri = "⧎"; +const ruluhar = "⥨"; +const rx = "℞"; +const sacute = "ś"; +const sbquo = "‚"; +const sc = "≻"; +const scE = "⪴"; +const scap = "⪸"; +const scaron = "š"; +const sccue = "≽"; +const sce = "⪰"; +const scedil = "ş"; +const scirc = "ŝ"; +const scnE = "⪶"; +const scnap = "⪺"; +const scnsim = "⋩"; +const scpolint = "⨓"; +const scsim = "≿"; +const scy = "с"; +const sdot = "⋅"; +const sdotb = "⊡"; +const sdote = "⩦"; +const seArr = "⇘"; +const searhk = "⤥"; +const searr = "↘"; +const searrow = "↘"; +const sec = "§"; +const sect = "§"; +const semi = ";"; +const seswar = "⤩"; +const setminus = "∖"; +const setmn = "∖"; +const sext = "✶"; +const sfr = "𝔰"; +const sfrown = "⌢"; +const sharp = "♯"; +const shchcy = "щ"; +const shcy = "ш"; +const shortmid = "∣"; +const shortparallel = "∥"; +const sh = "­"; +const shy = "­"; +const sigma = "σ"; +const sigmaf = "ς"; +const sigmav = "ς"; +const sim = "∼"; +const simdot = "⩪"; +const sime = "≃"; +const simeq = "≃"; +const simg = "⪞"; +const simgE = "⪠"; +const siml = "⪝"; +const simlE = "⪟"; +const simne = "≆"; +const simplus = "⨤"; +const simrarr = "⥲"; +const slarr = "←"; +const smallsetminus = "∖"; +const smashp = "⨳"; +const smeparsl = "⧤"; +const smid = "∣"; +const smile = "⌣"; +const smt = "⪪"; +const smte = "⪬"; +const smtes = "⪬︀"; +const softcy = "ь"; +const sol = "/"; +const solb = "⧄"; +const solbar = "⌿"; +const sopf = "𝕤"; +const spades = "♠"; +const spadesuit = "♠"; +const spar = "∥"; +const sqcap = "⊓"; +const sqcaps = "⊓︀"; +const sqcup = "⊔"; +const sqcups = "⊔︀"; +const sqsub = "⊏"; +const sqsube = "⊑"; +const sqsubset = "⊏"; +const sqsubseteq = "⊑"; +const sqsup = "⊐"; +const sqsupe = "⊒"; +const sqsupset = "⊐"; +const sqsupseteq = "⊒"; +const squ = "□"; +const square = "□"; +const squarf = "▪"; +const squf = "▪"; +const srarr = "→"; +const sscr = "𝓈"; +const ssetmn = "∖"; +const ssmile = "⌣"; +const sstarf = "⋆"; +const star = "☆"; +const starf = "★"; +const straightepsilon = "ϵ"; +const straightphi = "ϕ"; +const strns = "¯"; +const sub = "⊂"; +const subE = "⫅"; +const subdot = "⪽"; +const sube = "⊆"; +const subedot = "⫃"; +const submult = "⫁"; +const subnE = "⫋"; +const subne = "⊊"; +const subplus = "⪿"; +const subrarr = "⥹"; +const subset = "⊂"; +const subseteq = "⊆"; +const subseteqq = "⫅"; +const subsetneq = "⊊"; +const subsetneqq = "⫋"; +const subsim = "⫇"; +const subsub = "⫕"; +const subsup = "⫓"; +const succ = "≻"; +const succapprox = "⪸"; +const succcurlyeq = "≽"; +const succeq = "⪰"; +const succnapprox = "⪺"; +const succneqq = "⪶"; +const succnsim = "⋩"; +const succsim = "≿"; +const sum = "∑"; +const sung = "♪"; +const sup = "⊃"; +const sup1 = "¹"; +const sup2 = "²"; +const sup3 = "³"; +const supE = "⫆"; +const supdot = "⪾"; +const supdsub = "⫘"; +const supe = "⊇"; +const supedot = "⫄"; +const suphsol = "⟉"; +const suphsub = "⫗"; +const suplarr = "⥻"; +const supmult = "⫂"; +const supnE = "⫌"; +const supne = "⊋"; +const supplus = "⫀"; +const supset = "⊃"; +const supseteq = "⊇"; +const supseteqq = "⫆"; +const supsetneq = "⊋"; +const supsetneqq = "⫌"; +const supsim = "⫈"; +const supsub = "⫔"; +const supsup = "⫖"; +const swArr = "⇙"; +const swarhk = "⤦"; +const swarr = "↙"; +const swarrow = "↙"; +const swnwar = "⤪"; +const szli = "ß"; +const szlig = "ß"; +const target = "⌖"; +const tau = "τ"; +const tbrk = "⎴"; +const tcaron = "ť"; +const tcedil = "ţ"; +const tcy = "т"; +const tdot = "⃛"; +const telrec = "⌕"; +const tfr = "𝔱"; +const there4 = "∴"; +const therefore = "∴"; +const theta = "θ"; +const thetasym = "ϑ"; +const thetav = "ϑ"; +const thickapprox = "≈"; +const thicksim = "∼"; +const thinsp = " "; +const thkap = "≈"; +const thksim = "∼"; +const thor = "þ"; +const thorn = "þ"; +const tilde = "˜"; +const time = "×"; +const times = "×"; +const timesb = "⊠"; +const timesbar = "⨱"; +const timesd = "⨰"; +const tint = "∭"; +const toea = "⤨"; +const top = "⊤"; +const topbot = "⌶"; +const topcir = "⫱"; +const topf = "𝕥"; +const topfork = "⫚"; +const tosa = "⤩"; +const tprime = "‴"; +const trade = "™"; +const triangle = "▵"; +const triangledown = "▿"; +const triangleleft = "◃"; +const trianglelefteq = "⊴"; +const triangleq = "≜"; +const triangleright = "▹"; +const trianglerighteq = "⊵"; +const tridot = "◬"; +const trie = "≜"; +const triminus = "⨺"; +const triplus = "⨹"; +const trisb = "⧍"; +const tritime = "⨻"; +const trpezium = "⏢"; +const tscr = "𝓉"; +const tscy = "ц"; +const tshcy = "ћ"; +const tstrok = "ŧ"; +const twixt = "≬"; +const twoheadleftarrow = "↞"; +const twoheadrightarrow = "↠"; +const uArr = "⇑"; +const uHar = "⥣"; +const uacut = "ú"; +const uacute = "ú"; +const uarr = "↑"; +const ubrcy = "ў"; +const ubreve = "ŭ"; +const ucir = "û"; +const ucirc = "û"; +const ucy = "у"; +const udarr = "⇅"; +const udblac = "ű"; +const udhar = "⥮"; +const ufisht = "⥾"; +const ufr = "𝔲"; +const ugrav = "ù"; +const ugrave = "ù"; +const uharl = "↿"; +const uharr = "↾"; +const uhblk = "▀"; +const ulcorn = "⌜"; +const ulcorner = "⌜"; +const ulcrop = "⌏"; +const ultri = "◸"; +const umacr = "ū"; +const um = "¨"; +const uml = "¨"; +const uogon = "ų"; +const uopf = "𝕦"; +const uparrow = "↑"; +const updownarrow = "↕"; +const upharpoonleft = "↿"; +const upharpoonright = "↾"; +const uplus = "⊎"; +const upsi = "υ"; +const upsih = "ϒ"; +const upsilon = "υ"; +const upuparrows = "⇈"; +const urcorn = "⌝"; +const urcorner = "⌝"; +const urcrop = "⌎"; +const uring = "ů"; +const urtri = "◹"; +const uscr = "𝓊"; +const utdot = "⋰"; +const utilde = "ũ"; +const utri = "▵"; +const utrif = "▴"; +const uuarr = "⇈"; +const uum = "ü"; +const uuml = "ü"; +const uwangle = "⦧"; +const vArr = "⇕"; +const vBar = "⫨"; +const vBarv = "⫩"; +const vDash = "⊨"; +const vangrt = "⦜"; +const varepsilon = "ϵ"; +const varkappa = "ϰ"; +const varnothing = "∅"; +const varphi = "ϕ"; +const varpi = "ϖ"; +const varpropto = "∝"; +const varr = "↕"; +const varrho = "ϱ"; +const varsigma = "ς"; +const varsubsetneq = "⊊︀"; +const varsubsetneqq = "⫋︀"; +const varsupsetneq = "⊋︀"; +const varsupsetneqq = "⫌︀"; +const vartheta = "ϑ"; +const vartriangleleft = "⊲"; +const vartriangleright = "⊳"; +const vcy = "в"; +const vdash = "⊢"; +const vee = "∨"; +const veebar = "⊻"; +const veeeq = "≚"; +const vellip = "⋮"; +const verbar = "|"; +const vert = "|"; +const vfr = "𝔳"; +const vltri = "⊲"; +const vnsub = "⊂⃒"; +const vnsup = "⊃⃒"; +const vopf = "𝕧"; +const vprop = "∝"; +const vrtri = "⊳"; +const vscr = "𝓋"; +const vsubnE = "⫋︀"; +const vsubne = "⊊︀"; +const vsupnE = "⫌︀"; +const vsupne = "⊋︀"; +const vzigzag = "⦚"; +const wcirc = "ŵ"; +const wedbar = "⩟"; +const wedge = "∧"; +const wedgeq = "≙"; +const weierp = "℘"; +const wfr = "𝔴"; +const wopf = "𝕨"; +const wp = "℘"; +const wr = "≀"; +const wreath = "≀"; +const wscr = "𝓌"; +const xcap = "⋂"; +const xcirc = "◯"; +const xcup = "⋃"; +const xdtri = "▽"; +const xfr = "𝔵"; +const xhArr = "⟺"; +const xharr = "⟷"; +const xi = "ξ"; +const xlArr = "⟸"; +const xlarr = "⟵"; +const xmap = "⟼"; +const xnis = "⋻"; +const xodot = "⨀"; +const xopf = "𝕩"; +const xoplus = "⨁"; +const xotime = "⨂"; +const xrArr = "⟹"; +const xrarr = "⟶"; +const xscr = "𝓍"; +const xsqcup = "⨆"; +const xuplus = "⨄"; +const xutri = "△"; +const xvee = "⋁"; +const xwedge = "⋀"; +const yacut = "ý"; +const yacute = "ý"; +const yacy = "я"; +const ycirc = "ŷ"; +const ycy = "ы"; +const ye = "¥"; +const yen = "¥"; +const yfr = "𝔶"; +const yicy = "ї"; +const yopf = "𝕪"; +const yscr = "𝓎"; +const yucy = "ю"; +const yum = "ÿ"; +const yuml = "ÿ"; +const zacute = "ź"; +const zcaron = "ž"; +const zcy = "з"; +const zdot = "ż"; +const zeetrf = "ℨ"; +const zeta = "ζ"; +const zfr = "𝔷"; +const zhcy = "ж"; +const zigrarr = "⇝"; +const zopf = "𝕫"; +const zscr = "𝓏"; +const zwj = "‍"; +const zwnj = "‌"; +var require$$0 = { + AEli: AEli, + AElig: AElig, + AM: AM, + AMP: AMP, + Aacut: Aacut, + Aacute: Aacute, + Abreve: Abreve, + Acir: Acir, + Acirc: Acirc, + Acy: Acy, + Afr: Afr, + Agrav: Agrav, + Agrave: Agrave, + Alpha: Alpha, + Amacr: Amacr, + And: And, + Aogon: Aogon, + Aopf: Aopf, + ApplyFunction: ApplyFunction, + Arin: Arin, + Aring: Aring, + Ascr: Ascr, + Assign: Assign, + Atild: Atild, + Atilde: Atilde, + Aum: Aum, + Auml: Auml, + Backslash: Backslash, + Barv: Barv, + Barwed: Barwed, + Bcy: Bcy, + Because: Because, + Bernoullis: Bernoullis, + Beta: Beta, + Bfr: Bfr, + Bopf: Bopf, + Breve: Breve, + Bscr: Bscr, + Bumpeq: Bumpeq, + CHcy: CHcy, + COP: COP, + COPY: COPY, + Cacute: Cacute, + Cap: Cap, + CapitalDifferentialD: CapitalDifferentialD, + Cayleys: Cayleys, + Ccaron: Ccaron, + Ccedi: Ccedi, + Ccedil: Ccedil, + Ccirc: Ccirc, + Cconint: Cconint, + Cdot: Cdot, + Cedilla: Cedilla, + CenterDot: CenterDot, + Cfr: Cfr, + Chi: Chi, + CircleDot: CircleDot, + CircleMinus: CircleMinus, + CirclePlus: CirclePlus, + CircleTimes: CircleTimes, + ClockwiseContourIntegral: ClockwiseContourIntegral, + CloseCurlyDoubleQuote: CloseCurlyDoubleQuote, + CloseCurlyQuote: CloseCurlyQuote, + Colon: Colon, + Colone: Colone, + Congruent: Congruent, + Conint: Conint, + ContourIntegral: ContourIntegral, + Copf: Copf, + Coproduct: Coproduct, + CounterClockwiseContourIntegral: CounterClockwiseContourIntegral, + Cross: Cross, + Cscr: Cscr, + Cup: Cup, + CupCap: CupCap, + DD: DD, + DDotrahd: DDotrahd, + DJcy: DJcy, + DScy: DScy, + DZcy: DZcy, + Dagger: Dagger, + Darr: Darr, + Dashv: Dashv, + Dcaron: Dcaron, + Dcy: Dcy, + Del: Del, + Delta: Delta, + Dfr: Dfr, + DiacriticalAcute: DiacriticalAcute, + DiacriticalDot: DiacriticalDot, + DiacriticalDoubleAcute: DiacriticalDoubleAcute, + DiacriticalGrave: DiacriticalGrave, + DiacriticalTilde: DiacriticalTilde, + Diamond: Diamond, + DifferentialD: DifferentialD, + Dopf: Dopf, + Dot: Dot, + DotDot: DotDot, + DotEqual: DotEqual, + DoubleContourIntegral: DoubleContourIntegral, + DoubleDot: DoubleDot, + DoubleDownArrow: DoubleDownArrow, + DoubleLeftArrow: DoubleLeftArrow, + DoubleLeftRightArrow: DoubleLeftRightArrow, + DoubleLeftTee: DoubleLeftTee, + DoubleLongLeftArrow: DoubleLongLeftArrow, + DoubleLongLeftRightArrow: DoubleLongLeftRightArrow, + DoubleLongRightArrow: DoubleLongRightArrow, + DoubleRightArrow: DoubleRightArrow, + DoubleRightTee: DoubleRightTee, + DoubleUpArrow: DoubleUpArrow, + DoubleUpDownArrow: DoubleUpDownArrow, + DoubleVerticalBar: DoubleVerticalBar, + DownArrow: DownArrow, + DownArrowBar: DownArrowBar, + DownArrowUpArrow: DownArrowUpArrow, + DownBreve: DownBreve, + DownLeftRightVector: DownLeftRightVector, + DownLeftTeeVector: DownLeftTeeVector, + DownLeftVector: DownLeftVector, + DownLeftVectorBar: DownLeftVectorBar, + DownRightTeeVector: DownRightTeeVector, + DownRightVector: DownRightVector, + DownRightVectorBar: DownRightVectorBar, + DownTee: DownTee, + DownTeeArrow: DownTeeArrow, + Downarrow: Downarrow, + Dscr: Dscr, + Dstrok: Dstrok, + ENG: ENG, + ET: ET, + ETH: ETH, + Eacut: Eacut, + Eacute: Eacute, + Ecaron: Ecaron, + Ecir: Ecir, + Ecirc: Ecirc, + Ecy: Ecy, + Edot: Edot, + Efr: Efr, + Egrav: Egrav, + Egrave: Egrave, + Element: Element, + Emacr: Emacr, + EmptySmallSquare: EmptySmallSquare, + EmptyVerySmallSquare: EmptyVerySmallSquare, + Eogon: Eogon, + Eopf: Eopf, + Epsilon: Epsilon, + Equal: Equal, + EqualTilde: EqualTilde, + Equilibrium: Equilibrium, + Escr: Escr, + Esim: Esim, + Eta: Eta, + Eum: Eum, + Euml: Euml, + Exists: Exists, + ExponentialE: ExponentialE, + Fcy: Fcy, + Ffr: Ffr, + FilledSmallSquare: FilledSmallSquare, + FilledVerySmallSquare: FilledVerySmallSquare, + Fopf: Fopf, + ForAll: ForAll, + Fouriertrf: Fouriertrf, + Fscr: Fscr, + GJcy: GJcy, + G: G, + GT: GT, + Gamma: Gamma, + Gammad: Gammad, + Gbreve: Gbreve, + Gcedil: Gcedil, + Gcirc: Gcirc, + Gcy: Gcy, + Gdot: Gdot, + Gfr: Gfr, + Gg: Gg, + Gopf: Gopf, + GreaterEqual: GreaterEqual, + GreaterEqualLess: GreaterEqualLess, + GreaterFullEqual: GreaterFullEqual, + GreaterGreater: GreaterGreater, + GreaterLess: GreaterLess, + GreaterSlantEqual: GreaterSlantEqual, + GreaterTilde: GreaterTilde, + Gscr: Gscr, + Gt: Gt, + HARDcy: HARDcy, + Hacek: Hacek, + Hat: Hat, + Hcirc: Hcirc, + Hfr: Hfr, + HilbertSpace: HilbertSpace, + Hopf: Hopf, + HorizontalLine: HorizontalLine, + Hscr: Hscr, + Hstrok: Hstrok, + HumpDownHump: HumpDownHump, + HumpEqual: HumpEqual, + IEcy: IEcy, + IJlig: IJlig, + IOcy: IOcy, + Iacut: Iacut, + Iacute: Iacute, + Icir: Icir, + Icirc: Icirc, + Icy: Icy, + Idot: Idot, + Ifr: Ifr, + Igrav: Igrav, + Igrave: Igrave, + Im: Im, + Imacr: Imacr, + ImaginaryI: ImaginaryI, + Implies: Implies, + Int: Int, + Integral: Integral, + Intersection: Intersection, + InvisibleComma: InvisibleComma, + InvisibleTimes: InvisibleTimes, + Iogon: Iogon, + Iopf: Iopf, + Iota: Iota, + Iscr: Iscr, + Itilde: Itilde, + Iukcy: Iukcy, + Ium: Ium, + Iuml: Iuml, + Jcirc: Jcirc, + Jcy: Jcy, + Jfr: Jfr, + Jopf: Jopf, + Jscr: Jscr, + Jsercy: Jsercy, + Jukcy: Jukcy, + KHcy: KHcy, + KJcy: KJcy, + Kappa: Kappa, + Kcedil: Kcedil, + Kcy: Kcy, + Kfr: Kfr, + Kopf: Kopf, + Kscr: Kscr, + LJcy: LJcy, + L: L, + LT: LT, + Lacute: Lacute, + Lambda: Lambda, + Lang: Lang, + Laplacetrf: Laplacetrf, + Larr: Larr, + Lcaron: Lcaron, + Lcedil: Lcedil, + Lcy: Lcy, + LeftAngleBracket: LeftAngleBracket, + LeftArrow: LeftArrow, + LeftArrowBar: LeftArrowBar, + LeftArrowRightArrow: LeftArrowRightArrow, + LeftCeiling: LeftCeiling, + LeftDoubleBracket: LeftDoubleBracket, + LeftDownTeeVector: LeftDownTeeVector, + LeftDownVector: LeftDownVector, + LeftDownVectorBar: LeftDownVectorBar, + LeftFloor: LeftFloor, + LeftRightArrow: LeftRightArrow, + LeftRightVector: LeftRightVector, + LeftTee: LeftTee, + LeftTeeArrow: LeftTeeArrow, + LeftTeeVector: LeftTeeVector, + LeftTriangle: LeftTriangle, + LeftTriangleBar: LeftTriangleBar, + LeftTriangleEqual: LeftTriangleEqual, + LeftUpDownVector: LeftUpDownVector, + LeftUpTeeVector: LeftUpTeeVector, + LeftUpVector: LeftUpVector, + LeftUpVectorBar: LeftUpVectorBar, + LeftVector: LeftVector, + LeftVectorBar: LeftVectorBar, + Leftarrow: Leftarrow, + Leftrightarrow: Leftrightarrow, + LessEqualGreater: LessEqualGreater, + LessFullEqual: LessFullEqual, + LessGreater: LessGreater, + LessLess: LessLess, + LessSlantEqual: LessSlantEqual, + LessTilde: LessTilde, + Lfr: Lfr, + Ll: Ll, + Lleftarrow: Lleftarrow, + Lmidot: Lmidot, + LongLeftArrow: LongLeftArrow, + LongLeftRightArrow: LongLeftRightArrow, + LongRightArrow: LongRightArrow, + Longleftarrow: Longleftarrow, + Longleftrightarrow: Longleftrightarrow, + Longrightarrow: Longrightarrow, + Lopf: Lopf, + LowerLeftArrow: LowerLeftArrow, + LowerRightArrow: LowerRightArrow, + Lscr: Lscr, + Lsh: Lsh, + Lstrok: Lstrok, + Lt: Lt, + "Map": "⤅", + Mcy: Mcy, + MediumSpace: MediumSpace, + Mellintrf: Mellintrf, + Mfr: Mfr, + MinusPlus: MinusPlus, + Mopf: Mopf, + Mscr: Mscr, + Mu: Mu, + NJcy: NJcy, + Nacute: Nacute, + Ncaron: Ncaron, + Ncedil: Ncedil, + Ncy: Ncy, + NegativeMediumSpace: NegativeMediumSpace, + NegativeThickSpace: NegativeThickSpace, + NegativeThinSpace: NegativeThinSpace, + NegativeVeryThinSpace: NegativeVeryThinSpace, + NestedGreaterGreater: NestedGreaterGreater, + NestedLessLess: NestedLessLess, + NewLine: NewLine, + Nfr: Nfr, + NoBreak: NoBreak, + NonBreakingSpace: NonBreakingSpace, + Nopf: Nopf, + Not: Not, + NotCongruent: NotCongruent, + NotCupCap: NotCupCap, + NotDoubleVerticalBar: NotDoubleVerticalBar, + NotElement: NotElement, + NotEqual: NotEqual, + NotEqualTilde: NotEqualTilde, + NotExists: NotExists, + NotGreater: NotGreater, + NotGreaterEqual: NotGreaterEqual, + NotGreaterFullEqual: NotGreaterFullEqual, + NotGreaterGreater: NotGreaterGreater, + NotGreaterLess: NotGreaterLess, + NotGreaterSlantEqual: NotGreaterSlantEqual, + NotGreaterTilde: NotGreaterTilde, + NotHumpDownHump: NotHumpDownHump, + NotHumpEqual: NotHumpEqual, + NotLeftTriangle: NotLeftTriangle, + NotLeftTriangleBar: NotLeftTriangleBar, + NotLeftTriangleEqual: NotLeftTriangleEqual, + NotLess: NotLess, + NotLessEqual: NotLessEqual, + NotLessGreater: NotLessGreater, + NotLessLess: NotLessLess, + NotLessSlantEqual: NotLessSlantEqual, + NotLessTilde: NotLessTilde, + NotNestedGreaterGreater: NotNestedGreaterGreater, + NotNestedLessLess: NotNestedLessLess, + NotPrecedes: NotPrecedes, + NotPrecedesEqual: NotPrecedesEqual, + NotPrecedesSlantEqual: NotPrecedesSlantEqual, + NotReverseElement: NotReverseElement, + NotRightTriangle: NotRightTriangle, + NotRightTriangleBar: NotRightTriangleBar, + NotRightTriangleEqual: NotRightTriangleEqual, + NotSquareSubset: NotSquareSubset, + NotSquareSubsetEqual: NotSquareSubsetEqual, + NotSquareSuperset: NotSquareSuperset, + NotSquareSupersetEqual: NotSquareSupersetEqual, + NotSubset: NotSubset, + NotSubsetEqual: NotSubsetEqual, + NotSucceeds: NotSucceeds, + NotSucceedsEqual: NotSucceedsEqual, + NotSucceedsSlantEqual: NotSucceedsSlantEqual, + NotSucceedsTilde: NotSucceedsTilde, + NotSuperset: NotSuperset, + NotSupersetEqual: NotSupersetEqual, + NotTilde: NotTilde, + NotTildeEqual: NotTildeEqual, + NotTildeFullEqual: NotTildeFullEqual, + NotTildeTilde: NotTildeTilde, + NotVerticalBar: NotVerticalBar, + Nscr: Nscr, + Ntild: Ntild, + Ntilde: Ntilde, + Nu: Nu, + OElig: OElig, + Oacut: Oacut, + Oacute: Oacute, + Ocir: Ocir, + Ocirc: Ocirc, + Ocy: Ocy, + Odblac: Odblac, + Ofr: Ofr, + Ograv: Ograv, + Ograve: Ograve, + Omacr: Omacr, + Omega: Omega, + Omicron: Omicron, + Oopf: Oopf, + OpenCurlyDoubleQuote: OpenCurlyDoubleQuote, + OpenCurlyQuote: OpenCurlyQuote, + Or: Or, + Oscr: Oscr, + Oslas: Oslas, + Oslash: Oslash, + Otild: Otild, + Otilde: Otilde, + Otimes: Otimes, + Oum: Oum, + Ouml: Ouml, + OverBar: OverBar, + OverBrace: OverBrace, + OverBracket: OverBracket, + OverParenthesis: OverParenthesis, + PartialD: PartialD, + Pcy: Pcy, + Pfr: Pfr, + Phi: Phi, + Pi: Pi, + PlusMinus: PlusMinus, + Poincareplane: Poincareplane, + Popf: Popf, + Pr: Pr, + Precedes: Precedes, + PrecedesEqual: PrecedesEqual, + PrecedesSlantEqual: PrecedesSlantEqual, + PrecedesTilde: PrecedesTilde, + Prime: Prime, + Product: Product, + Proportion: Proportion, + Proportional: Proportional, + Pscr: Pscr, + Psi: Psi, + QUO: QUO, + QUOT: QUOT, + Qfr: Qfr, + Qopf: Qopf, + Qscr: Qscr, + RBarr: RBarr, + RE: RE, + REG: REG, + Racute: Racute, + Rang: Rang, + Rarr: Rarr, + Rarrtl: Rarrtl, + Rcaron: Rcaron, + Rcedil: Rcedil, + Rcy: Rcy, + Re: Re, + ReverseElement: ReverseElement, + ReverseEquilibrium: ReverseEquilibrium, + ReverseUpEquilibrium: ReverseUpEquilibrium, + Rfr: Rfr, + Rho: Rho, + RightAngleBracket: RightAngleBracket, + RightArrow: RightArrow, + RightArrowBar: RightArrowBar, + RightArrowLeftArrow: RightArrowLeftArrow, + RightCeiling: RightCeiling, + RightDoubleBracket: RightDoubleBracket, + RightDownTeeVector: RightDownTeeVector, + RightDownVector: RightDownVector, + RightDownVectorBar: RightDownVectorBar, + RightFloor: RightFloor, + RightTee: RightTee, + RightTeeArrow: RightTeeArrow, + RightTeeVector: RightTeeVector, + RightTriangle: RightTriangle, + RightTriangleBar: RightTriangleBar, + RightTriangleEqual: RightTriangleEqual, + RightUpDownVector: RightUpDownVector, + RightUpTeeVector: RightUpTeeVector, + RightUpVector: RightUpVector, + RightUpVectorBar: RightUpVectorBar, + RightVector: RightVector, + RightVectorBar: RightVectorBar, + Rightarrow: Rightarrow, + Ropf: Ropf, + RoundImplies: RoundImplies, + Rrightarrow: Rrightarrow, + Rscr: Rscr, + Rsh: Rsh, + RuleDelayed: RuleDelayed, + SHCHcy: SHCHcy, + SHcy: SHcy, + SOFTcy: SOFTcy, + Sacute: Sacute, + Sc: Sc, + Scaron: Scaron, + Scedil: Scedil, + Scirc: Scirc, + Scy: Scy, + Sfr: Sfr, + ShortDownArrow: ShortDownArrow, + ShortLeftArrow: ShortLeftArrow, + ShortRightArrow: ShortRightArrow, + ShortUpArrow: ShortUpArrow, + Sigma: Sigma, + SmallCircle: SmallCircle, + Sopf: Sopf, + Sqrt: Sqrt, + Square: Square, + SquareIntersection: SquareIntersection, + SquareSubset: SquareSubset, + SquareSubsetEqual: SquareSubsetEqual, + SquareSuperset: SquareSuperset, + SquareSupersetEqual: SquareSupersetEqual, + SquareUnion: SquareUnion, + Sscr: Sscr, + Star: Star, + Sub: Sub, + Subset: Subset, + SubsetEqual: SubsetEqual, + Succeeds: Succeeds, + SucceedsEqual: SucceedsEqual, + SucceedsSlantEqual: SucceedsSlantEqual, + SucceedsTilde: SucceedsTilde, + SuchThat: SuchThat, + Sum: Sum, + Sup: Sup, + Superset: Superset, + SupersetEqual: SupersetEqual, + Supset: Supset, + THOR: THOR, + THORN: THORN, + TRADE: TRADE, + TSHcy: TSHcy, + TScy: TScy, + Tab: Tab, + Tau: Tau, + Tcaron: Tcaron, + Tcedil: Tcedil, + Tcy: Tcy, + Tfr: Tfr, + Therefore: Therefore, + Theta: Theta, + ThickSpace: ThickSpace, + ThinSpace: ThinSpace, + Tilde: Tilde, + TildeEqual: TildeEqual, + TildeFullEqual: TildeFullEqual, + TildeTilde: TildeTilde, + Topf: Topf, + TripleDot: TripleDot, + Tscr: Tscr, + Tstrok: Tstrok, + Uacut: Uacut, + Uacute: Uacute, + Uarr: Uarr, + Uarrocir: Uarrocir, + Ubrcy: Ubrcy, + Ubreve: Ubreve, + Ucir: Ucir, + Ucirc: Ucirc, + Ucy: Ucy, + Udblac: Udblac, + Ufr: Ufr, + Ugrav: Ugrav, + Ugrave: Ugrave, + Umacr: Umacr, + UnderBar: UnderBar, + UnderBrace: UnderBrace, + UnderBracket: UnderBracket, + UnderParenthesis: UnderParenthesis, + Union: Union, + UnionPlus: UnionPlus, + Uogon: Uogon, + Uopf: Uopf, + UpArrow: UpArrow, + UpArrowBar: UpArrowBar, + UpArrowDownArrow: UpArrowDownArrow, + UpDownArrow: UpDownArrow, + UpEquilibrium: UpEquilibrium, + UpTee: UpTee, + UpTeeArrow: UpTeeArrow, + Uparrow: Uparrow, + Updownarrow: Updownarrow, + UpperLeftArrow: UpperLeftArrow, + UpperRightArrow: UpperRightArrow, + Upsi: Upsi, + Upsilon: Upsilon, + Uring: Uring, + Uscr: Uscr, + Utilde: Utilde, + Uum: Uum, + Uuml: Uuml, + VDash: VDash, + Vbar: Vbar, + Vcy: Vcy, + Vdash: Vdash, + Vdashl: Vdashl, + Vee: Vee, + Verbar: Verbar, + Vert: Vert, + VerticalBar: VerticalBar, + VerticalLine: VerticalLine, + VerticalSeparator: VerticalSeparator, + VerticalTilde: VerticalTilde, + VeryThinSpace: VeryThinSpace, + Vfr: Vfr, + Vopf: Vopf, + Vscr: Vscr, + Vvdash: Vvdash, + Wcirc: Wcirc, + Wedge: Wedge, + Wfr: Wfr, + Wopf: Wopf, + Wscr: Wscr, + Xfr: Xfr, + Xi: Xi, + Xopf: Xopf, + Xscr: Xscr, + YAcy: YAcy, + YIcy: YIcy, + YUcy: YUcy, + Yacut: Yacut, + Yacute: Yacute, + Ycirc: Ycirc, + Ycy: Ycy, + Yfr: Yfr, + Yopf: Yopf, + Yscr: Yscr, + Yuml: Yuml, + ZHcy: ZHcy, + Zacute: Zacute, + Zcaron: Zcaron, + Zcy: Zcy, + Zdot: Zdot, + ZeroWidthSpace: ZeroWidthSpace, + Zeta: Zeta, + Zfr: Zfr, + Zopf: Zopf, + Zscr: Zscr, + aacut: aacut, + aacute: aacute, + abreve: abreve, + ac: ac, + acE: acE, + acd: acd, + acir: acir, + acirc: acirc, + acut: acut, + acute: acute, + acy: acy, + aeli: aeli, + aelig: aelig, + af: af, + afr: afr, + agrav: agrav, + agrave: agrave, + alefsym: alefsym, + aleph: aleph, + alpha: alpha, + amacr: amacr, + amalg: amalg, + am: am, + amp: amp, + and: and, + andand: andand, + andd: andd, + andslope: andslope, + andv: andv, + ang: ang, + ange: ange, + angle: angle, + angmsd: angmsd, + angmsdaa: angmsdaa, + angmsdab: angmsdab, + angmsdac: angmsdac, + angmsdad: angmsdad, + angmsdae: angmsdae, + angmsdaf: angmsdaf, + angmsdag: angmsdag, + angmsdah: angmsdah, + angrt: angrt, + angrtvb: angrtvb, + angrtvbd: angrtvbd, + angsph: angsph, + angst: angst, + angzarr: angzarr, + aogon: aogon, + aopf: aopf, + ap: ap, + apE: apE, + apacir: apacir, + ape: ape, + apid: apid, + apos: apos, + approx: approx, + approxeq: approxeq, + arin: arin, + aring: aring, + ascr: ascr, + ast: ast, + asymp: asymp, + asympeq: asympeq, + atild: atild, + atilde: atilde, + aum: aum, + auml: auml, + awconint: awconint, + awint: awint, + bNot: bNot, + backcong: backcong, + backepsilon: backepsilon, + backprime: backprime, + backsim: backsim, + backsimeq: backsimeq, + barvee: barvee, + barwed: barwed, + barwedge: barwedge, + bbrk: bbrk, + bbrktbrk: bbrktbrk, + bcong: bcong, + bcy: bcy, + bdquo: bdquo, + becaus: becaus, + because: because, + bemptyv: bemptyv, + bepsi: bepsi, + bernou: bernou, + beta: beta, + beth: beth, + between: between, + bfr: bfr, + bigcap: bigcap, + bigcirc: bigcirc, + bigcup: bigcup, + bigodot: bigodot, + bigoplus: bigoplus, + bigotimes: bigotimes, + bigsqcup: bigsqcup, + bigstar: bigstar, + bigtriangledown: bigtriangledown, + bigtriangleup: bigtriangleup, + biguplus: biguplus, + bigvee: bigvee, + bigwedge: bigwedge, + bkarow: bkarow, + blacklozenge: blacklozenge, + blacksquare: blacksquare, + blacktriangle: blacktriangle, + blacktriangledown: blacktriangledown, + blacktriangleleft: blacktriangleleft, + blacktriangleright: blacktriangleright, + blank: blank, + blk12: blk12, + blk14: blk14, + blk34: blk34, + block: block, + bne: bne, + bnequiv: bnequiv, + bnot: bnot, + bopf: bopf, + bot: bot, + bottom: bottom, + bowtie: bowtie, + boxDL: boxDL, + boxDR: boxDR, + boxDl: boxDl, + boxDr: boxDr, + boxH: boxH, + boxHD: boxHD, + boxHU: boxHU, + boxHd: boxHd, + boxHu: boxHu, + boxUL: boxUL, + boxUR: boxUR, + boxUl: boxUl, + boxUr: boxUr, + boxV: boxV, + boxVH: boxVH, + boxVL: boxVL, + boxVR: boxVR, + boxVh: boxVh, + boxVl: boxVl, + boxVr: boxVr, + boxbox: boxbox, + boxdL: boxdL, + boxdR: boxdR, + boxdl: boxdl, + boxdr: boxdr, + boxh: boxh, + boxhD: boxhD, + boxhU: boxhU, + boxhd: boxhd, + boxhu: boxhu, + boxminus: boxminus, + boxplus: boxplus, + boxtimes: boxtimes, + boxuL: boxuL, + boxuR: boxuR, + boxul: boxul, + boxur: boxur, + boxv: boxv, + boxvH: boxvH, + boxvL: boxvL, + boxvR: boxvR, + boxvh: boxvh, + boxvl: boxvl, + boxvr: boxvr, + bprime: bprime, + breve: breve, + brvba: brvba, + brvbar: brvbar, + bscr: bscr, + bsemi: bsemi, + bsim: bsim, + bsime: bsime, + bsol: bsol, + bsolb: bsolb, + bsolhsub: bsolhsub, + bull: bull, + bullet: bullet, + bump: bump, + bumpE: bumpE, + bumpe: bumpe, + bumpeq: bumpeq, + cacute: cacute, + cap: cap, + capand: capand, + capbrcup: capbrcup, + capcap: capcap, + capcup: capcup, + capdot: capdot, + caps: caps, + caret: caret, + caron: caron, + ccaps: ccaps, + ccaron: ccaron, + ccedi: ccedi, + ccedil: ccedil, + ccirc: ccirc, + ccups: ccups, + ccupssm: ccupssm, + cdot: cdot, + cedi: cedi, + cedil: cedil, + cemptyv: cemptyv, + cen: cen, + cent: cent, + centerdot: centerdot, + cfr: cfr, + chcy: chcy, + check: check$1, + checkmark: checkmark, + chi: chi, + cir: cir, + cirE: cirE, + circ: circ, + circeq: circeq, + circlearrowleft: circlearrowleft, + circlearrowright: circlearrowright, + circledR: circledR, + circledS: circledS, + circledast: circledast, + circledcirc: circledcirc, + circleddash: circleddash, + cire: cire, + cirfnint: cirfnint, + cirmid: cirmid, + cirscir: cirscir, + clubs: clubs, + clubsuit: clubsuit, + colon: colon, + colone: colone, + coloneq: coloneq, + comma: comma, + commat: commat, + comp: comp, + compfn: compfn, + complement: complement, + complexes: complexes, + cong: cong, + congdot: congdot, + conint: conint, + copf: copf, + coprod: coprod, + cop: cop, + copy: copy, + copysr: copysr, + crarr: crarr, + cross: cross, + cscr: cscr, + csub: csub, + csube: csube, + csup: csup, + csupe: csupe, + ctdot: ctdot, + cudarrl: cudarrl, + cudarrr: cudarrr, + cuepr: cuepr, + cuesc: cuesc, + cularr: cularr, + cularrp: cularrp, + cup: cup, + cupbrcap: cupbrcap, + cupcap: cupcap, + cupcup: cupcup, + cupdot: cupdot, + cupor: cupor, + cups: cups, + curarr: curarr, + curarrm: curarrm, + curlyeqprec: curlyeqprec, + curlyeqsucc: curlyeqsucc, + curlyvee: curlyvee, + curlywedge: curlywedge, + curre: curre, + curren: curren, + curvearrowleft: curvearrowleft, + curvearrowright: curvearrowright, + cuvee: cuvee, + cuwed: cuwed, + cwconint: cwconint, + cwint: cwint, + cylcty: cylcty, + dArr: dArr, + dHar: dHar, + dagger: dagger, + daleth: daleth, + darr: darr, + dash: dash, + dashv: dashv, + dbkarow: dbkarow, + dblac: dblac, + dcaron: dcaron, + dcy: dcy, + dd: dd, + ddagger: ddagger, + ddarr: ddarr, + ddotseq: ddotseq, + de: de, + deg: deg, + delta: delta, + demptyv: demptyv, + dfisht: dfisht, + dfr: dfr, + dharl: dharl, + dharr: dharr, + diam: diam, + diamond: diamond, + diamondsuit: diamondsuit, + diams: diams, + die: die, + digamma: digamma, + disin: disin, + div: div, + divid: divid, + divide: divide, + divideontimes: divideontimes, + divonx: divonx, + djcy: djcy, + dlcorn: dlcorn, + dlcrop: dlcrop, + dollar: dollar, + dopf: dopf, + dot: dot, + doteq: doteq, + doteqdot: doteqdot, + dotminus: dotminus, + dotplus: dotplus, + dotsquare: dotsquare, + doublebarwedge: doublebarwedge, + downarrow: downarrow, + downdownarrows: downdownarrows, + downharpoonleft: downharpoonleft, + downharpoonright: downharpoonright, + drbkarow: drbkarow, + drcorn: drcorn, + drcrop: drcrop, + dscr: dscr, + dscy: dscy, + dsol: dsol, + dstrok: dstrok, + dtdot: dtdot, + dtri: dtri, + dtrif: dtrif, + duarr: duarr, + duhar: duhar, + dwangle: dwangle, + dzcy: dzcy, + dzigrarr: dzigrarr, + eDDot: eDDot, + eDot: eDot, + eacut: eacut, + eacute: eacute, + easter: easter, + ecaron: ecaron, + ecir: ecir, + ecirc: ecirc, + ecolon: ecolon, + ecy: ecy, + edot: edot, + ee: ee, + efDot: efDot, + efr: efr, + eg: eg, + egrav: egrav, + egrave: egrave, + egs: egs, + egsdot: egsdot, + el: el, + elinters: elinters, + ell: ell, + els: els, + elsdot: elsdot, + emacr: emacr, + empty: empty, + emptyset: emptyset, + emptyv: emptyv, + emsp13: emsp13, + emsp14: emsp14, + emsp: emsp, + eng: eng, + ensp: ensp, + eogon: eogon, + eopf: eopf, + epar: epar, + eparsl: eparsl, + eplus: eplus, + epsi: epsi, + epsilon: epsilon, + epsiv: epsiv, + eqcirc: eqcirc, + eqcolon: eqcolon, + eqsim: eqsim, + eqslantgtr: eqslantgtr, + eqslantless: eqslantless, + equals: equals, + equest: equest, + equiv: equiv, + equivDD: equivDD, + eqvparsl: eqvparsl, + erDot: erDot, + erarr: erarr, + escr: escr, + esdot: esdot, + esim: esim, + eta: eta, + et: et, + eth: eth, + eum: eum, + euml: euml, + euro: euro, + excl: excl, + exist: exist, + expectation: expectation, + exponentiale: exponentiale, + fallingdotseq: fallingdotseq, + fcy: fcy, + female: female, + ffilig: ffilig, + fflig: fflig, + ffllig: ffllig, + ffr: ffr, + filig: filig, + fjlig: fjlig, + flat: flat, + fllig: fllig, + fltns: fltns, + fnof: fnof, + fopf: fopf, + forall: forall, + fork: fork, + forkv: forkv, + fpartint: fpartint, + frac1: frac1, + frac12: frac12, + frac13: frac13, + frac14: frac14, + frac15: frac15, + frac16: frac16, + frac18: frac18, + frac23: frac23, + frac25: frac25, + frac3: frac3, + frac34: frac34, + frac35: frac35, + frac38: frac38, + frac45: frac45, + frac56: frac56, + frac58: frac58, + frac78: frac78, + frasl: frasl, + frown: frown, + fscr: fscr, + gE: gE, + gEl: gEl, + gacute: gacute, + gamma: gamma, + gammad: gammad, + gap: gap, + gbreve: gbreve, + gcirc: gcirc, + gcy: gcy, + gdot: gdot, + ge: ge, + gel: gel, + geq: geq, + geqq: geqq, + geqslant: geqslant, + ges: ges, + gescc: gescc, + gesdot: gesdot, + gesdoto: gesdoto, + gesdotol: gesdotol, + gesl: gesl, + gesles: gesles, + gfr: gfr, + gg: gg, + ggg: ggg, + gimel: gimel, + gjcy: gjcy, + gl: gl, + glE: glE, + gla: gla, + glj: glj, + gnE: gnE, + gnap: gnap, + gnapprox: gnapprox, + gne: gne, + gneq: gneq, + gneqq: gneqq, + gnsim: gnsim, + gopf: gopf, + grave: grave, + gscr: gscr, + gsim: gsim, + gsime: gsime, + gsiml: gsiml, + g: g, + gt: gt, + gtcc: gtcc, + gtcir: gtcir, + gtdot: gtdot, + gtlPar: gtlPar, + gtquest: gtquest, + gtrapprox: gtrapprox, + gtrarr: gtrarr, + gtrdot: gtrdot, + gtreqless: gtreqless, + gtreqqless: gtreqqless, + gtrless: gtrless, + gtrsim: gtrsim, + gvertneqq: gvertneqq, + gvnE: gvnE, + hArr: hArr, + hairsp: hairsp, + half: half, + hamilt: hamilt, + hardcy: hardcy, + harr: harr, + harrcir: harrcir, + harrw: harrw, + hbar: hbar, + hcirc: hcirc, + hearts: hearts, + heartsuit: heartsuit, + hellip: hellip, + hercon: hercon, + hfr: hfr, + hksearow: hksearow, + hkswarow: hkswarow, + hoarr: hoarr, + homtht: homtht, + hookleftarrow: hookleftarrow, + hookrightarrow: hookrightarrow, + hopf: hopf, + horbar: horbar, + hscr: hscr, + hslash: hslash, + hstrok: hstrok, + hybull: hybull, + hyphen: hyphen, + iacut: iacut, + iacute: iacute, + ic: ic, + icir: icir, + icirc: icirc, + icy: icy, + iecy: iecy, + iexc: iexc, + iexcl: iexcl, + iff: iff, + ifr: ifr, + igrav: igrav, + igrave: igrave, + ii: ii, + iiiint: iiiint, + iiint: iiint, + iinfin: iinfin, + iiota: iiota, + ijlig: ijlig, + imacr: imacr, + image: image$1, + imagline: imagline, + imagpart: imagpart, + imath: imath, + imof: imof, + imped: imped, + "in": "∈", + incare: incare, + infin: infin, + infintie: infintie, + inodot: inodot, + int: int$1, + intcal: intcal, + integers: integers, + intercal: intercal, + intlarhk: intlarhk, + intprod: intprod, + iocy: iocy, + iogon: iogon, + iopf: iopf, + iota: iota, + iprod: iprod, + iques: iques, + iquest: iquest, + iscr: iscr, + isin: isin, + isinE: isinE, + isindot: isindot, + isins: isins, + isinsv: isinsv, + isinv: isinv, + it: it, + itilde: itilde, + iukcy: iukcy, + ium: ium, + iuml: iuml, + jcirc: jcirc, + jcy: jcy, + jfr: jfr, + jmath: jmath, + jopf: jopf, + jscr: jscr, + jsercy: jsercy, + jukcy: jukcy, + kappa: kappa, + kappav: kappav, + kcedil: kcedil, + kcy: kcy, + kfr: kfr, + kgreen: kgreen, + khcy: khcy, + kjcy: kjcy, + kopf: kopf, + kscr: kscr, + lAarr: lAarr, + lArr: lArr, + lAtail: lAtail, + lBarr: lBarr, + lE: lE, + lEg: lEg, + lHar: lHar, + lacute: lacute, + laemptyv: laemptyv, + lagran: lagran, + lambda: lambda, + lang: lang, + langd: langd, + langle: langle, + lap: lap, + laqu: laqu, + laquo: laquo, + larr: larr, + larrb: larrb, + larrbfs: larrbfs, + larrfs: larrfs, + larrhk: larrhk, + larrlp: larrlp, + larrpl: larrpl, + larrsim: larrsim, + larrtl: larrtl, + lat: lat, + latail: latail, + late: late, + lates: lates, + lbarr: lbarr, + lbbrk: lbbrk, + lbrace: lbrace, + lbrack: lbrack, + lbrke: lbrke, + lbrksld: lbrksld, + lbrkslu: lbrkslu, + lcaron: lcaron, + lcedil: lcedil, + lceil: lceil, + lcub: lcub, + lcy: lcy, + ldca: ldca, + ldquo: ldquo, + ldquor: ldquor, + ldrdhar: ldrdhar, + ldrushar: ldrushar, + ldsh: ldsh, + le: le, + leftarrow: leftarrow, + leftarrowtail: leftarrowtail, + leftharpoondown: leftharpoondown, + leftharpoonup: leftharpoonup, + leftleftarrows: leftleftarrows, + leftrightarrow: leftrightarrow, + leftrightarrows: leftrightarrows, + leftrightharpoons: leftrightharpoons, + leftrightsquigarrow: leftrightsquigarrow, + leftthreetimes: leftthreetimes, + leg: leg, + leq: leq, + leqq: leqq, + leqslant: leqslant, + les: les, + lescc: lescc, + lesdot: lesdot, + lesdoto: lesdoto, + lesdotor: lesdotor, + lesg: lesg, + lesges: lesges, + lessapprox: lessapprox, + lessdot: lessdot, + lesseqgtr: lesseqgtr, + lesseqqgtr: lesseqqgtr, + lessgtr: lessgtr, + lesssim: lesssim, + lfisht: lfisht, + lfloor: lfloor, + lfr: lfr, + lg: lg, + lgE: lgE, + lhard: lhard, + lharu: lharu, + lharul: lharul, + lhblk: lhblk, + ljcy: ljcy, + ll: ll, + llarr: llarr, + llcorner: llcorner, + llhard: llhard, + lltri: lltri, + lmidot: lmidot, + lmoust: lmoust, + lmoustache: lmoustache, + lnE: lnE, + lnap: lnap, + lnapprox: lnapprox, + lne: lne, + lneq: lneq, + lneqq: lneqq, + lnsim: lnsim, + loang: loang, + loarr: loarr, + lobrk: lobrk, + longleftarrow: longleftarrow, + longleftrightarrow: longleftrightarrow, + longmapsto: longmapsto, + longrightarrow: longrightarrow, + looparrowleft: looparrowleft, + looparrowright: looparrowright, + lopar: lopar, + lopf: lopf, + loplus: loplus, + lotimes: lotimes, + lowast: lowast, + lowbar: lowbar, + loz: loz, + lozenge: lozenge, + lozf: lozf, + lpar: lpar, + lparlt: lparlt, + lrarr: lrarr, + lrcorner: lrcorner, + lrhar: lrhar, + lrhard: lrhard, + lrm: lrm, + lrtri: lrtri, + lsaquo: lsaquo, + lscr: lscr, + lsh: lsh, + lsim: lsim, + lsime: lsime, + lsimg: lsimg, + lsqb: lsqb, + lsquo: lsquo, + lsquor: lsquor, + lstrok: lstrok, + l: l, + lt: lt$1, + ltcc: ltcc, + ltcir: ltcir, + ltdot: ltdot, + lthree: lthree, + ltimes: ltimes, + ltlarr: ltlarr, + ltquest: ltquest, + ltrPar: ltrPar, + ltri: ltri, + ltrie: ltrie, + ltrif: ltrif, + lurdshar: lurdshar, + luruhar: luruhar, + lvertneqq: lvertneqq, + lvnE: lvnE, + mDDot: mDDot, + mac: mac, + macr: macr, + male: male, + malt: malt, + maltese: maltese, + map: map$1, + mapsto: mapsto, + mapstodown: mapstodown, + mapstoleft: mapstoleft, + mapstoup: mapstoup, + marker: marker, + mcomma: mcomma, + mcy: mcy, + mdash: mdash, + measuredangle: measuredangle, + mfr: mfr, + mho: mho, + micr: micr, + micro: micro, + mid: mid, + midast: midast, + midcir: midcir, + middo: middo, + middot: middot, + minus: minus, + minusb: minusb, + minusd: minusd, + minusdu: minusdu, + mlcp: mlcp, + mldr: mldr, + mnplus: mnplus, + models: models, + mopf: mopf, + mp: mp, + mscr: mscr, + mstpos: mstpos, + mu: mu, + multimap: multimap, + mumap: mumap, + nGg: nGg, + nGt: nGt, + nGtv: nGtv, + nLeftarrow: nLeftarrow, + nLeftrightarrow: nLeftrightarrow, + nLl: nLl, + nLt: nLt, + nLtv: nLtv, + nRightarrow: nRightarrow, + nVDash: nVDash, + nVdash: nVdash, + nabla: nabla, + nacute: nacute, + nang: nang, + nap: nap, + napE: napE, + napid: napid, + napos: napos, + napprox: napprox, + natur: natur, + natural: natural, + naturals: naturals, + nbs: nbs, + nbsp: nbsp, + nbump: nbump, + nbumpe: nbumpe, + ncap: ncap, + ncaron: ncaron, + ncedil: ncedil, + ncong: ncong, + ncongdot: ncongdot, + ncup: ncup, + ncy: ncy, + ndash: ndash, + ne: ne, + neArr: neArr, + nearhk: nearhk, + nearr: nearr, + nearrow: nearrow, + nedot: nedot, + nequiv: nequiv, + nesear: nesear, + nesim: nesim, + nexist: nexist, + nexists: nexists, + nfr: nfr, + ngE: ngE, + nge: nge, + ngeq: ngeq, + ngeqq: ngeqq, + ngeqslant: ngeqslant, + nges: nges, + ngsim: ngsim, + ngt: ngt, + ngtr: ngtr, + nhArr: nhArr, + nharr: nharr, + nhpar: nhpar, + ni: ni, + nis: nis, + nisd: nisd, + niv: niv, + njcy: njcy, + nlArr: nlArr, + nlE: nlE, + nlarr: nlarr, + nldr: nldr, + nle: nle, + nleftarrow: nleftarrow, + nleftrightarrow: nleftrightarrow, + nleq: nleq, + nleqq: nleqq, + nleqslant: nleqslant, + nles: nles, + nless: nless, + nlsim: nlsim, + nlt: nlt, + nltri: nltri, + nltrie: nltrie, + nmid: nmid, + nopf: nopf, + no: no, + not: not, + notin: notin, + notinE: notinE, + notindot: notindot, + notinva: notinva, + notinvb: notinvb, + notinvc: notinvc, + notni: notni, + notniva: notniva, + notnivb: notnivb, + notnivc: notnivc, + npar: npar, + nparallel: nparallel, + nparsl: nparsl, + npart: npart, + npolint: npolint, + npr: npr, + nprcue: nprcue, + npre: npre, + nprec: nprec, + npreceq: npreceq, + nrArr: nrArr, + nrarr: nrarr, + nrarrc: nrarrc, + nrarrw: nrarrw, + nrightarrow: nrightarrow, + nrtri: nrtri, + nrtrie: nrtrie, + nsc: nsc, + nsccue: nsccue, + nsce: nsce, + nscr: nscr, + nshortmid: nshortmid, + nshortparallel: nshortparallel, + nsim: nsim, + nsime: nsime, + nsimeq: nsimeq, + nsmid: nsmid, + nspar: nspar, + nsqsube: nsqsube, + nsqsupe: nsqsupe, + nsub: nsub, + nsubE: nsubE, + nsube: nsube, + nsubset: nsubset, + nsubseteq: nsubseteq, + nsubseteqq: nsubseteqq, + nsucc: nsucc, + nsucceq: nsucceq, + nsup: nsup, + nsupE: nsupE, + nsupe: nsupe, + nsupset: nsupset, + nsupseteq: nsupseteq, + nsupseteqq: nsupseteqq, + ntgl: ntgl, + ntild: ntild, + ntilde: ntilde, + ntlg: ntlg, + ntriangleleft: ntriangleleft, + ntrianglelefteq: ntrianglelefteq, + ntriangleright: ntriangleright, + ntrianglerighteq: ntrianglerighteq, + nu: nu, + num: num, + numero: numero, + numsp: numsp, + nvDash: nvDash, + nvHarr: nvHarr, + nvap: nvap, + nvdash: nvdash, + nvge: nvge, + nvgt: nvgt, + nvinfin: nvinfin, + nvlArr: nvlArr, + nvle: nvle, + nvlt: nvlt, + nvltrie: nvltrie, + nvrArr: nvrArr, + nvrtrie: nvrtrie, + nvsim: nvsim, + nwArr: nwArr, + nwarhk: nwarhk, + nwarr: nwarr, + nwarrow: nwarrow, + nwnear: nwnear, + oS: oS, + oacut: oacut, + oacute: oacute, + oast: oast, + ocir: ocir, + ocirc: ocirc, + ocy: ocy, + odash: odash, + odblac: odblac, + odiv: odiv, + odot: odot, + odsold: odsold, + oelig: oelig, + ofcir: ofcir, + ofr: ofr, + ogon: ogon, + ograv: ograv, + ograve: ograve, + ogt: ogt, + ohbar: ohbar, + ohm: ohm, + oint: oint, + olarr: olarr, + olcir: olcir, + olcross: olcross, + oline: oline, + olt: olt, + omacr: omacr, + omega: omega, + omicron: omicron, + omid: omid, + ominus: ominus, + oopf: oopf, + opar: opar, + operp: operp, + oplus: oplus, + or: or, + orarr: orarr, + ord: ord, + order: order, + orderof: orderof, + ordf: ordf, + ordm: ordm, + origof: origof, + oror: oror, + orslope: orslope, + orv: orv, + oscr: oscr, + oslas: oslas, + oslash: oslash, + osol: osol, + otild: otild, + otilde: otilde, + otimes: otimes, + otimesas: otimesas, + oum: oum, + ouml: ouml, + ovbar: ovbar, + par: par, + para: para, + parallel: parallel, + parsim: parsim, + parsl: parsl, + part: part, + pcy: pcy, + percnt: percnt, + period: period, + permil: permil, + perp: perp, + pertenk: pertenk, + pfr: pfr, + phi: phi, + phiv: phiv, + phmmat: phmmat, + phone: phone, + pi: pi, + pitchfork: pitchfork, + piv: piv, + planck: planck, + planckh: planckh, + plankv: plankv, + plus: plus, + plusacir: plusacir, + plusb: plusb, + pluscir: pluscir, + plusdo: plusdo, + plusdu: plusdu, + pluse: pluse, + plusm: plusm, + plusmn: plusmn, + plussim: plussim, + plustwo: plustwo, + pm: pm, + pointint: pointint, + popf: popf, + poun: poun, + pound: pound, + pr: pr, + prE: prE, + prap: prap, + prcue: prcue, + pre: pre, + prec: prec, + precapprox: precapprox, + preccurlyeq: preccurlyeq, + preceq: preceq, + precnapprox: precnapprox, + precneqq: precneqq, + precnsim: precnsim, + precsim: precsim, + prime: prime, + primes: primes, + prnE: prnE, + prnap: prnap, + prnsim: prnsim, + prod: prod, + profalar: profalar, + profline: profline, + profsurf: profsurf, + prop: prop, + propto: propto, + prsim: prsim, + prurel: prurel, + pscr: pscr, + psi: psi, + puncsp: puncsp, + qfr: qfr, + qint: qint, + qopf: qopf, + qprime: qprime, + qscr: qscr, + quaternions: quaternions, + quatint: quatint, + quest: quest, + questeq: questeq, + quo: quo, + quot: quot, + rAarr: rAarr, + rArr: rArr, + rAtail: rAtail, + rBarr: rBarr, + rHar: rHar, + race: race, + racute: racute, + radic: radic, + raemptyv: raemptyv, + rang: rang, + rangd: rangd, + range: range, + rangle: rangle, + raqu: raqu, + raquo: raquo, + rarr: rarr, + rarrap: rarrap, + rarrb: rarrb, + rarrbfs: rarrbfs, + rarrc: rarrc, + rarrfs: rarrfs, + rarrhk: rarrhk, + rarrlp: rarrlp, + rarrpl: rarrpl, + rarrsim: rarrsim, + rarrtl: rarrtl, + rarrw: rarrw, + ratail: ratail, + ratio: ratio, + rationals: rationals, + rbarr: rbarr, + rbbrk: rbbrk, + rbrace: rbrace, + rbrack: rbrack, + rbrke: rbrke, + rbrksld: rbrksld, + rbrkslu: rbrkslu, + rcaron: rcaron, + rcedil: rcedil, + rceil: rceil, + rcub: rcub, + rcy: rcy, + rdca: rdca, + rdldhar: rdldhar, + rdquo: rdquo, + rdquor: rdquor, + rdsh: rdsh, + real: real, + realine: realine, + realpart: realpart, + reals: reals, + rect: rect, + re: re$4, + reg: reg, + rfisht: rfisht, + rfloor: rfloor, + rfr: rfr, + rhard: rhard, + rharu: rharu, + rharul: rharul, + rho: rho, + rhov: rhov, + rightarrow: rightarrow, + rightarrowtail: rightarrowtail, + rightharpoondown: rightharpoondown, + rightharpoonup: rightharpoonup, + rightleftarrows: rightleftarrows, + rightleftharpoons: rightleftharpoons, + rightrightarrows: rightrightarrows, + rightsquigarrow: rightsquigarrow, + rightthreetimes: rightthreetimes, + ring: ring, + risingdotseq: risingdotseq, + rlarr: rlarr, + rlhar: rlhar, + rlm: rlm, + rmoust: rmoust, + rmoustache: rmoustache, + rnmid: rnmid, + roang: roang, + roarr: roarr, + robrk: robrk, + ropar: ropar, + ropf: ropf, + roplus: roplus, + rotimes: rotimes, + rpar: rpar, + rpargt: rpargt, + rppolint: rppolint, + rrarr: rrarr, + rsaquo: rsaquo, + rscr: rscr, + rsh: rsh, + rsqb: rsqb, + rsquo: rsquo, + rsquor: rsquor, + rthree: rthree, + rtimes: rtimes, + rtri: rtri, + rtrie: rtrie, + rtrif: rtrif, + rtriltri: rtriltri, + ruluhar: ruluhar, + rx: rx, + sacute: sacute, + sbquo: sbquo, + sc: sc, + scE: scE, + scap: scap, + scaron: scaron, + sccue: sccue, + sce: sce, + scedil: scedil, + scirc: scirc, + scnE: scnE, + scnap: scnap, + scnsim: scnsim, + scpolint: scpolint, + scsim: scsim, + scy: scy, + sdot: sdot, + sdotb: sdotb, + sdote: sdote, + seArr: seArr, + searhk: searhk, + searr: searr, + searrow: searrow, + sec: sec, + sect: sect, + semi: semi, + seswar: seswar, + setminus: setminus, + setmn: setmn, + sext: sext, + sfr: sfr, + sfrown: sfrown, + sharp: sharp, + shchcy: shchcy, + shcy: shcy, + shortmid: shortmid, + shortparallel: shortparallel, + sh: sh, + shy: shy, + sigma: sigma, + sigmaf: sigmaf, + sigmav: sigmav, + sim: sim, + simdot: simdot, + sime: sime, + simeq: simeq, + simg: simg, + simgE: simgE, + siml: siml, + simlE: simlE, + simne: simne, + simplus: simplus, + simrarr: simrarr, + slarr: slarr, + smallsetminus: smallsetminus, + smashp: smashp, + smeparsl: smeparsl, + smid: smid, + smile: smile, + smt: smt, + smte: smte, + smtes: smtes, + softcy: softcy, + sol: sol, + solb: solb, + solbar: solbar, + sopf: sopf, + spades: spades, + spadesuit: spadesuit, + spar: spar, + sqcap: sqcap, + sqcaps: sqcaps, + sqcup: sqcup, + sqcups: sqcups, + sqsub: sqsub, + sqsube: sqsube, + sqsubset: sqsubset, + sqsubseteq: sqsubseteq, + sqsup: sqsup, + sqsupe: sqsupe, + sqsupset: sqsupset, + sqsupseteq: sqsupseteq, + squ: squ, + square: square, + squarf: squarf, + squf: squf, + srarr: srarr, + sscr: sscr, + ssetmn: ssetmn, + ssmile: ssmile, + sstarf: sstarf, + star: star, + starf: starf, + straightepsilon: straightepsilon, + straightphi: straightphi, + strns: strns, + sub: sub, + subE: subE, + subdot: subdot, + sube: sube, + subedot: subedot, + submult: submult, + subnE: subnE, + subne: subne, + subplus: subplus, + subrarr: subrarr, + subset: subset, + subseteq: subseteq, + subseteqq: subseteqq, + subsetneq: subsetneq, + subsetneqq: subsetneqq, + subsim: subsim, + subsub: subsub, + subsup: subsup, + succ: succ, + succapprox: succapprox, + succcurlyeq: succcurlyeq, + succeq: succeq, + succnapprox: succnapprox, + succneqq: succneqq, + succnsim: succnsim, + succsim: succsim, + sum: sum, + sung: sung, + sup: sup, + sup1: sup1, + sup2: sup2, + sup3: sup3, + supE: supE, + supdot: supdot, + supdsub: supdsub, + supe: supe, + supedot: supedot, + suphsol: suphsol, + suphsub: suphsub, + suplarr: suplarr, + supmult: supmult, + supnE: supnE, + supne: supne, + supplus: supplus, + supset: supset, + supseteq: supseteq, + supseteqq: supseteqq, + supsetneq: supsetneq, + supsetneqq: supsetneqq, + supsim: supsim, + supsub: supsub, + supsup: supsup, + swArr: swArr, + swarhk: swarhk, + swarr: swarr, + swarrow: swarrow, + swnwar: swnwar, + szli: szli, + szlig: szlig, + target: target, + tau: tau, + tbrk: tbrk, + tcaron: tcaron, + tcedil: tcedil, + tcy: tcy, + tdot: tdot, + telrec: telrec, + tfr: tfr, + there4: there4, + therefore: therefore, + theta: theta, + thetasym: thetasym, + thetav: thetav, + thickapprox: thickapprox, + thicksim: thicksim, + thinsp: thinsp, + thkap: thkap, + thksim: thksim, + thor: thor, + thorn: thorn, + tilde: tilde, + time: time, + times: times, + timesb: timesb, + timesbar: timesbar, + timesd: timesd, + tint: tint, + toea: toea, + top: top, + topbot: topbot, + topcir: topcir, + topf: topf, + topfork: topfork, + tosa: tosa, + tprime: tprime, + trade: trade, + triangle: triangle, + triangledown: triangledown, + triangleleft: triangleleft, + trianglelefteq: trianglelefteq, + triangleq: triangleq, + triangleright: triangleright, + trianglerighteq: trianglerighteq, + tridot: tridot, + trie: trie, + triminus: triminus, + triplus: triplus, + trisb: trisb, + tritime: tritime, + trpezium: trpezium, + tscr: tscr, + tscy: tscy, + tshcy: tshcy, + tstrok: tstrok, + twixt: twixt, + twoheadleftarrow: twoheadleftarrow, + twoheadrightarrow: twoheadrightarrow, + uArr: uArr, + uHar: uHar, + uacut: uacut, + uacute: uacute, + uarr: uarr, + ubrcy: ubrcy, + ubreve: ubreve, + ucir: ucir, + ucirc: ucirc, + ucy: ucy, + udarr: udarr, + udblac: udblac, + udhar: udhar, + ufisht: ufisht, + ufr: ufr, + ugrav: ugrav, + ugrave: ugrave, + uharl: uharl, + uharr: uharr, + uhblk: uhblk, + ulcorn: ulcorn, + ulcorner: ulcorner, + ulcrop: ulcrop, + ultri: ultri, + umacr: umacr, + um: um, + uml: uml, + uogon: uogon, + uopf: uopf, + uparrow: uparrow, + updownarrow: updownarrow, + upharpoonleft: upharpoonleft, + upharpoonright: upharpoonright, + uplus: uplus, + upsi: upsi, + upsih: upsih, + upsilon: upsilon, + upuparrows: upuparrows, + urcorn: urcorn, + urcorner: urcorner, + urcrop: urcrop, + uring: uring, + urtri: urtri, + uscr: uscr, + utdot: utdot, + utilde: utilde, + utri: utri, + utrif: utrif, + uuarr: uuarr, + uum: uum, + uuml: uuml, + uwangle: uwangle, + vArr: vArr, + vBar: vBar, + vBarv: vBarv, + vDash: vDash, + vangrt: vangrt, + varepsilon: varepsilon, + varkappa: varkappa, + varnothing: varnothing, + varphi: varphi, + varpi: varpi, + varpropto: varpropto, + varr: varr, + varrho: varrho, + varsigma: varsigma, + varsubsetneq: varsubsetneq, + varsubsetneqq: varsubsetneqq, + varsupsetneq: varsupsetneq, + varsupsetneqq: varsupsetneqq, + vartheta: vartheta, + vartriangleleft: vartriangleleft, + vartriangleright: vartriangleright, + vcy: vcy, + vdash: vdash, + vee: vee, + veebar: veebar, + veeeq: veeeq, + vellip: vellip, + verbar: verbar, + vert: vert, + vfr: vfr, + vltri: vltri, + vnsub: vnsub, + vnsup: vnsup, + vopf: vopf, + vprop: vprop, + vrtri: vrtri, + vscr: vscr, + vsubnE: vsubnE, + vsubne: vsubne, + vsupnE: vsupnE, + vsupne: vsupne, + vzigzag: vzigzag, + wcirc: wcirc, + wedbar: wedbar, + wedge: wedge, + wedgeq: wedgeq, + weierp: weierp, + wfr: wfr, + wopf: wopf, + wp: wp, + wr: wr, + wreath: wreath, + wscr: wscr, + xcap: xcap, + xcirc: xcirc, + xcup: xcup, + xdtri: xdtri, + xfr: xfr, + xhArr: xhArr, + xharr: xharr, + xi: xi, + xlArr: xlArr, + xlarr: xlarr, + xmap: xmap, + xnis: xnis, + xodot: xodot, + xopf: xopf, + xoplus: xoplus, + xotime: xotime, + xrArr: xrArr, + xrarr: xrarr, + xscr: xscr, + xsqcup: xsqcup, + xuplus: xuplus, + xutri: xutri, + xvee: xvee, + xwedge: xwedge, + yacut: yacut, + yacute: yacute, + yacy: yacy, + ycirc: ycirc, + ycy: ycy, + ye: ye, + yen: yen, + yfr: yfr, + yicy: yicy, + yopf: yopf, + yscr: yscr, + yucy: yucy, + yum: yum, + yuml: yuml, + zacute: zacute, + zcaron: zcaron, + zcy: zcy, + zdot: zdot, + zeetrf: zeetrf, + zeta: zeta, + zfr: zfr, + zhcy: zhcy, + zigrarr: zigrarr, + zopf: zopf, + zscr: zscr, + zwj: zwj, + zwnj: zwnj +}; + +var characterEntities = require$$0; - value += sequence; - } +var decodeEntity_1 = decodeEntity; - exit(); - return value -} +var own$4 = {}.hasOwnProperty; -function map$4(line, _, blank) { - return (blank ? '' : ' ') + line +function decodeEntity(characters) { + return own$4.call(characterEntities, characters) + ? characterEntities[characters] + : false } -var association_1 = association; +var association_1 = association$3; +var decode = decodeEntity_1; - -var characterEscape$1 = /\\([!-/:-@[-`{-~])/g; -var characterReference$1 = /&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; +var characterEscape = /\\([!-/:-@[-`{-~])/g; +var characterReference = /&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; // The `label` of an association is the string value: character escapes and // references work, and casing is intact. @@ -38653,23 +48751,23 @@ var characterReference$1 = /&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; // So, we do prefer the label when figuring out how we’re going to serialize: // it has whitespace, casing, and we can ignore most useless character escapes // and all character references. -function association(node) { +function association$3(node) { if (node.label || !node.identifier) { return node.label || '' } return node.identifier - .replace(characterEscape$1, '$1') - .replace(characterReference$1, decodeIfPossible) + .replace(characterEscape, '$1') + .replace(characterReference, decodeIfPossible) } function decodeIfPossible($0, $1) { - return decodeEntity_1($1) || $0 + return decode($1) || $0 } -var checkQuote_1 = checkQuote; +var checkQuote_1 = checkQuote$3; -function checkQuote(context) { +function checkQuote$3(context) { var marker = context.options.quote || '"'; if (marker !== '"' && marker !== "'") { @@ -38683,19 +48781,19 @@ function checkQuote(context) { return marker } -var definition_1$1 = definition$1; - - - +var definition_1 = definition; +var association$2 = association_1; +var checkQuote$2 = checkQuote_1; +var safe$5 = safe_1; -function definition$1(node, _, context) { - var marker = checkQuote_1(context); +function definition(node, _, context) { + var marker = checkQuote$2(context); var suffix = marker === '"' ? 'Quote' : 'Apostrophe'; var exit = context.enter('definition'); var subexit = context.enter('label'); var value = - '[' + safe_1(context, association_1(node), {before: '[', after: ']'}) + ']: '; + '[' + safe$5(context, association$2(node), {before: '[', after: ']'}) + ']: '; subexit(); @@ -38706,11 +48804,11 @@ function definition$1(node, _, context) { /[ \t\r\n]/.test(node.url) ) { subexit = context.enter('destinationLiteral'); - value += '<' + safe_1(context, node.url, {before: '<', after: '>'}) + '>'; + value += '<' + safe$5(context, node.url, {before: '<', after: '>'}) + '>'; } else { // No whitespace, raw is prettier. subexit = context.enter('destinationRaw'); - value += safe_1(context, node.url, {before: ' ', after: ' '}); + value += safe$5(context, node.url, {before: ' ', after: ' '}); } subexit(); @@ -38720,7 +48818,7 @@ function definition$1(node, _, context) { value += ' ' + marker + - safe_1(context, node.title, {before: marker, after: marker}) + + safe$5(context, node.title, {before: marker, after: marker}) + marker; subexit(); } @@ -38730,9 +48828,9 @@ function definition$1(node, _, context) { return value } -var checkEmphasis_1 = checkEmphasis; +var checkEmphasis_1 = checkEmphasis$1; -function checkEmphasis(context) { +function checkEmphasis$1(context) { var marker = context.options.emphasis || '*'; if (marker !== '*' && marker !== '_') { @@ -38746,9 +48844,9 @@ function checkEmphasis(context) { return marker } -var containerPhrasing = phrasing; +var containerPhrasing$1 = phrasing$6; -function phrasing(parent, context, safeOptions) { +function phrasing$6(parent, context, safeOptions) { var children = parent.children || []; var results = []; var index = -1; @@ -38773,12 +48871,31 @@ function phrasing(parent, context, safeOptions) { after = safeOptions.after; } + // In some cases, html (text) can be found in phrasing right after an eol. + // When we’d serialize that, in most cases that would be seen as html + // (flow). + // As we can’t escape or so to prevent it from happening, we take a somewhat + // reasonable approach: replace that eol with a space. + // See: + if ( + results.length > 0 && + (before === '\r' || before === '\n') && + child.type === 'html' + ) { + results[results.length - 1] = results[results.length - 1].replace( + /(\r?\n|\r)$/, + ' ' + ); + before = ' '; + } + results.push( context.handle(child, parent, context, { before: before, after: after }) ); + before = results[results.length - 1].slice(-1); } @@ -38788,17 +48905,17 @@ function phrasing(parent, context, safeOptions) { var emphasis_1 = emphasis; emphasis.peek = emphasisPeek; - - +var checkEmphasis = checkEmphasis_1; +var phrasing$5 = containerPhrasing$1; // To do: there are cases where emphasis cannot “form” depending on the // previous or next character of sequences. // There’s no way around that though, except for injecting zero-width stuff. // Do we need to safeguard against that? function emphasis(node, _, context) { - var marker = checkEmphasis_1(context); + var marker = checkEmphasis(context); var exit = context.enter('emphasis'); - var value = containerPhrasing(node, context, {before: marker, after: marker}); + var value = phrasing$5(node, context, {before: marker, after: marker}); exit(); return marker + value + marker } @@ -38807,21 +48924,49 @@ function emphasisPeek(node, _, context) { return context.options.emphasis || '*' } -var formatHeadingAsSetext_1 = formatHeadingAsSetext; - - +var mdastUtilToString = toString$3; -function formatHeadingAsSetext(node, context) { +// Get the text content of a node. +// Prefer the node’s plain-text fields, otherwise serialize its children, +// and if the given value is an array, serialize the nodes in it. +function toString$3(node) { return ( - context.options.setext && (!node.depth || node.depth < 3) && mdastUtilToString(node) + (node && + (node.value || + node.alt || + node.title || + ('children' in node && all$1(node.children)) || + ('length' in node && all$1(node)))) || + '' ) } -var heading_1 = heading; +function all$1(values) { + var result = []; + var index = -1; + + while (++index < values.length) { + result[index] = toString$3(values[index]); + } + + return result.join('') +} + +var formatHeadingAsSetext_1 = formatHeadingAsSetext$2; +var toString$2 = mdastUtilToString; +function formatHeadingAsSetext$2(node, context) { + return ( + context.options.setext && (!node.depth || node.depth < 3) && toString$2(node) + ) +} +var heading_1 = heading; +var repeat$3 = repeatString; +var formatHeadingAsSetext$1 = formatHeadingAsSetext_1; +var phrasing$4 = containerPhrasing$1; function heading(node, _, context) { var rank = Math.max(Math.min(6, node.depth || 1), 1); @@ -38830,17 +48975,17 @@ function heading(node, _, context) { var value; var sequence; - if (formatHeadingAsSetext_1(node, context)) { + if (formatHeadingAsSetext$1(node, context)) { exit = context.enter('headingSetext'); subexit = context.enter('phrasing'); - value = containerPhrasing(node, context, {before: '\n', after: '\n'}); + value = phrasing$4(node, context, {before: '\n', after: '\n'}); subexit(); exit(); return ( value + '\n' + - repeatString( + repeat$3( rank === 1 ? '=' : '-', // The whole size… value.length - @@ -38851,10 +48996,10 @@ function heading(node, _, context) { ) } - sequence = repeatString('#', rank); + sequence = repeat$3('#', rank); exit = context.enter('headingAtx'); subexit = context.enter('phrasing'); - value = containerPhrasing(node, context, {before: '# ', after: '\n'}); + value = phrasing$4(node, context, {before: '# ', after: '\n'}); value = value ? sequence + ' ' + value : sequence; if (context.options.closeAtx) { value += ' ' + sequence; @@ -38867,23 +49012,28 @@ function heading(node, _, context) { } var html_1 = html; +html.peek = htmlPeek; function html(node) { return node.value || '' } -var image_1 = image$1; -image$1.peek = imagePeek; - +function htmlPeek() { + return '<' +} +var image_1 = image; +image.peek = imagePeek; +var checkQuote$1 = checkQuote_1; +var safe$4 = safe_1; -function image$1(node, _, context) { - var quote = checkQuote_1(context); +function image(node, _, context) { + var quote = checkQuote$1(context); var suffix = quote === '"' ? 'Quote' : 'Apostrophe'; var exit = context.enter('image'); var subexit = context.enter('label'); - var value = '![' + safe_1(context, node.alt, {before: '[', after: ']'}) + ']('; + var value = '![' + safe$4(context, node.alt, {before: '[', after: ']'}) + ']('; subexit(); @@ -38894,11 +49044,11 @@ function image$1(node, _, context) { /[ \t\r\n]/.test(node.url) ) { subexit = context.enter('destinationLiteral'); - value += '<' + safe_1(context, node.url, {before: '<', after: '>'}) + '>'; + value += '<' + safe$4(context, node.url, {before: '<', after: '>'}) + '>'; } else { // No whitespace, raw is prettier. subexit = context.enter('destinationRaw'); - value += safe_1(context, node.url, { + value += safe$4(context, node.url, { before: '(', after: node.title ? ' ' : ')' }); @@ -38911,7 +49061,7 @@ function image$1(node, _, context) { value += ' ' + quote + - safe_1(context, node.title, {before: quote, after: quote}) + + safe$4(context, node.title, {before: quote, after: quote}) + quote; subexit(); } @@ -38929,14 +49079,14 @@ function imagePeek() { var imageReference_1 = imageReference; imageReference.peek = imageReferencePeek; - - +var association$1 = association_1; +var safe$3 = safe_1; function imageReference(node, _, context) { var type = node.referenceType; var exit = context.enter('imageReference'); var subexit = context.enter('label'); - var alt = safe_1(context, node.alt, {before: '[', after: ']'}); + var alt = safe$3(context, node.alt, {before: '[', after: ']'}); var value = '![' + alt + ']'; var reference; var stack; @@ -38946,7 +49096,7 @@ function imageReference(node, _, context) { stack = context.stack; context.stack = []; subexit = context.enter('reference'); - reference = safe_1(context, association_1(node), {before: '[', after: ']'}); + reference = safe$3(context, association$1(node), {before: '[', after: ']'}); subexit(); context.stack = stack; exit(); @@ -38964,13 +49114,19 @@ function imageReferencePeek() { return '!' } -var inlineCode_1 = inlineCode; -inlineCode.peek = inlineCodePeek; +var inlineCode_1 = inlineCode$1; +inlineCode$1.peek = inlineCodePeek$1; + +var patternCompile$1 = patternCompile_1; -function inlineCode(node) { +function inlineCode$1(node, parent, context) { var value = node.value || ''; var sequence = '`'; - var pad = ''; + var index = -1; + var pattern; + var expression; + var match; + var position; // If there is a single grave accent on its own in the code, use a fence of // two. @@ -38986,22 +49142,54 @@ function inlineCode(node) { (/[ \r\n`]/.test(value.charAt(0)) || /[ \r\n`]/.test(value.charAt(value.length - 1))) ) { - pad = ' '; + value = ' ' + value + ' '; + } + + // We have a potential problem: certain characters after eols could result in + // blocks being seen. + // For example, if someone injected the string `'\n# b'`, then that would + // result in an ATX heading. + // We can’t escape characters in `inlineCode`, but because eols are + // transformed to spaces when going from markdown to HTML anyway, we can swap + // them out. + while (++index < context.unsafe.length) { + pattern = context.unsafe[index]; + + // Only look for `atBreak`s. + // Btw: note that `atBreak` patterns will always start the regex at LF or + // CR. + if (!pattern.atBreak) continue + + expression = patternCompile$1(pattern); + + while ((match = expression.exec(value))) { + position = match.index; + + // Support CRLF (patterns only look for one of the characters). + if ( + value.charCodeAt(position) === 10 /* `\n` */ && + value.charCodeAt(position - 1) === 13 /* `\r` */ + ) { + position--; + } + + value = value.slice(0, position) + ' ' + value.slice(match.index + 1); + } } - return sequence + pad + value + pad + sequence + return sequence + value + sequence } -function inlineCodePeek() { +function inlineCodePeek$1() { return '`' } -var formatLinkAsAutolink_1 = formatLinkAsAutolink; +var formatLinkAsAutolink_1 = formatLinkAsAutolink$1; +var toString$1 = mdastUtilToString; - -function formatLinkAsAutolink(node, context) { - var raw = mdastUtilToString(node); +function formatLinkAsAutolink$1(node, context) { + var raw = toString$1(node); return ( !context.options.resourceLink && @@ -39023,28 +49211,28 @@ function formatLinkAsAutolink(node, context) { ) } -var link_1 = link$2; -link$2.peek = linkPeek; - - - +var link_1 = link; +link.peek = linkPeek; +var checkQuote = checkQuote_1; +var formatLinkAsAutolink = formatLinkAsAutolink_1; +var phrasing$3 = containerPhrasing$1; +var safe$2 = safe_1; - -function link$2(node, _, context) { - var quote = checkQuote_1(context); +function link(node, _, context) { + var quote = checkQuote(context); var suffix = quote === '"' ? 'Quote' : 'Apostrophe'; var exit; var subexit; var value; var stack; - if (formatLinkAsAutolink_1(node, context)) { + if (formatLinkAsAutolink(node, context)) { // Hide the fact that we’re in phrasing, because escapes don’t work. stack = context.stack; context.stack = []; exit = context.enter('autolink'); - value = '<' + containerPhrasing(node, context, {before: '<', after: '>'}) + '>'; + value = '<' + phrasing$3(node, context, {before: '<', after: '>'}) + '>'; exit(); context.stack = stack; return value @@ -39052,7 +49240,7 @@ function link$2(node, _, context) { exit = context.enter('link'); subexit = context.enter('label'); - value = '[' + containerPhrasing(node, context, {before: '[', after: ']'}) + ']('; + value = '[' + phrasing$3(node, context, {before: '[', after: ']'}) + ']('; subexit(); if ( @@ -39062,11 +49250,11 @@ function link$2(node, _, context) { /[ \t\r\n]/.test(node.url) ) { subexit = context.enter('destinationLiteral'); - value += '<' + safe_1(context, node.url, {before: '<', after: '>'}) + '>'; + value += '<' + safe$2(context, node.url, {before: '<', after: '>'}) + '>'; } else { // No whitespace, raw is prettier. subexit = context.enter('destinationRaw'); - value += safe_1(context, node.url, { + value += safe$2(context, node.url, { before: '(', after: node.title ? ' ' : ')' }); @@ -39079,7 +49267,7 @@ function link$2(node, _, context) { value += ' ' + quote + - safe_1(context, node.title, {before: quote, after: quote}) + + safe$2(context, node.title, {before: quote, after: quote}) + quote; subexit(); } @@ -39091,21 +49279,21 @@ function link$2(node, _, context) { } function linkPeek(node, _, context) { - return formatLinkAsAutolink_1(node, context) ? '<' : '[' + return formatLinkAsAutolink(node, context) ? '<' : '[' } var linkReference_1 = linkReference; linkReference.peek = linkReferencePeek; - - - +var association = association_1; +var phrasing$2 = containerPhrasing$1; +var safe$1 = safe_1; function linkReference(node, _, context) { var type = node.referenceType; var exit = context.enter('linkReference'); var subexit = context.enter('label'); - var text = containerPhrasing(node, context, {before: '[', after: ']'}); + var text = phrasing$2(node, context, {before: '[', after: ']'}); var value = '[' + text + ']'; var reference; var stack; @@ -39115,7 +49303,7 @@ function linkReference(node, _, context) { stack = context.stack; context.stack = []; subexit = context.enter('reference'); - reference = safe_1(context, association_1(node), {before: '[', after: ']'}); + reference = safe$1(context, association(node), {before: '[', after: ']'}); subexit(); context.stack = stack; exit(); @@ -39133,20 +49321,20 @@ function linkReferencePeek() { return '[' } -var list_1$1 = list$1; - +var list_1 = list; +var flow$2 = containerFlow$1; -function list$1(node, _, context) { +function list(node, _, context) { var exit = context.enter('list'); - var value = containerFlow(node, context); + var value = flow$2(node, context); exit(); return value } -var checkBullet_1 = checkBullet; +var checkBullet_1 = checkBullet$2; -function checkBullet(context) { +function checkBullet$2(context) { var marker = context.options.bullet || '*'; if (marker !== '*' && marker !== '+' && marker !== '-') { @@ -39160,9 +49348,9 @@ function checkBullet(context) { return marker } -var checkListItemIndent_1 = checkListItemIndent; +var checkListItemIndent_1 = checkListItemIndent$2; -function checkListItemIndent(context) { +function checkListItemIndent$2(context) { var style = context.options.listItemIndent || 'tab'; if (style === 1 || style === '1') { @@ -39180,17 +49368,17 @@ function checkListItemIndent(context) { return style } -var listItem_1 = listItem; +var listItem_1 = listItem$1; +var repeat$2 = repeatString; +var checkBullet$1 = checkBullet_1; +var checkListItemIndent$1 = checkListItemIndent_1; +var flow$1 = containerFlow$1; +var indentLines$1 = indentLines_1; - - - - - -function listItem(node, parent, context) { - var bullet = checkBullet_1(context); - var listItemIndent = checkListItemIndent_1(context); +function listItem$1(node, parent, context) { + var bullet = checkBullet$1(context); + var listItemIndent = checkListItemIndent$1(context); var size; var value; var exit; @@ -39214,44 +49402,44 @@ function listItem(node, parent, context) { } exit = context.enter('listItem'); - value = indentLines_1(containerFlow(node, context), map); + value = indentLines$1(flow$1(node, context), map); exit(); return value function map(line, index, blank) { if (index) { - return (blank ? '' : repeatString(' ', size)) + line + return (blank ? '' : repeat$2(' ', size)) + line } - return (blank ? bullet : bullet + repeatString(' ', size - bullet.length)) + line + return (blank ? bullet : bullet + repeat$2(' ', size - bullet.length)) + line } } var paragraph_1 = paragraph; - +var phrasing$1 = containerPhrasing$1; function paragraph(node, _, context) { var exit = context.enter('paragraph'); var subexit = context.enter('phrasing'); - var value = containerPhrasing(node, context, {before: '\n', after: '\n'}); + var value = phrasing$1(node, context, {before: '\n', after: '\n'}); subexit(); exit(); return value } -var root_1 = root$1; - +var root_1 = root; +var flow = containerFlow$1; -function root$1(node, _, context) { - return containerFlow(node, context) +function root(node, _, context) { + return flow(node, context) } -var checkStrong_1 = checkStrong; +var checkStrong_1 = checkStrong$1; -function checkStrong(context) { +function checkStrong$1(context) { var marker = context.options.strong || '*'; if (marker !== '*' && marker !== '_') { @@ -39268,17 +49456,17 @@ function checkStrong(context) { var strong_1 = strong; strong.peek = strongPeek; - - +var checkStrong = checkStrong_1; +var phrasing = containerPhrasing$1; // To do: there are cases where emphasis cannot “form” depending on the // previous or next character of sequences. // There’s no way around that though, except for injecting zero-width stuff. // Do we need to safeguard against that? function strong(node, _, context) { - var marker = checkStrong_1(context); + var marker = checkStrong(context); var exit = context.enter('strong'); - var value = containerPhrasing(node, context, {before: marker, after: marker}); + var value = phrasing(node, context, {before: marker, after: marker}); exit(); return marker + marker + value + marker + marker } @@ -39287,17 +49475,17 @@ function strongPeek(node, _, context) { return context.options.strong || '*' } -var text_1$2 = text$2; +var text_1 = text$1; +var safe = safe_1; - -function text$2(node, parent, context, safeOptions) { - return safe_1(context, node.value, safeOptions) +function text$1(node, parent, context, safeOptions) { + return safe(context, node.value, safeOptions) } -var checkRuleRepeat = checkRule; +var checkRuleRepeat = checkRule$2; -function checkRule(context) { +function checkRule$2(context) { var repetition = context.options.ruleRepetition || 3; if (repetition < 3) { @@ -39327,69 +49515,46 @@ function checkRule$1(context) { return marker } -var thematicBreak_1$1 = thematicBreak$1; - - - +var thematicBreak_1 = thematicBreak; +var repeat$1 = repeatString; +var checkRepeat = checkRuleRepeat; +var checkRule = checkRule_1; -function thematicBreak$1(node, parent, context) { - var value = repeatString( - checkRule_1(context) + (context.options.ruleSpaces ? ' ' : ''), - checkRuleRepeat(context) +function thematicBreak(node, parent, context) { + var value = repeat$1( + checkRule(context) + (context.options.ruleSpaces ? ' ' : ''), + checkRepeat(context) ); return context.options.ruleSpaces ? value.slice(0, -1) : value } -var blockquote$1 = blockquote_1; -var _break$1 = _break; -var code$1 = code_1; -var definition$2 = definition_1$1; -var emphasis$1 = emphasis_1; -var hardBreak$1 = _break; -var heading$1 = heading_1; -var html$1 = html_1; -var image$2 = image_1; -var imageReference$1 = imageReference_1; -var inlineCode$1 = inlineCode_1; -var link$3 = link_1; -var linkReference$1 = linkReference_1; -var list$2 = list_1$1; -var listItem$1 = listItem_1; -var paragraph$1 = paragraph_1; -var root$2 = root_1; -var strong$1 = strong_1; -var text$3 = text_1$2; -var thematicBreak$2 = thematicBreak_1$1; - -var handle = { - blockquote: blockquote$1, - break: _break$1, - code: code$1, - definition: definition$2, - emphasis: emphasis$1, - hardBreak: hardBreak$1, - heading: heading$1, - html: html$1, - image: image$2, - imageReference: imageReference$1, - inlineCode: inlineCode$1, - link: link$3, - linkReference: linkReference$1, - list: list$2, - listItem: listItem$1, - paragraph: paragraph$1, - root: root$2, - strong: strong$1, - text: text$3, - thematicBreak: thematicBreak$2 -}; - -var join$2 = [joinDefaults]; - - - +handle.blockquote = blockquote_1; +handle.break = _break; +handle.code = code_1; +handle.definition = definition_1; +handle.emphasis = emphasis_1; +handle.hardBreak = _break; +handle.heading = heading_1; +handle.html = html_1; +handle.image = image_1; +handle.imageReference = imageReference_1; +handle.inlineCode = inlineCode_1; +handle.link = link_1; +handle.linkReference = linkReference_1; +handle.list = list_1; +handle.listItem = listItem_1; +handle.paragraph = paragraph_1; +handle.root = root_1; +handle.strong = strong_1; +handle.text = text_1; +handle.thematicBreak = thematicBreak_1; + +var join = [joinDefaults]; + +var formatCodeAsIndented = formatCodeAsIndented_1; +var formatHeadingAsSetext = formatHeadingAsSetext_1; function joinDefaults(left, right, parent, context) { if ( @@ -39399,9 +49564,9 @@ function joinDefaults(left, right, parent, context) { Boolean(left.ordered) === Boolean(right.ordered)) || // Indented code after list or another indented code. (right.type === 'code' && - formatCodeAsIndented_1(right, context) && + formatCodeAsIndented(right, context) && (left.type === 'list' || - (left.type === right.type && formatCodeAsIndented_1(left, context)))) + (left.type === right.type && formatCodeAsIndented(left, context)))) ) { return false } @@ -39415,7 +49580,7 @@ function joinDefaults(left, right, parent, context) { (left.type === right.type || right.type === 'definition' || // Paragraph followed by a setext heading. - (right.type === 'heading' && formatHeadingAsSetext_1(right, context))) + (right.type === 'heading' && formatHeadingAsSetext(right, context))) ) { return } @@ -39462,6 +49627,7 @@ var unsafe = [ {character: '"', inConstruct: 'titleQuote'}, // A number sign could start an ATX heading if it starts a line. {atBreak: true, character: '#'}, + {character: '#', inConstruct: 'headingAtx', after: '(?:[\r\n]|$)'}, // Dollar sign and percentage are not used in markdown. // An ampersand could start a character reference. {character: '&', after: '[#A-Za-z]', inConstruct: 'phrasing'}, @@ -39502,13 +49668,10 @@ var unsafe = [ // Question mark and at sign are not used in markdown for constructs. // A left bracket can start definitions, references, labels, {atBreak: true, character: '['}, - { - character: '[', - inConstruct: ['phrasing', 'label', 'reference'] - }, + {character: '[', inConstruct: ['phrasing', 'label', 'reference']}, // A backslash can start an escape (when followed by punctuation) or a // hard break (when followed by an eol). - {character: '\\', after: '[!-/:-@[-`{-~]'}, + // Note: typical escapes are handled in `safe`! {character: '\\', after: '[\\r\\n]', inConstruct: 'phrasing'}, // A right bracket can exit labels. { @@ -39537,15 +49700,15 @@ var unsafe = [ {atBreak: true, character: '~'} ]; -var lib$8 = toMarkdown; - - - +var lib = toMarkdown$1; +var zwitch = zwitch$1; +var configure = configure_1; +var defaultHandlers = handle; +var defaultJoin = join; +var defaultUnsafe = unsafe; - - -function toMarkdown(tree, options) { +function toMarkdown$1(tree, options) { var settings = options || {}; var context = { enter: enter, @@ -39557,12 +49720,12 @@ function toMarkdown(tree, options) { }; var result; - configure_1$2(context, { - unsafe: unsafe, - join: join$2, - handlers: handle + configure(context, { + unsafe: defaultUnsafe, + join: defaultJoin, + handlers: defaultHandlers }); - configure_1$2(context, settings); + configure(context, settings); if (context.options.tightDefinitions) { context.join = [joinDefinition].concat(context.join); @@ -39611,19 +49774,19 @@ function joinDefinition(left, right) { } } -var mdastUtilToMarkdown = lib$8; +var mdastUtilToMarkdown = lib; -var remarkStringify = stringify$6; +var remarkStringify = stringify$1; +var toMarkdown = mdastUtilToMarkdown; - -function stringify$6(options) { +function stringify$1(options) { var self = this; this.Compiler = compile; function compile(tree) { - return mdastUtilToMarkdown( + return toMarkdown( tree, Object.assign({}, self.data('settings'), options, { // Note: this option is not in the readme. @@ -39635,13 +49798,17 @@ function stringify$6(options) { } } -var remark = unified_1().use(remarkParse).use(remarkStringify).freeze(); +var unified = unified_1; +var parse$1 = remarkParse; +var stringify = remarkStringify; + +var remark = unified().use(parse$1).use(stringify).freeze(); -const name = "remark"; +const name$1 = "remark"; const version$1 = "13.0.0"; -const description = "Markdown processor powered by plugins part of the unified collective"; +const description$1 = "Markdown processor powered by plugins part of the unified collective"; const license = "MIT"; -const keywords$1 = [ +const keywords = [ "unified", "remark", "markdown", @@ -39671,22 +49838,22 @@ const files = [ "index.js", "types/index.d.ts" ]; -const types = "types/index.d.ts"; -const dependencies = { +const types$1 = "types/index.d.ts"; +const dependencies$1 = { "remark-parse": "^9.0.0", "remark-stringify": "^9.0.0", unified: "^9.1.0" }; -const scripts = { +const scripts$1 = { test: "tape test.js" }; const xo = false; -var proc = { - name: name, +var require$$3 = { + name: name$1, version: version$1, - description: description, + description: description$1, license: license, - keywords: keywords$1, + keywords: keywords, homepage: homepage, repository: repository, bugs: bugs, @@ -39694,43 +49861,42 @@ var proc = { author: author, contributors: contributors, files: files, - types: types, - dependencies: dependencies, - scripts: scripts, + types: types$1, + dependencies: dependencies$1, + scripts: scripts$1, xo: xo }; -const name$1 = "node-lint-md-cli-rollup"; -const description$1 = "remark packaged for Node.js Markdown linting"; -const version$2 = "2.0.2"; +const name = "node-lint-md-cli-rollup"; +const description = "remark packaged for Node.js Markdown linting"; +const version = "2.0.2"; const devDependencies = { - "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.0.1", - rollup: "^2.36.1", + "@rollup/plugin-node-resolve": "^13.0.4", + rollup: "^2.52.7", shx: "^0.3.3" }; -const dependencies$1 = { +const dependencies = { "markdown-extensions": "^1.1.1", remark: "^13.0.0", - "remark-gfm": "^1.0.0", - "remark-lint": "^8.0.0", + "remark-gfm": "^2.0.0", "remark-preset-lint-node": "^3.0.0", "unified-args": "^8.1.0" }; const main = "dist/index.js"; -const scripts$1 = { +const scripts = { build: "npx rollup -c", "build-node": "npm run build && npx shx cp dist/index.js ../lint-md.js" }; -var cli = { - name: name$1, - description: description$1, - version: version$2, +var require$$4 = { + name: name, + description: description, + version: version, devDependencies: devDependencies, - dependencies: dependencies$1, + dependencies: dependencies, main: main, - scripts: scripts$1 + scripts: scripts }; /** @@ -39747,7 +49913,7 @@ var cli = { * * @param {string|Uint8Array|VFile} file */ -function location(file) { +function location$5(file) { var value = String(file); /** @type {Array.} */ var indices = []; @@ -39824,7 +49990,7 @@ function location(file) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$3 = +const convert$D = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -39844,19 +50010,19 @@ const convert$3 = */ function (test) { if (test === undefined || test === null) { - return ok$1 + return ok$C } if (typeof test === 'string') { - return typeFactory(test) + return typeFactory$C(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory(test) : propsFactory(test) + return Array.isArray(test) ? anyFactory$C(test) : propsFactory$B(test) } if (typeof test === 'function') { - return castFactory(test) + return castFactory$B(test) } throw new Error('Expected function, string, or object as test') @@ -39866,16 +50032,16 @@ const convert$3 = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory(tests) { +function anyFactory$C(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$3(tests[index]); + checks[index] = convert$D(tests[index]); } - return castFactory(any) + return castFactory$B(any) /** * @this {unknown} @@ -39900,8 +50066,8 @@ function anyFactory(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory(check) { - return castFactory(all) +function propsFactory$B(check) { + return castFactory$B(all) /** * @param {Node} node @@ -39927,8 +50093,8 @@ function propsFactory(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory(check) { - return castFactory(type) +function typeFactory$C(check) { + return castFactory$B(type) /** * @param {Node} node @@ -39944,7 +50110,7 @@ function typeFactory(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory(check) { +function castFactory$B(check) { return assertion /** @@ -39959,7 +50125,7 @@ function castFactory(check) { } // Utility to return true. -function ok$1() { +function ok$C() { return true } @@ -39967,7 +50133,7 @@ function ok$1() { * @param {string} d * @returns {string} */ -function color$1(d) { +function color$D(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -39980,17 +50146,17 @@ function color$1(d) { /** * Continue traversing as normal */ -const CONTINUE = true; +const CONTINUE$D = true; /** * Do not traverse this node’s children */ -const SKIP = 'skip'; +const SKIP$D = 'skip'; /** * Stop traversing immediately */ -const EXIT = false; +const EXIT$D = false; -const visitParents = +const visitParents$D = /** * @type {( * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) & @@ -40015,7 +50181,7 @@ const visitParents = test = null; } - var is = convert$3(test); + var is = convert$D(test); var step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -40042,7 +50208,7 @@ const visitParents = Object.defineProperty(visit, 'name', { value: 'node (' + - color$1(value.type + (name ? '<' + name + '>' : '')) + + color$D(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -40060,14 +50226,14 @@ const visitParents = var grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult(visitor(node, parents)); + result = toResult$C(visitor(node, parents)); - if (result[0] === EXIT) { + if (result[0] === EXIT$D) { return result } } - if (node.children && result[0] !== SKIP) { + if (node.children && result[0] !== SKIP$D) { // @ts-ignore looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-ignore looks like a parent. @@ -40077,7 +50243,7 @@ const visitParents = while (offset > -1 && offset < node.children.length) { subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT) { + if (subresult[0] === EXIT$D) { return subresult } @@ -40096,13 +50262,13 @@ const visitParents = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult(value) { +function toResult$C(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE, value] + return [CONTINUE$D, value] } return [value] @@ -40115,7 +50281,7 @@ function toResult(value) { * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult */ -const visit = +const visit$C = /** * @type {( * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) & @@ -40139,7 +50305,7 @@ const visit = test = null; } - visitParents(tree, test, overload, reverse); + visitParents$D(tree, test, overload, reverse); /** * @param {Node} node @@ -40229,7 +50395,7 @@ const visit = * @property {boolean} state */ -const own$6 = {}.hasOwnProperty; +const own$3 = {}.hasOwnProperty; /** * @type {import('unified').Plugin<[Options]>} @@ -40263,7 +50429,7 @@ function messageControl(options) { * @param {VFile} file */ function transformer(tree, file) { - const toOffset = location(file).toOffset; + const toOffset = location$5(file).toOffset; const initial = !reset; const gaps = detectGaps(tree, file); /** @type {Record} */ @@ -40271,7 +50437,7 @@ function messageControl(options) { /** @type {Mark[]} */ const globals = []; - visit(tree, options.test, visitor); + visit$C(tree, options.test, visitor); file.messages = file.messages.filter((m) => filter(m)); @@ -40439,7 +50605,7 @@ function messageControl(options) { // Toggle all known rules. if (!ruleId) { for (ruleId in scope) { - if (own$6.call(scope, ruleId)) { + if (own$3.call(scope, ruleId)) { toggle(point, state, ruleId); } } @@ -40506,7 +50672,7 @@ function detectGaps(tree, file) { let gap; // Find all gaps. - visit(tree, one); + visit$C(tree, one); // Get the end of the document. // This detects if the last node was the last node. @@ -40740,7 +50906,7 @@ function lintMessageControl() { * @param {Middleware} middleware * @param {Callback} callback */ -function wrap$1(middleware, callback) { +function wrap(middleware, callback) { /** @type {boolean} */ let called; @@ -40824,13 +50990,13 @@ function wrap$1(middleware, callback) { * @returns {void} */ -const primitives = new Set(['string', 'number', 'boolean']); +const primitives$F = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule(id, rule) { +function lintRule$F(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -40843,7 +51009,7 @@ function lintRule(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce(ruleId, raw); + const [severity, options] = coerce$G(ruleId, raw); if (!severity) return @@ -40852,7 +51018,7 @@ function lintRule(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$1(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -40882,7 +51048,7 @@ function lintRule(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce(name, value) { +function coerce$G(name, value) { /** @type {unknown[]} */ let result; @@ -40894,7 +51060,7 @@ function coerce(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives.has(typeof value[0]) + primitives$F.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -40989,7 +51155,7 @@ function coerce(name, value) { * ``` */ -const remarkLintFinalNewline = lintRule( +const remarkLintFinalNewline = lintRule$F( 'remark-lint:final-newline', /** @type {import('unified-lint-rule').Rule} */ (_, file) => { @@ -41002,92 +51168,6 @@ const remarkLintFinalNewline = lintRule( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$2(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -41103,13 +51183,13 @@ function wrap$2(middleware, callback) { * @returns {void} */ -const primitives$1 = new Set(['string', 'number', 'boolean']); +const primitives$E = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$1(id, rule) { +function lintRule$E(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -41122,7 +51202,7 @@ function lintRule$1(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$1(ruleId, raw); + const [severity, options] = coerce$F(ruleId, raw); if (!severity) return @@ -41131,7 +51211,7 @@ function lintRule$1(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$2(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -41161,7 +51241,7 @@ function lintRule$1(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$1(name, value) { +function coerce$F(name, value) { /** @type {unknown[]} */ let result; @@ -41173,7 +51253,7 @@ function coerce$1(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$1.has(typeof value[0]) + primitives$E.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -41216,9 +51296,11 @@ function coerce$1(name, value) { return result } +var pluralize = {exports: {}}; + /* global define */ -var pluralize = createCommonjsModule(function (module, exports) { +(function (module, exports) { (function (root, pluralize) { /* istanbul ignore else */ if (typeof commonjsRequire === 'function' && 'object' === 'object' && 'object' === 'object') { @@ -41715,7 +51797,9 @@ var pluralize = createCommonjsModule(function (module, exports) { return pluralize; }); -}); +}(pluralize)); + +var plural = pluralize.exports; /** * @typedef {import('unist').Node} Node @@ -41727,7 +51811,7 @@ var pluralize = createCommonjsModule(function (module, exports) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$4 = +const convert$C = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -41747,19 +51831,19 @@ const convert$4 = */ function (test) { if (test === undefined || test === null) { - return ok$2 + return ok$B } if (typeof test === 'string') { - return typeFactory$1(test) + return typeFactory$B(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$1(test) : propsFactory$1(test) + return Array.isArray(test) ? anyFactory$B(test) : propsFactory$A(test) } if (typeof test === 'function') { - return castFactory$1(test) + return castFactory$A(test) } throw new Error('Expected function, string, or object as test') @@ -41769,16 +51853,16 @@ const convert$4 = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$1(tests) { +function anyFactory$B(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$4(tests[index]); + checks[index] = convert$C(tests[index]); } - return castFactory$1(any) + return castFactory$A(any) /** * @this {unknown} @@ -41803,8 +51887,8 @@ function anyFactory$1(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$1(check) { - return castFactory$1(all) +function propsFactory$A(check) { + return castFactory$A(all) /** * @param {Node} node @@ -41830,8 +51914,8 @@ function propsFactory$1(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$1(check) { - return castFactory$1(type) +function typeFactory$B(check) { + return castFactory$A(type) /** * @param {Node} node @@ -41847,7 +51931,7 @@ function typeFactory$1(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$1(check) { +function castFactory$A(check) { return assertion /** @@ -41862,7 +51946,7 @@ function castFactory$1(check) { } // Utility to return true. -function ok$2() { +function ok$B() { return true } @@ -41870,7 +51954,7 @@ function ok$2() { * @param {string} d * @returns {string} */ -function color$2(d) { +function color$C(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -41883,15 +51967,15 @@ function color$2(d) { /** * Continue traversing as normal */ -const CONTINUE$1 = true; +const CONTINUE$C = true; /** * Do not traverse this node’s children */ -const SKIP$1 = 'skip'; +const SKIP$C = 'skip'; /** * Stop traversing immediately */ -const EXIT$1 = false; +const EXIT$C = false; /** * Visit children of tree which pass a test @@ -41901,7 +51985,7 @@ const EXIT$1 = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$1 = +const visitParents$C = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -41923,7 +52007,7 @@ const visitParents$1 = test = null; } - const is = convert$4(test); + const is = convert$C(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -41951,7 +52035,7 @@ const visitParents$1 = Object.defineProperty(visit, 'name', { value: 'node (' + - color$2(value.type + (name ? '<' + name + '>' : '')) + + color$C(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -41969,15 +52053,15 @@ const visitParents$1 = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$1(visitor(node, parents)); + result = toResult$B(visitor(node, parents)); - if (result[0] === EXIT$1) { + if (result[0] === EXIT$C) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$1) { + if (node.children && result[0] !== SKIP$C) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -41988,7 +52072,7 @@ const visitParents$1 = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$1) { + if (subresult[0] === EXIT$C) { return subresult } @@ -42007,13 +52091,13 @@ const visitParents$1 = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$1(value) { +function toResult$B(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$1, value] + return [CONTINUE$C, value] } return [value] @@ -42034,7 +52118,7 @@ function toResult$1(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$1 = +const visit$B = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -42055,7 +52139,7 @@ const visit$1 = test = null; } - visitParents$1(tree, test, overload, reverse); + visitParents$C(tree, test, overload, reverse); /** * @param {Node} node @@ -42111,11 +52195,11 @@ const visit$1 = * 4:2: Incorrect indentation before bullet: remove 1 space */ -const remarkLintListItemBulletIndent = lintRule$1( +const remarkLintListItemBulletIndent = lintRule$E( 'remark-lint:list-item-bullet-indent', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - visit$1(tree, 'list', (list, _, grandparent) => { + visit$B(tree, 'list', (list, _, grandparent) => { let index = -1; while (++index < list.children.length) { @@ -42137,7 +52221,7 @@ const remarkLintListItemBulletIndent = lintRule$1( 'Incorrect indentation before bullet: remove ' + indent + ' ' + - pluralize('space', indent), + plural('space', indent), item.position.start ); } @@ -42147,92 +52231,6 @@ const remarkLintListItemBulletIndent = lintRule$1( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$3(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -42248,13 +52246,13 @@ function wrap$3(middleware, callback) { * @returns {void} */ -const primitives$2 = new Set(['string', 'number', 'boolean']); +const primitives$D = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$2(id, rule) { +function lintRule$D(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -42267,7 +52265,7 @@ function lintRule$2(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$2(ruleId, raw); + const [severity, options] = coerce$E(ruleId, raw); if (!severity) return @@ -42276,7 +52274,7 @@ function lintRule$2(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$3(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -42306,7 +52304,7 @@ function lintRule$2(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$2(name, value) { +function coerce$E(name, value) { /** @type {unknown[]} */ let result; @@ -42318,7 +52316,7 @@ function coerce$2(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$2.has(typeof value[0]) + primitives$D.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -42371,7 +52369,7 @@ function coerce$2(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$5 = +const convert$B = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -42391,19 +52389,19 @@ const convert$5 = */ function (test) { if (test === undefined || test === null) { - return ok$3 + return ok$A } if (typeof test === 'string') { - return typeFactory$2(test) + return typeFactory$A(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$2(test) : propsFactory$2(test) + return Array.isArray(test) ? anyFactory$A(test) : propsFactory$z(test) } if (typeof test === 'function') { - return castFactory$2(test) + return castFactory$z(test) } throw new Error('Expected function, string, or object as test') @@ -42413,16 +52411,16 @@ const convert$5 = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$2(tests) { +function anyFactory$A(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$5(tests[index]); + checks[index] = convert$B(tests[index]); } - return castFactory$2(any) + return castFactory$z(any) /** * @this {unknown} @@ -42447,8 +52445,8 @@ function anyFactory$2(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$2(check) { - return castFactory$2(all) +function propsFactory$z(check) { + return castFactory$z(all) /** * @param {Node} node @@ -42474,8 +52472,8 @@ function propsFactory$2(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$2(check) { - return castFactory$2(type) +function typeFactory$A(check) { + return castFactory$z(type) /** * @param {Node} node @@ -42491,7 +52489,7 @@ function typeFactory$2(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$2(check) { +function castFactory$z(check) { return assertion /** @@ -42506,7 +52504,7 @@ function castFactory$2(check) { } // Utility to return true. -function ok$3() { +function ok$A() { return true } @@ -42514,7 +52512,7 @@ function ok$3() { * @param {string} d * @returns {string} */ -function color$3(d) { +function color$B(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -42527,15 +52525,15 @@ function color$3(d) { /** * Continue traversing as normal */ -const CONTINUE$2 = true; +const CONTINUE$B = true; /** * Do not traverse this node’s children */ -const SKIP$2 = 'skip'; +const SKIP$B = 'skip'; /** * Stop traversing immediately */ -const EXIT$2 = false; +const EXIT$B = false; /** * Visit children of tree which pass a test @@ -42545,7 +52543,7 @@ const EXIT$2 = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$2 = +const visitParents$B = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -42567,7 +52565,7 @@ const visitParents$2 = test = null; } - const is = convert$5(test); + const is = convert$B(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -42595,7 +52593,7 @@ const visitParents$2 = Object.defineProperty(visit, 'name', { value: 'node (' + - color$3(value.type + (name ? '<' + name + '>' : '')) + + color$B(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -42613,15 +52611,15 @@ const visitParents$2 = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$2(visitor(node, parents)); + result = toResult$A(visitor(node, parents)); - if (result[0] === EXIT$2) { + if (result[0] === EXIT$B) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$2) { + if (node.children && result[0] !== SKIP$B) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -42632,7 +52630,7 @@ const visitParents$2 = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$2) { + if (subresult[0] === EXIT$B) { return subresult } @@ -42651,13 +52649,13 @@ const visitParents$2 = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$2(value) { +function toResult$A(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$2, value] + return [CONTINUE$B, value] } return [value] @@ -42678,7 +52676,7 @@ function toResult$2(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$2 = +const visit$A = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -42699,7 +52697,7 @@ const visit$2 = test = null; } - visitParents$2(tree, test, overload, reverse); + visitParents$B(tree, test, overload, reverse); /** * @param {Node} node @@ -42730,14 +52728,14 @@ const visit$2 = * @property {PositionLike} [position] */ -var pointStart = point$1('start'); +var pointStart$q = point$r('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$1(type) { +function point$r(type) { return point /** @@ -42907,7 +52905,7 @@ function generated(node) { * 1:1: Incorrect list-item indent style `💩`: use either `'tab-size'`, `'space'`, or `'mixed'` */ -const remarkLintListItemIndent = lintRule$2( +const remarkLintListItemIndent = lintRule$D( 'remark-lint:list-item-indent', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'tab-size') => { @@ -42921,7 +52919,7 @@ const remarkLintListItemIndent = lintRule$2( ); } - visit$2(tree, 'list', (node) => { + visit$A(tree, 'list', (node) => { if (generated(node)) return const spread = node.spread; @@ -42930,10 +52928,10 @@ const remarkLintListItemIndent = lintRule$2( while (++index < node.children.length) { const item = node.children[index]; const head = item.children[0]; - const final = pointStart(head); + const final = pointStart$q(head); const marker = value - .slice(pointStart(item).offset, final.offset) + .slice(pointStart$q(item).offset, final.offset) .replace(/\[[x ]?]\s*$/i, ''); const bulletSize = marker.replace(/\s+$/, '').length; @@ -42953,7 +52951,7 @@ const remarkLintListItemIndent = lintRule$2( ' ' + abs + ' ' + - pluralize('space', abs), + plural('space', abs), final ); } @@ -42962,92 +52960,6 @@ const remarkLintListItemIndent = lintRule$2( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$4(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -43063,13 +52975,13 @@ function wrap$4(middleware, callback) { * @returns {void} */ -const primitives$3 = new Set(['string', 'number', 'boolean']); +const primitives$C = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$3(id, rule) { +function lintRule$C(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -43082,7 +52994,7 @@ function lintRule$3(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$3(ruleId, raw); + const [severity, options] = coerce$D(ruleId, raw); if (!severity) return @@ -43091,7 +53003,7 @@ function lintRule$3(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$4(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -43121,7 +53033,7 @@ function lintRule$3(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$3(name, value) { +function coerce$D(name, value) { /** @type {unknown[]} */ let result; @@ -43133,7 +53045,7 @@ function coerce$3(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$3.has(typeof value[0]) + primitives$C.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -43186,7 +53098,7 @@ function coerce$3(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$6 = +const convert$A = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -43206,19 +53118,19 @@ const convert$6 = */ function (test) { if (test === undefined || test === null) { - return ok$4 + return ok$z } if (typeof test === 'string') { - return typeFactory$3(test) + return typeFactory$z(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$3(test) : propsFactory$3(test) + return Array.isArray(test) ? anyFactory$z(test) : propsFactory$y(test) } if (typeof test === 'function') { - return castFactory$3(test) + return castFactory$y(test) } throw new Error('Expected function, string, or object as test') @@ -43228,16 +53140,16 @@ const convert$6 = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$3(tests) { +function anyFactory$z(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$6(tests[index]); + checks[index] = convert$A(tests[index]); } - return castFactory$3(any) + return castFactory$y(any) /** * @this {unknown} @@ -43262,8 +53174,8 @@ function anyFactory$3(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$3(check) { - return castFactory$3(all) +function propsFactory$y(check) { + return castFactory$y(all) /** * @param {Node} node @@ -43289,8 +53201,8 @@ function propsFactory$3(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$3(check) { - return castFactory$3(type) +function typeFactory$z(check) { + return castFactory$y(type) /** * @param {Node} node @@ -43306,7 +53218,7 @@ function typeFactory$3(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$3(check) { +function castFactory$y(check) { return assertion /** @@ -43321,7 +53233,7 @@ function castFactory$3(check) { } // Utility to return true. -function ok$4() { +function ok$z() { return true } @@ -43329,7 +53241,7 @@ function ok$4() { * @param {string} d * @returns {string} */ -function color$4(d) { +function color$A(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -43342,15 +53254,15 @@ function color$4(d) { /** * Continue traversing as normal */ -const CONTINUE$3 = true; +const CONTINUE$A = true; /** * Do not traverse this node’s children */ -const SKIP$3 = 'skip'; +const SKIP$A = 'skip'; /** * Stop traversing immediately */ -const EXIT$3 = false; +const EXIT$A = false; /** * Visit children of tree which pass a test @@ -43360,7 +53272,7 @@ const EXIT$3 = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$3 = +const visitParents$A = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -43382,7 +53294,7 @@ const visitParents$3 = test = null; } - const is = convert$6(test); + const is = convert$A(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -43410,7 +53322,7 @@ const visitParents$3 = Object.defineProperty(visit, 'name', { value: 'node (' + - color$4(value.type + (name ? '<' + name + '>' : '')) + + color$A(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -43428,15 +53340,15 @@ const visitParents$3 = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$3(visitor(node, parents)); + result = toResult$z(visitor(node, parents)); - if (result[0] === EXIT$3) { + if (result[0] === EXIT$A) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$3) { + if (node.children && result[0] !== SKIP$A) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -43447,7 +53359,7 @@ const visitParents$3 = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$3) { + if (subresult[0] === EXIT$A) { return subresult } @@ -43466,13 +53378,13 @@ const visitParents$3 = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$3(value) { +function toResult$z(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$3, value] + return [CONTINUE$A, value] } return [value] @@ -43493,7 +53405,7 @@ function toResult$3(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$3 = +const visit$z = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -43514,7 +53426,7 @@ const visit$3 = test = null; } - visitParents$3(tree, test, overload, reverse); + visitParents$A(tree, test, overload, reverse); /** * @param {Node} node @@ -43545,15 +53457,15 @@ const visit$3 = * @property {PositionLike} [position] */ -var pointStart$1 = point$2('start'); -var pointEnd = point$2('end'); +var pointStart$p = point$q('start'); +var pointEnd$e = point$q('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$2(type) { +function point$q(type) { return point /** @@ -43589,9 +53501,9 @@ function point$2(type) { * @param {Options} [options] * @returns {string} */ -function toString$4(node, options) { +function toString(node, options) { var {includeImageAlt = true} = options || {}; - return one$1(node, includeImageAlt) + return one(node, includeImageAlt) } /** @@ -43599,7 +53511,7 @@ function toString$4(node, options) { * @param {boolean} includeImageAlt * @returns {string} */ -function one$1(node, includeImageAlt) { +function one(node, includeImageAlt) { return ( (node && typeof node === 'object' && @@ -43608,8 +53520,8 @@ function one$1(node, includeImageAlt) { // @ts-ignore looks like an image. (includeImageAlt ? node.alt : '') || // @ts-ignore looks like a parent. - ('children' in node && all$1(node.children, includeImageAlt)) || - (Array.isArray(node) && all$1(node, includeImageAlt)))) || + ('children' in node && all(node.children, includeImageAlt)) || + (Array.isArray(node) && all(node, includeImageAlt)))) || '' ) } @@ -43619,13 +53531,13 @@ function one$1(node, includeImageAlt) { * @param {boolean} includeImageAlt * @returns {string} */ -function all$1(values, includeImageAlt) { +function all(values, includeImageAlt) { /** @type {Array.} */ var result = []; var index = -1; while (++index < values.length) { - result[index] = one$1(values[index], includeImageAlt); + result[index] = one(values[index], includeImageAlt); } return result.join('') @@ -43673,17 +53585,17 @@ function all$1(values, includeImageAlt) { // See: . const protocol = /^[a-z][a-z+.-]+:\/?/i; -const remarkLintNoAutoLinkWithoutProtocol = lintRule$3( +const remarkLintNoAutoLinkWithoutProtocol = lintRule$C( 'remark-lint:no-auto-link-without-protocol', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - visit$3(tree, 'link', (node) => { + visit$z(tree, 'link', (node) => { if ( !generated(node) && - pointStart$1(node).column === pointStart$1(node.children[0]).column - 1 && - pointEnd(node).column === - pointEnd(node.children[node.children.length - 1]).column + 1 && - !protocol.test(toString$4(node)) + pointStart$p(node).column === pointStart$p(node.children[0]).column - 1 && + pointEnd$e(node).column === + pointEnd$e(node.children[node.children.length - 1]).column + 1 && + !protocol.test(toString(node)) ) { file.message('All automatic links must start with a protocol', node); } @@ -43691,92 +53603,6 @@ const remarkLintNoAutoLinkWithoutProtocol = lintRule$3( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$5(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -43792,13 +53618,13 @@ function wrap$5(middleware, callback) { * @returns {void} */ -const primitives$4 = new Set(['string', 'number', 'boolean']); +const primitives$B = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$4(id, rule) { +function lintRule$B(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -43811,7 +53637,7 @@ function lintRule$4(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$4(ruleId, raw); + const [severity, options] = coerce$C(ruleId, raw); if (!severity) return @@ -43820,7 +53646,7 @@ function lintRule$4(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$5(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -43850,7 +53676,7 @@ function lintRule$4(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$4(name, value) { +function coerce$C(name, value) { /** @type {unknown[]} */ let result; @@ -43862,7 +53688,7 @@ function coerce$4(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$4.has(typeof value[0]) + primitives$B.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -43919,7 +53745,7 @@ function coerce$4(name, value) { * * @param {string|Uint8Array|VFile} file */ -function location$1(file) { +function location$4(file) { var value = String(file); /** @type {Array.} */ var indices = []; @@ -43996,7 +53822,7 @@ function location$1(file) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$7 = +const convert$z = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -44016,19 +53842,19 @@ const convert$7 = */ function (test) { if (test === undefined || test === null) { - return ok$5 + return ok$y } if (typeof test === 'string') { - return typeFactory$4(test) + return typeFactory$y(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$4(test) : propsFactory$4(test) + return Array.isArray(test) ? anyFactory$y(test) : propsFactory$x(test) } if (typeof test === 'function') { - return castFactory$4(test) + return castFactory$x(test) } throw new Error('Expected function, string, or object as test') @@ -44038,16 +53864,16 @@ const convert$7 = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$4(tests) { +function anyFactory$y(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$7(tests[index]); + checks[index] = convert$z(tests[index]); } - return castFactory$4(any) + return castFactory$x(any) /** * @this {unknown} @@ -44072,8 +53898,8 @@ function anyFactory$4(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$4(check) { - return castFactory$4(all) +function propsFactory$x(check) { + return castFactory$x(all) /** * @param {Node} node @@ -44099,8 +53925,8 @@ function propsFactory$4(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$4(check) { - return castFactory$4(type) +function typeFactory$y(check) { + return castFactory$x(type) /** * @param {Node} node @@ -44116,7 +53942,7 @@ function typeFactory$4(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$4(check) { +function castFactory$x(check) { return assertion /** @@ -44131,7 +53957,7 @@ function castFactory$4(check) { } // Utility to return true. -function ok$5() { +function ok$y() { return true } @@ -44139,7 +53965,7 @@ function ok$5() { * @param {string} d * @returns {string} */ -function color$5(d) { +function color$z(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -44152,15 +53978,15 @@ function color$5(d) { /** * Continue traversing as normal */ -const CONTINUE$4 = true; +const CONTINUE$z = true; /** * Do not traverse this node’s children */ -const SKIP$4 = 'skip'; +const SKIP$z = 'skip'; /** * Stop traversing immediately */ -const EXIT$4 = false; +const EXIT$z = false; /** * Visit children of tree which pass a test @@ -44170,7 +53996,7 @@ const EXIT$4 = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$4 = +const visitParents$z = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -44192,7 +54018,7 @@ const visitParents$4 = test = null; } - const is = convert$7(test); + const is = convert$z(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -44220,7 +54046,7 @@ const visitParents$4 = Object.defineProperty(visit, 'name', { value: 'node (' + - color$5(value.type + (name ? '<' + name + '>' : '')) + + color$z(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -44238,15 +54064,15 @@ const visitParents$4 = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$4(visitor(node, parents)); + result = toResult$y(visitor(node, parents)); - if (result[0] === EXIT$4) { + if (result[0] === EXIT$z) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$4) { + if (node.children && result[0] !== SKIP$z) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -44257,7 +54083,7 @@ const visitParents$4 = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$4) { + if (subresult[0] === EXIT$z) { return subresult } @@ -44276,13 +54102,13 @@ const visitParents$4 = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$4(value) { +function toResult$y(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$4, value] + return [CONTINUE$z, value] } return [value] @@ -44303,7 +54129,7 @@ function toResult$4(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$4 = +const visit$y = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -44324,7 +54150,7 @@ const visit$4 = test = null; } - visitParents$4(tree, test, overload, reverse); + visitParents$z(tree, test, overload, reverse); /** * @param {Node} node @@ -44355,15 +54181,15 @@ const visit$4 = * @property {PositionLike} [position] */ -var pointStart$2 = point$3('start'); -var pointEnd$1 = point$3('end'); +var pointStart$o = point$p('start'); +var pointEnd$d = point$p('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$3(type) { +function point$p(type) { return point /** @@ -44442,23 +54268,23 @@ function point$3(type) { * 3:1: Missing marker in block quote */ -const remarkLintNoBlockquoteWithoutMarker = lintRule$4( +const remarkLintNoBlockquoteWithoutMarker = lintRule$B( 'remark-lint:no-blockquote-without-marker', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); - const loc = location$1(file); + const loc = location$4(file); - visit$4(tree, 'blockquote', (node) => { + visit$y(tree, 'blockquote', (node) => { let index = -1; while (++index < node.children.length) { const child = node.children[index]; if (child.type === 'paragraph' && !generated(child)) { - const end = pointEnd$1(child).line; - const column = pointStart$2(child).column; - let line = pointStart$2(child).line; + const end = pointEnd$d(child).line; + const column = pointStart$o(child).column; + let line = pointStart$o(child).line; // Skip past the first line. while (++line <= end) { @@ -44480,92 +54306,6 @@ const remarkLintNoBlockquoteWithoutMarker = lintRule$4( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$6(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -44581,13 +54321,13 @@ function wrap$6(middleware, callback) { * @returns {void} */ -const primitives$5 = new Set(['string', 'number', 'boolean']); +const primitives$A = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$5(id, rule) { +function lintRule$A(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -44600,7 +54340,7 @@ function lintRule$5(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$5(ruleId, raw); + const [severity, options] = coerce$B(ruleId, raw); if (!severity) return @@ -44609,7 +54349,7 @@ function lintRule$5(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$6(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -44639,7 +54379,7 @@ function lintRule$5(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$5(name, value) { +function coerce$B(name, value) { /** @type {unknown[]} */ let result; @@ -44651,7 +54391,7 @@ function coerce$5(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$5.has(typeof value[0]) + primitives$A.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -44704,7 +54444,7 @@ function coerce$5(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$8 = +const convert$y = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -44724,19 +54464,19 @@ const convert$8 = */ function (test) { if (test === undefined || test === null) { - return ok$6 + return ok$x } if (typeof test === 'string') { - return typeFactory$5(test) + return typeFactory$x(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$5(test) : propsFactory$5(test) + return Array.isArray(test) ? anyFactory$x(test) : propsFactory$w(test) } if (typeof test === 'function') { - return castFactory$5(test) + return castFactory$w(test) } throw new Error('Expected function, string, or object as test') @@ -44746,16 +54486,16 @@ const convert$8 = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$5(tests) { +function anyFactory$x(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$8(tests[index]); + checks[index] = convert$y(tests[index]); } - return castFactory$5(any) + return castFactory$w(any) /** * @this {unknown} @@ -44780,8 +54520,8 @@ function anyFactory$5(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$5(check) { - return castFactory$5(all) +function propsFactory$w(check) { + return castFactory$w(all) /** * @param {Node} node @@ -44807,8 +54547,8 @@ function propsFactory$5(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$5(check) { - return castFactory$5(type) +function typeFactory$x(check) { + return castFactory$w(type) /** * @param {Node} node @@ -44824,7 +54564,7 @@ function typeFactory$5(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$5(check) { +function castFactory$w(check) { return assertion /** @@ -44839,7 +54579,7 @@ function castFactory$5(check) { } // Utility to return true. -function ok$6() { +function ok$x() { return true } @@ -44847,7 +54587,7 @@ function ok$6() { * @param {string} d * @returns {string} */ -function color$6(d) { +function color$y(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -44860,15 +54600,15 @@ function color$6(d) { /** * Continue traversing as normal */ -const CONTINUE$5 = true; +const CONTINUE$y = true; /** * Do not traverse this node’s children */ -const SKIP$5 = 'skip'; +const SKIP$y = 'skip'; /** * Stop traversing immediately */ -const EXIT$5 = false; +const EXIT$y = false; /** * Visit children of tree which pass a test @@ -44878,7 +54618,7 @@ const EXIT$5 = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$5 = +const visitParents$y = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -44900,7 +54640,7 @@ const visitParents$5 = test = null; } - const is = convert$8(test); + const is = convert$y(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -44928,7 +54668,7 @@ const visitParents$5 = Object.defineProperty(visit, 'name', { value: 'node (' + - color$6(value.type + (name ? '<' + name + '>' : '')) + + color$y(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -44946,15 +54686,15 @@ const visitParents$5 = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$5(visitor(node, parents)); + result = toResult$x(visitor(node, parents)); - if (result[0] === EXIT$5) { + if (result[0] === EXIT$y) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$5) { + if (node.children && result[0] !== SKIP$y) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -44965,7 +54705,7 @@ const visitParents$5 = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$5) { + if (subresult[0] === EXIT$y) { return subresult } @@ -44984,13 +54724,13 @@ const visitParents$5 = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$5(value) { +function toResult$x(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$5, value] + return [CONTINUE$y, value] } return [value] @@ -45011,7 +54751,7 @@ function toResult$5(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$5 = +const visit$x = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -45032,7 +54772,7 @@ const visit$5 = test = null; } - visitParents$5(tree, test, overload, reverse); + visitParents$y(tree, test, overload, reverse); /** * @param {Node} node @@ -45063,15 +54803,15 @@ const visit$5 = * @property {PositionLike} [position] */ -var pointStart$3 = point$4('start'); -var pointEnd$2 = point$4('end'); +var pointStart$n = point$o('start'); +var pointEnd$c = point$o('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$4(type) { +function point$o(type) { return point /** @@ -45093,62 +54833,6 @@ function point$4(type) { } } -/** - * @typedef Options - * @property {boolean} [includeImageAlt=true] - */ - -/** - * Get the text content of a node. - * Prefer the node’s plain-text fields, otherwise serialize its children, - * and if the given value is an array, serialize the nodes in it. - * - * @param {unknown} node - * @param {Options} [options] - * @returns {string} - */ -function toString$5(node, options) { - var {includeImageAlt = true} = options || {}; - return one$2(node, includeImageAlt) -} - -/** - * @param {unknown} node - * @param {boolean} includeImageAlt - * @returns {string} - */ -function one$2(node, includeImageAlt) { - return ( - (node && - typeof node === 'object' && - // @ts-ignore looks like a literal. - (node.value || - // @ts-ignore looks like an image. - (includeImageAlt ? node.alt : '') || - // @ts-ignore looks like a parent. - ('children' in node && all$2(node.children, includeImageAlt)) || - (Array.isArray(node) && all$2(node, includeImageAlt)))) || - '' - ) -} - -/** - * @param {Array.} values - * @param {boolean} includeImageAlt - * @returns {string} - */ -function all$2(values, includeImageAlt) { - /** @type {Array.} */ - var result = []; - var index = -1; - - while (++index < values.length) { - result[index] = one$2(values[index], includeImageAlt); - } - - return result.join('') -} - /** * @author Titus Wormer * @copyright 2015 Titus Wormer @@ -45185,18 +54869,18 @@ function all$2(values, includeImageAlt) { * 1:1-1:19: Don’t use literal URLs without angle brackets */ -const remarkLintNoLiteralUrls = lintRule$5( +const remarkLintNoLiteralUrls = lintRule$A( 'remark-lint:no-literal-urls', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - visit$5(tree, 'link', (node) => { - const value = toString$5(node); + visit$x(tree, 'link', (node) => { + const value = toString(node); if ( !generated(node) && - pointStart$3(node).column === pointStart$3(node.children[0]).column && - pointEnd$2(node).column === - pointEnd$2(node.children[node.children.length - 1]).column && + pointStart$n(node).column === pointStart$n(node.children[0]).column && + pointEnd$c(node).column === + pointEnd$c(node.children[node.children.length - 1]).column && (node.url === 'mailto:' + value || node.url === value) ) { file.message('Don’t use literal URLs without angle brackets', node); @@ -45205,92 +54889,6 @@ const remarkLintNoLiteralUrls = lintRule$5( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$7(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -45306,13 +54904,13 @@ function wrap$7(middleware, callback) { * @returns {void} */ -const primitives$6 = new Set(['string', 'number', 'boolean']); +const primitives$z = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$6(id, rule) { +function lintRule$z(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -45325,7 +54923,7 @@ function lintRule$6(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$6(ruleId, raw); + const [severity, options] = coerce$A(ruleId, raw); if (!severity) return @@ -45334,7 +54932,7 @@ function lintRule$6(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$7(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -45364,7 +54962,7 @@ function lintRule$6(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$6(name, value) { +function coerce$A(name, value) { /** @type {unknown[]} */ let result; @@ -45376,7 +54974,7 @@ function coerce$6(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$6.has(typeof value[0]) + primitives$z.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -45429,7 +55027,7 @@ function coerce$6(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$9 = +const convert$x = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -45449,19 +55047,19 @@ const convert$9 = */ function (test) { if (test === undefined || test === null) { - return ok$7 + return ok$w } if (typeof test === 'string') { - return typeFactory$6(test) + return typeFactory$w(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$6(test) : propsFactory$6(test) + return Array.isArray(test) ? anyFactory$w(test) : propsFactory$v(test) } if (typeof test === 'function') { - return castFactory$6(test) + return castFactory$v(test) } throw new Error('Expected function, string, or object as test') @@ -45471,16 +55069,16 @@ const convert$9 = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$6(tests) { +function anyFactory$w(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$9(tests[index]); + checks[index] = convert$x(tests[index]); } - return castFactory$6(any) + return castFactory$v(any) /** * @this {unknown} @@ -45505,8 +55103,8 @@ function anyFactory$6(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$6(check) { - return castFactory$6(all) +function propsFactory$v(check) { + return castFactory$v(all) /** * @param {Node} node @@ -45532,8 +55130,8 @@ function propsFactory$6(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$6(check) { - return castFactory$6(type) +function typeFactory$w(check) { + return castFactory$v(type) /** * @param {Node} node @@ -45549,7 +55147,7 @@ function typeFactory$6(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$6(check) { +function castFactory$v(check) { return assertion /** @@ -45564,7 +55162,7 @@ function castFactory$6(check) { } // Utility to return true. -function ok$7() { +function ok$w() { return true } @@ -45572,7 +55170,7 @@ function ok$7() { * @param {string} d * @returns {string} */ -function color$7(d) { +function color$x(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -45585,15 +55183,15 @@ function color$7(d) { /** * Continue traversing as normal */ -const CONTINUE$6 = true; +const CONTINUE$x = true; /** * Do not traverse this node’s children */ -const SKIP$6 = 'skip'; +const SKIP$x = 'skip'; /** * Stop traversing immediately */ -const EXIT$6 = false; +const EXIT$x = false; /** * Visit children of tree which pass a test @@ -45603,7 +55201,7 @@ const EXIT$6 = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$6 = +const visitParents$x = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -45625,7 +55223,7 @@ const visitParents$6 = test = null; } - const is = convert$9(test); + const is = convert$x(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -45653,7 +55251,7 @@ const visitParents$6 = Object.defineProperty(visit, 'name', { value: 'node (' + - color$7(value.type + (name ? '<' + name + '>' : '')) + + color$x(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -45671,15 +55269,15 @@ const visitParents$6 = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$6(visitor(node, parents)); + result = toResult$w(visitor(node, parents)); - if (result[0] === EXIT$6) { + if (result[0] === EXIT$x) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$6) { + if (node.children && result[0] !== SKIP$x) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -45690,7 +55288,7 @@ const visitParents$6 = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$6) { + if (subresult[0] === EXIT$x) { return subresult } @@ -45709,13 +55307,13 @@ const visitParents$6 = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$6(value) { +function toResult$w(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$6, value] + return [CONTINUE$x, value] } return [value] @@ -45736,7 +55334,7 @@ function toResult$6(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$6 = +const visit$w = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -45757,7 +55355,7 @@ const visit$6 = test = null; } - visitParents$6(tree, test, overload, reverse); + visitParents$x(tree, test, overload, reverse); /** * @param {Node} node @@ -45788,14 +55386,14 @@ const visit$6 = * @property {PositionLike} [position] */ -var pointStart$4 = point$5('start'); +var pointStart$m = point$n('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$5(type) { +function point$n(type) { return point /** @@ -45874,7 +55472,7 @@ function point$5(type) { * 1:1: Incorrect ordered list item marker style `💩`: use either `'.'` or `')'` */ -const remarkLintOrderedListMarkerStyle = lintRule$6( +const remarkLintOrderedListMarkerStyle = lintRule$z( 'remark-lint:ordered-list-marker-style', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { @@ -45888,7 +55486,7 @@ const remarkLintOrderedListMarkerStyle = lintRule$6( ); } - visit$6(tree, 'list', (node) => { + visit$w(tree, 'list', (node) => { let index = -1; if (!node.ordered) return @@ -45900,8 +55498,8 @@ const remarkLintOrderedListMarkerStyle = lintRule$6( const marker = /** @type {Marker} */ ( value .slice( - pointStart$4(child).offset, - pointStart$4(child.children[0]).offset + pointStart$m(child).offset, + pointStart$m(child.children[0]).offset ) .replace(/\s|\d/g, '') .replace(/\[[x ]?]\s*$/i, '') @@ -45918,92 +55516,6 @@ const remarkLintOrderedListMarkerStyle = lintRule$6( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$8(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -46019,13 +55531,13 @@ function wrap$8(middleware, callback) { * @returns {void} */ -const primitives$7 = new Set(['string', 'number', 'boolean']); +const primitives$y = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$7(id, rule) { +function lintRule$y(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -46038,7 +55550,7 @@ function lintRule$7(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$7(ruleId, raw); + const [severity, options] = coerce$z(ruleId, raw); if (!severity) return @@ -46047,7 +55559,7 @@ function lintRule$7(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$8(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -46077,7 +55589,7 @@ function lintRule$7(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$7(name, value) { +function coerce$z(name, value) { /** @type {unknown[]} */ let result; @@ -46089,7 +55601,7 @@ function coerce$7(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$7.has(typeof value[0]) + primitives$y.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -46142,7 +55654,7 @@ function coerce$7(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$a = +const convert$w = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -46162,19 +55674,19 @@ const convert$a = */ function (test) { if (test === undefined || test === null) { - return ok$8 + return ok$v } if (typeof test === 'string') { - return typeFactory$7(test) + return typeFactory$v(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$7(test) : propsFactory$7(test) + return Array.isArray(test) ? anyFactory$v(test) : propsFactory$u(test) } if (typeof test === 'function') { - return castFactory$7(test) + return castFactory$u(test) } throw new Error('Expected function, string, or object as test') @@ -46184,16 +55696,16 @@ const convert$a = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$7(tests) { +function anyFactory$v(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$a(tests[index]); + checks[index] = convert$w(tests[index]); } - return castFactory$7(any) + return castFactory$u(any) /** * @this {unknown} @@ -46218,8 +55730,8 @@ function anyFactory$7(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$7(check) { - return castFactory$7(all) +function propsFactory$u(check) { + return castFactory$u(all) /** * @param {Node} node @@ -46245,8 +55757,8 @@ function propsFactory$7(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$7(check) { - return castFactory$7(type) +function typeFactory$v(check) { + return castFactory$u(type) /** * @param {Node} node @@ -46262,7 +55774,7 @@ function typeFactory$7(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$7(check) { +function castFactory$u(check) { return assertion /** @@ -46277,7 +55789,7 @@ function castFactory$7(check) { } // Utility to return true. -function ok$8() { +function ok$v() { return true } @@ -46285,7 +55797,7 @@ function ok$8() { * @param {string} d * @returns {string} */ -function color$8(d) { +function color$w(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -46298,15 +55810,15 @@ function color$8(d) { /** * Continue traversing as normal */ -const CONTINUE$7 = true; +const CONTINUE$w = true; /** * Do not traverse this node’s children */ -const SKIP$7 = 'skip'; +const SKIP$w = 'skip'; /** * Stop traversing immediately */ -const EXIT$7 = false; +const EXIT$w = false; /** * Visit children of tree which pass a test @@ -46316,7 +55828,7 @@ const EXIT$7 = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$7 = +const visitParents$w = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -46338,7 +55850,7 @@ const visitParents$7 = test = null; } - const is = convert$a(test); + const is = convert$w(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -46366,7 +55878,7 @@ const visitParents$7 = Object.defineProperty(visit, 'name', { value: 'node (' + - color$8(value.type + (name ? '<' + name + '>' : '')) + + color$w(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -46384,15 +55896,15 @@ const visitParents$7 = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$7(visitor(node, parents)); + result = toResult$v(visitor(node, parents)); - if (result[0] === EXIT$7) { + if (result[0] === EXIT$w) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$7) { + if (node.children && result[0] !== SKIP$w) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -46403,7 +55915,7 @@ const visitParents$7 = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$7) { + if (subresult[0] === EXIT$w) { return subresult } @@ -46422,13 +55934,13 @@ const visitParents$7 = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$7(value) { +function toResult$v(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$7, value] + return [CONTINUE$w, value] } return [value] @@ -46449,7 +55961,7 @@ function toResult$7(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$7 = +const visit$v = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -46470,7 +55982,7 @@ const visit$7 = test = null; } - visitParents$7(tree, test, overload, reverse); + visitParents$w(tree, test, overload, reverse); /** * @param {Node} node @@ -46501,15 +56013,15 @@ const visit$7 = * @property {PositionLike} [position] */ -var pointStart$5 = point$6('start'); -var pointEnd$3 = point$6('end'); +var pointStart$l = point$m('start'); +var pointEnd$b = point$m('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$6(type) { +function point$m(type) { return point /** @@ -46557,16 +56069,16 @@ function point$6(type) { * 1:12-2:1: Use two spaces for hard line breaks */ -const remarkLintHardBreakSpaces = lintRule$7( +const remarkLintHardBreakSpaces = lintRule$y( 'remark-lint:hard-break-spaces', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); - visit$7(tree, 'break', (node) => { + visit$v(tree, 'break', (node) => { if (!generated(node)) { const slice = value - .slice(pointStart$5(node).offset, pointEnd$3(node).offset) + .slice(pointStart$l(node).offset, pointEnd$b(node).offset) .split('\n', 1)[0] .replace(/\r$/, ''); @@ -46578,92 +56090,6 @@ const remarkLintHardBreakSpaces = lintRule$7( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$9(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -46679,13 +56105,13 @@ function wrap$9(middleware, callback) { * @returns {void} */ -const primitives$8 = new Set(['string', 'number', 'boolean']); +const primitives$x = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$8(id, rule) { +function lintRule$x(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -46698,7 +56124,7 @@ function lintRule$8(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$8(ruleId, raw); + const [severity, options] = coerce$y(ruleId, raw); if (!severity) return @@ -46707,7 +56133,7 @@ function lintRule$8(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$9(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -46737,7 +56163,7 @@ function lintRule$8(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$8(name, value) { +function coerce$y(name, value) { /** @type {unknown[]} */ let result; @@ -46749,7 +56175,7 @@ function coerce$8(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$8.has(typeof value[0]) + primitives$x.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -46806,14 +56232,14 @@ function coerce$8(name, value) { * @property {PositionLike} [position] */ -var pointStart$6 = point$7('start'); +var pointStart$k = point$l('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$7(type) { +function point$l(type) { return point /** @@ -46835,7 +56261,7 @@ function point$7(type) { } } -var own$7 = {}.hasOwnProperty; +var own$2 = {}.hasOwnProperty; /** * @typedef {import('unist').Node} Node @@ -46857,21 +56283,21 @@ function stringifyPosition(value) { } // Node. - if (own$7.call(value, 'position') || own$7.call(value, 'type')) { + if (own$2.call(value, 'position') || own$2.call(value, 'type')) { // @ts-ignore looks like a node. - return position$1(value.position) + return position$2(value.position) } // Position. - if (own$7.call(value, 'start') || own$7.call(value, 'end')) { + if (own$2.call(value, 'start') || own$2.call(value, 'end')) { // @ts-ignore looks like a position. - return position$1(value) + return position$2(value) } // Point. - if (own$7.call(value, 'line') || own$7.call(value, 'column')) { + if (own$2.call(value, 'line') || own$2.call(value, 'column')) { // @ts-ignore looks like a point. - return point$8(value) + return point$k(value) } // ? @@ -46882,23 +56308,23 @@ function stringifyPosition(value) { * @param {Point} point * @returns {string} */ -function point$8(point) { - return index$1(point && point.line) + ':' + index$1(point && point.column) +function point$k(point) { + return index(point && point.line) + ':' + index(point && point.column) } /** * @param {Position} pos * @returns {string} */ -function position$1(pos) { - return point$8(pos && pos.start) + '-' + point$8(pos && pos.end) +function position$2(pos) { + return point$k(pos && pos.start) + '-' + point$k(pos && pos.end) } /** * @param {number} value * @returns {number} */ -function index$1(value) { +function index(value) { return value && typeof value === 'number' ? value : 1 } @@ -46912,7 +56338,7 @@ function index$1(value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$b = +const convert$v = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -46932,19 +56358,19 @@ const convert$b = */ function (test) { if (test === undefined || test === null) { - return ok$9 + return ok$u } if (typeof test === 'string') { - return typeFactory$8(test) + return typeFactory$u(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$8(test) : propsFactory$8(test) + return Array.isArray(test) ? anyFactory$u(test) : propsFactory$t(test) } if (typeof test === 'function') { - return castFactory$8(test) + return castFactory$t(test) } throw new Error('Expected function, string, or object as test') @@ -46954,16 +56380,16 @@ const convert$b = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$8(tests) { +function anyFactory$u(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$b(tests[index]); + checks[index] = convert$v(tests[index]); } - return castFactory$8(any) + return castFactory$t(any) /** * @this {unknown} @@ -46988,8 +56414,8 @@ function anyFactory$8(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$8(check) { - return castFactory$8(all) +function propsFactory$t(check) { + return castFactory$t(all) /** * @param {Node} node @@ -47015,8 +56441,8 @@ function propsFactory$8(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$8(check) { - return castFactory$8(type) +function typeFactory$u(check) { + return castFactory$t(type) /** * @param {Node} node @@ -47032,7 +56458,7 @@ function typeFactory$8(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$8(check) { +function castFactory$t(check) { return assertion /** @@ -47047,7 +56473,7 @@ function castFactory$8(check) { } // Utility to return true. -function ok$9() { +function ok$u() { return true } @@ -47055,7 +56481,7 @@ function ok$9() { * @param {string} d * @returns {string} */ -function color$9(d) { +function color$v(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -47068,15 +56494,15 @@ function color$9(d) { /** * Continue traversing as normal */ -const CONTINUE$8 = true; +const CONTINUE$v = true; /** * Do not traverse this node’s children */ -const SKIP$8 = 'skip'; +const SKIP$v = 'skip'; /** * Stop traversing immediately */ -const EXIT$8 = false; +const EXIT$v = false; /** * Visit children of tree which pass a test @@ -47086,7 +56512,7 @@ const EXIT$8 = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$8 = +const visitParents$v = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -47108,7 +56534,7 @@ const visitParents$8 = test = null; } - const is = convert$b(test); + const is = convert$v(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -47136,7 +56562,7 @@ const visitParents$8 = Object.defineProperty(visit, 'name', { value: 'node (' + - color$9(value.type + (name ? '<' + name + '>' : '')) + + color$v(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -47154,15 +56580,15 @@ const visitParents$8 = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$8(visitor(node, parents)); + result = toResult$u(visitor(node, parents)); - if (result[0] === EXIT$8) { + if (result[0] === EXIT$v) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$8) { + if (node.children && result[0] !== SKIP$v) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -47173,7 +56599,7 @@ const visitParents$8 = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$8) { + if (subresult[0] === EXIT$v) { return subresult } @@ -47192,13 +56618,13 @@ const visitParents$8 = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$8(value) { +function toResult$u(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$8, value] + return [CONTINUE$v, value] } return [value] @@ -47219,7 +56645,7 @@ function toResult$8(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$8 = +const visit$u = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -47240,7 +56666,7 @@ const visit$8 = test = null; } - visitParents$8(tree, test, overload, reverse); + visitParents$v(tree, test, overload, reverse); /** * @param {Node} node @@ -47283,14 +56709,14 @@ const visit$8 = * 2:1-2:11: Do not use definitions with the same identifier (1:1) */ -const remarkLintNoDuplicateDefinitions = lintRule$8( +const remarkLintNoDuplicateDefinitions = lintRule$x( 'remark-lint:no-duplicate-definitions', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { /** @type {Record} */ const map = Object.create(null); - visit$8(tree, (node) => { + visit$u(tree, (node) => { if ( (node.type === 'definition' || node.type === 'footnoteDefinition') && !generated(node) @@ -47307,98 +56733,12 @@ const remarkLintNoDuplicateDefinitions = lintRule$8( ); } - map[identifier] = stringifyPosition(pointStart$6(node)); + map[identifier] = stringifyPosition(pointStart$k(node)); } }); } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$a(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -47414,13 +56754,13 @@ function wrap$a(middleware, callback) { * @returns {void} */ -const primitives$9 = new Set(['string', 'number', 'boolean']); +const primitives$w = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$9(id, rule) { +function lintRule$w(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -47433,7 +56773,7 @@ function lintRule$9(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$9(ruleId, raw); + const [severity, options] = coerce$x(ruleId, raw); if (!severity) return @@ -47442,7 +56782,7 @@ function lintRule$9(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$a(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -47472,7 +56812,7 @@ function lintRule$9(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$9(name, value) { +function coerce$x(name, value) { /** @type {unknown[]} */ let result; @@ -47484,7 +56824,7 @@ function coerce$9(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$9.has(typeof value[0]) + primitives$w.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -47537,7 +56877,7 @@ function coerce$9(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$c = +const convert$u = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -47557,19 +56897,19 @@ const convert$c = */ function (test) { if (test === undefined || test === null) { - return ok$a + return ok$t } if (typeof test === 'string') { - return typeFactory$9(test) + return typeFactory$t(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$9(test) : propsFactory$9(test) + return Array.isArray(test) ? anyFactory$t(test) : propsFactory$s(test) } if (typeof test === 'function') { - return castFactory$9(test) + return castFactory$s(test) } throw new Error('Expected function, string, or object as test') @@ -47579,16 +56919,16 @@ const convert$c = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$9(tests) { +function anyFactory$t(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$c(tests[index]); + checks[index] = convert$u(tests[index]); } - return castFactory$9(any) + return castFactory$s(any) /** * @this {unknown} @@ -47613,8 +56953,8 @@ function anyFactory$9(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$9(check) { - return castFactory$9(all) +function propsFactory$s(check) { + return castFactory$s(all) /** * @param {Node} node @@ -47640,8 +56980,8 @@ function propsFactory$9(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$9(check) { - return castFactory$9(type) +function typeFactory$t(check) { + return castFactory$s(type) /** * @param {Node} node @@ -47657,7 +56997,7 @@ function typeFactory$9(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$9(check) { +function castFactory$s(check) { return assertion /** @@ -47672,7 +57012,7 @@ function castFactory$9(check) { } // Utility to return true. -function ok$a() { +function ok$t() { return true } @@ -47680,7 +57020,7 @@ function ok$a() { * @param {string} d * @returns {string} */ -function color$a(d) { +function color$u(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -47693,15 +57033,15 @@ function color$a(d) { /** * Continue traversing as normal */ -const CONTINUE$9 = true; +const CONTINUE$u = true; /** * Do not traverse this node’s children */ -const SKIP$9 = 'skip'; +const SKIP$u = 'skip'; /** * Stop traversing immediately */ -const EXIT$9 = false; +const EXIT$u = false; /** * Visit children of tree which pass a test @@ -47711,7 +57051,7 @@ const EXIT$9 = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$9 = +const visitParents$u = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -47733,7 +57073,7 @@ const visitParents$9 = test = null; } - const is = convert$c(test); + const is = convert$u(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -47761,7 +57101,7 @@ const visitParents$9 = Object.defineProperty(visit, 'name', { value: 'node (' + - color$a(value.type + (name ? '<' + name + '>' : '')) + + color$u(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -47779,15 +57119,15 @@ const visitParents$9 = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$9(visitor(node, parents)); + result = toResult$t(visitor(node, parents)); - if (result[0] === EXIT$9) { + if (result[0] === EXIT$u) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$9) { + if (node.children && result[0] !== SKIP$u) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -47798,7 +57138,7 @@ const visitParents$9 = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$9) { + if (subresult[0] === EXIT$u) { return subresult } @@ -47817,13 +57157,13 @@ const visitParents$9 = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$9(value) { +function toResult$t(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$9, value] + return [CONTINUE$u, value] } return [value] @@ -47844,7 +57184,7 @@ function toResult$9(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$9 = +const visit$t = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -47865,7 +57205,7 @@ const visit$9 = test = null; } - visitParents$9(tree, test, overload, reverse); + visitParents$u(tree, test, overload, reverse); /** * @param {Node} node @@ -47953,15 +57293,15 @@ function consolidate(depth, relative) { * @property {PositionLike} [position] */ -var pointStart$7 = point$9('start'); -var pointEnd$4 = point$9('end'); +var pointStart$j = point$j('start'); +var pointEnd$a = point$j('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$9(type) { +function point$j(type) { return point /** @@ -48035,11 +57375,11 @@ function point$9(type) { * #·· */ -const remarkLintNoHeadingContentIndent = lintRule$9( +const remarkLintNoHeadingContentIndent = lintRule$w( 'remark-lint:no-heading-content-indent', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - visit$9(tree, 'heading', (node) => { + visit$t(tree, 'heading', (node) => { if (generated(node)) { return } @@ -48047,23 +57387,23 @@ const remarkLintNoHeadingContentIndent = lintRule$9( const type = headingStyle(node, 'atx'); if (type === 'atx' || type === 'atx-closed') { - const head = pointStart$7(node.children[0]).column; + const head = pointStart$j(node.children[0]).column; // Ignore empty headings. if (!head) { return } - const diff = head - pointStart$7(node).column - 1 - node.depth; + const diff = head - pointStart$j(node).column - 1 - node.depth; if (diff) { file.message( 'Remove ' + Math.abs(diff) + ' ' + - pluralize('space', Math.abs(diff)) + + plural('space', Math.abs(diff)) + ' before this heading’s content', - pointStart$7(node.children[0]) + pointStart$j(node.children[0]) ); } } @@ -48071,15 +57411,15 @@ const remarkLintNoHeadingContentIndent = lintRule$9( // Closed ATX headings always must have a space between their content and // the final hashes, thus, there is no `add x spaces`. if (type === 'atx-closed') { - const final = pointEnd$4(node.children[node.children.length - 1]); - const diff = pointEnd$4(node).column - final.column - 1 - node.depth; + const final = pointEnd$a(node.children[node.children.length - 1]); + const diff = pointEnd$a(node).column - final.column - 1 - node.depth; if (diff) { file.message( 'Remove ' + diff + ' ' + - pluralize('space', diff) + + plural('space', diff) + ' after this heading’s content', final ); @@ -48089,92 +57429,6 @@ const remarkLintNoHeadingContentIndent = lintRule$9( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$b(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -48190,13 +57444,13 @@ function wrap$b(middleware, callback) { * @returns {void} */ -const primitives$a = new Set(['string', 'number', 'boolean']); +const primitives$v = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$a(id, rule) { +function lintRule$v(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -48209,7 +57463,7 @@ function lintRule$a(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$a(ruleId, raw); + const [severity, options] = coerce$w(ruleId, raw); if (!severity) return @@ -48218,7 +57472,7 @@ function lintRule$a(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$b(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -48248,7 +57502,7 @@ function lintRule$a(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$a(name, value) { +function coerce$w(name, value) { /** @type {unknown[]} */ let result; @@ -48260,7 +57514,7 @@ function coerce$a(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$a.has(typeof value[0]) + primitives$v.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -48313,7 +57567,7 @@ function coerce$a(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$d = +const convert$t = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -48333,19 +57587,19 @@ const convert$d = */ function (test) { if (test === undefined || test === null) { - return ok$b + return ok$s } if (typeof test === 'string') { - return typeFactory$a(test) + return typeFactory$s(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$a(test) : propsFactory$a(test) + return Array.isArray(test) ? anyFactory$s(test) : propsFactory$r(test) } if (typeof test === 'function') { - return castFactory$a(test) + return castFactory$r(test) } throw new Error('Expected function, string, or object as test') @@ -48355,16 +57609,16 @@ const convert$d = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$a(tests) { +function anyFactory$s(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$d(tests[index]); + checks[index] = convert$t(tests[index]); } - return castFactory$a(any) + return castFactory$r(any) /** * @this {unknown} @@ -48389,8 +57643,8 @@ function anyFactory$a(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$a(check) { - return castFactory$a(all) +function propsFactory$r(check) { + return castFactory$r(all) /** * @param {Node} node @@ -48416,8 +57670,8 @@ function propsFactory$a(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$a(check) { - return castFactory$a(type) +function typeFactory$s(check) { + return castFactory$r(type) /** * @param {Node} node @@ -48433,7 +57687,7 @@ function typeFactory$a(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$a(check) { +function castFactory$r(check) { return assertion /** @@ -48448,7 +57702,7 @@ function castFactory$a(check) { } // Utility to return true. -function ok$b() { +function ok$s() { return true } @@ -48456,7 +57710,7 @@ function ok$b() { * @param {string} d * @returns {string} */ -function color$b(d) { +function color$t(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -48469,15 +57723,15 @@ function color$b(d) { /** * Continue traversing as normal */ -const CONTINUE$a = true; +const CONTINUE$t = true; /** * Do not traverse this node’s children */ -const SKIP$a = 'skip'; +const SKIP$t = 'skip'; /** * Stop traversing immediately */ -const EXIT$a = false; +const EXIT$t = false; /** * Visit children of tree which pass a test @@ -48487,7 +57741,7 @@ const EXIT$a = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$a = +const visitParents$t = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -48509,7 +57763,7 @@ const visitParents$a = test = null; } - const is = convert$d(test); + const is = convert$t(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -48537,7 +57791,7 @@ const visitParents$a = Object.defineProperty(visit, 'name', { value: 'node (' + - color$b(value.type + (name ? '<' + name + '>' : '')) + + color$t(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -48555,15 +57809,15 @@ const visitParents$a = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$a(visitor(node, parents)); + result = toResult$s(visitor(node, parents)); - if (result[0] === EXIT$a) { + if (result[0] === EXIT$t) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$a) { + if (node.children && result[0] !== SKIP$t) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -48574,7 +57828,7 @@ const visitParents$a = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$a) { + if (subresult[0] === EXIT$t) { return subresult } @@ -48593,13 +57847,13 @@ const visitParents$a = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$a(value) { +function toResult$s(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$a, value] + return [CONTINUE$t, value] } return [value] @@ -48620,7 +57874,7 @@ function toResult$a(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$a = +const visit$s = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -48641,7 +57895,7 @@ const visit$a = test = null; } - visitParents$a(tree, test, overload, reverse); + visitParents$t(tree, test, overload, reverse); /** * @param {Node} node @@ -48658,62 +57912,6 @@ const visit$a = } ); -/** - * @typedef Options - * @property {boolean} [includeImageAlt=true] - */ - -/** - * Get the text content of a node. - * Prefer the node’s plain-text fields, otherwise serialize its children, - * and if the given value is an array, serialize the nodes in it. - * - * @param {unknown} node - * @param {Options} [options] - * @returns {string} - */ -function toString$6(node, options) { - var {includeImageAlt = true} = options || {}; - return one$3(node, includeImageAlt) -} - -/** - * @param {unknown} node - * @param {boolean} includeImageAlt - * @returns {string} - */ -function one$3(node, includeImageAlt) { - return ( - (node && - typeof node === 'object' && - // @ts-ignore looks like a literal. - (node.value || - // @ts-ignore looks like an image. - (includeImageAlt ? node.alt : '') || - // @ts-ignore looks like a parent. - ('children' in node && all$3(node.children, includeImageAlt)) || - (Array.isArray(node) && all$3(node, includeImageAlt)))) || - '' - ) -} - -/** - * @param {Array.} values - * @param {boolean} includeImageAlt - * @returns {string} - */ -function all$3(values, includeImageAlt) { - /** @type {Array.} */ - var result = []; - var index = -1; - - while (++index < values.length) { - result[index] = one$3(values[index], includeImageAlt); - } - - return result.join('') -} - /** * @author Titus Wormer * @copyright 2015 Titus Wormer @@ -48741,18 +57939,18 @@ function all$3(values, includeImageAlt) { * 1:7-1:38: Don’t pad `link` with inner spaces */ -const remarkLintNoInlinePadding = lintRule$a( +const remarkLintNoInlinePadding = lintRule$v( 'remark-lint:no-inline-padding', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { // Note: `emphasis`, `strong`, `delete` (GFM) can’t have padding anymore // since CM. - visit$a(tree, (node) => { + visit$s(tree, (node) => { if ( (node.type === 'link' || node.type === 'linkReference') && !generated(node) ) { - const value = toString$6(node); + const value = toString(node); if (value.charAt(0) === ' ' || value.charAt(value.length - 1) === ' ') { file.message('Don’t pad `' + node.type + '` with inner spaces', node); @@ -48762,92 +57960,6 @@ const remarkLintNoInlinePadding = lintRule$a( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$c(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -48863,13 +57975,13 @@ function wrap$c(middleware, callback) { * @returns {void} */ -const primitives$b = new Set(['string', 'number', 'boolean']); +const primitives$u = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$b(id, rule) { +function lintRule$u(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -48882,7 +57994,7 @@ function lintRule$b(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$b(ruleId, raw); + const [severity, options] = coerce$v(ruleId, raw); if (!severity) return @@ -48891,7 +58003,7 @@ function lintRule$b(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$c(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -48921,7 +58033,7 @@ function lintRule$b(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$b(name, value) { +function coerce$v(name, value) { /** @type {unknown[]} */ let result; @@ -48933,7 +58045,7 @@ function coerce$b(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$b.has(typeof value[0]) + primitives$u.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -48986,7 +58098,7 @@ function coerce$b(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$e = +const convert$s = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -49006,19 +58118,19 @@ const convert$e = */ function (test) { if (test === undefined || test === null) { - return ok$c + return ok$r } if (typeof test === 'string') { - return typeFactory$b(test) + return typeFactory$r(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$b(test) : propsFactory$b(test) + return Array.isArray(test) ? anyFactory$r(test) : propsFactory$q(test) } if (typeof test === 'function') { - return castFactory$b(test) + return castFactory$q(test) } throw new Error('Expected function, string, or object as test') @@ -49028,16 +58140,16 @@ const convert$e = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$b(tests) { +function anyFactory$r(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$e(tests[index]); + checks[index] = convert$s(tests[index]); } - return castFactory$b(any) + return castFactory$q(any) /** * @this {unknown} @@ -49062,8 +58174,8 @@ function anyFactory$b(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$b(check) { - return castFactory$b(all) +function propsFactory$q(check) { + return castFactory$q(all) /** * @param {Node} node @@ -49089,8 +58201,8 @@ function propsFactory$b(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$b(check) { - return castFactory$b(type) +function typeFactory$r(check) { + return castFactory$q(type) /** * @param {Node} node @@ -49106,7 +58218,7 @@ function typeFactory$b(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$b(check) { +function castFactory$q(check) { return assertion /** @@ -49121,7 +58233,7 @@ function castFactory$b(check) { } // Utility to return true. -function ok$c() { +function ok$r() { return true } @@ -49129,7 +58241,7 @@ function ok$c() { * @param {string} d * @returns {string} */ -function color$c(d) { +function color$s(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -49142,15 +58254,15 @@ function color$c(d) { /** * Continue traversing as normal */ -const CONTINUE$b = true; +const CONTINUE$s = true; /** * Do not traverse this node’s children */ -const SKIP$b = 'skip'; +const SKIP$s = 'skip'; /** * Stop traversing immediately */ -const EXIT$b = false; +const EXIT$s = false; /** * Visit children of tree which pass a test @@ -49160,7 +58272,7 @@ const EXIT$b = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$b = +const visitParents$s = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -49182,7 +58294,7 @@ const visitParents$b = test = null; } - const is = convert$e(test); + const is = convert$s(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -49210,7 +58322,7 @@ const visitParents$b = Object.defineProperty(visit, 'name', { value: 'node (' + - color$c(value.type + (name ? '<' + name + '>' : '')) + + color$s(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -49228,15 +58340,15 @@ const visitParents$b = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$b(visitor(node, parents)); + result = toResult$r(visitor(node, parents)); - if (result[0] === EXIT$b) { + if (result[0] === EXIT$s) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$b) { + if (node.children && result[0] !== SKIP$s) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -49247,7 +58359,7 @@ const visitParents$b = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$b) { + if (subresult[0] === EXIT$s) { return subresult } @@ -49266,13 +58378,13 @@ const visitParents$b = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$b(value) { +function toResult$r(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$b, value] + return [CONTINUE$s, value] } return [value] @@ -49293,7 +58405,7 @@ function toResult$b(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$b = +const visit$r = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -49314,7 +58426,7 @@ const visit$b = test = null; } - visitParents$b(tree, test, overload, reverse); + visitParents$s(tree, test, overload, reverse); /** * @param {Node} node @@ -49365,11 +58477,11 @@ const visit$b = * 1:1-1:7: Use the trailing [] on reference images */ -const remarkLintNoShortcutReferenceImage = lintRule$b( +const remarkLintNoShortcutReferenceImage = lintRule$u( 'remark-lint:no-shortcut-reference-image', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - visit$b(tree, 'imageReference', (node) => { + visit$r(tree, 'imageReference', (node) => { if (!generated(node) && node.referenceType === 'shortcut') { file.message('Use the trailing [] on reference images', node); } @@ -49377,92 +58489,6 @@ const remarkLintNoShortcutReferenceImage = lintRule$b( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$d(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -49478,13 +58504,13 @@ function wrap$d(middleware, callback) { * @returns {void} */ -const primitives$c = new Set(['string', 'number', 'boolean']); +const primitives$t = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$c(id, rule) { +function lintRule$t(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -49497,7 +58523,7 @@ function lintRule$c(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$c(ruleId, raw); + const [severity, options] = coerce$u(ruleId, raw); if (!severity) return @@ -49506,7 +58532,7 @@ function lintRule$c(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$d(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -49536,7 +58562,7 @@ function lintRule$c(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$c(name, value) { +function coerce$u(name, value) { /** @type {unknown[]} */ let result; @@ -49548,7 +58574,7 @@ function coerce$c(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$c.has(typeof value[0]) + primitives$t.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -49601,7 +58627,7 @@ function coerce$c(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$f = +const convert$r = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -49621,19 +58647,19 @@ const convert$f = */ function (test) { if (test === undefined || test === null) { - return ok$d + return ok$q } if (typeof test === 'string') { - return typeFactory$c(test) + return typeFactory$q(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$c(test) : propsFactory$c(test) + return Array.isArray(test) ? anyFactory$q(test) : propsFactory$p(test) } if (typeof test === 'function') { - return castFactory$c(test) + return castFactory$p(test) } throw new Error('Expected function, string, or object as test') @@ -49643,16 +58669,16 @@ const convert$f = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$c(tests) { +function anyFactory$q(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$f(tests[index]); + checks[index] = convert$r(tests[index]); } - return castFactory$c(any) + return castFactory$p(any) /** * @this {unknown} @@ -49677,8 +58703,8 @@ function anyFactory$c(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$c(check) { - return castFactory$c(all) +function propsFactory$p(check) { + return castFactory$p(all) /** * @param {Node} node @@ -49704,8 +58730,8 @@ function propsFactory$c(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$c(check) { - return castFactory$c(type) +function typeFactory$q(check) { + return castFactory$p(type) /** * @param {Node} node @@ -49721,7 +58747,7 @@ function typeFactory$c(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$c(check) { +function castFactory$p(check) { return assertion /** @@ -49736,7 +58762,7 @@ function castFactory$c(check) { } // Utility to return true. -function ok$d() { +function ok$q() { return true } @@ -49744,7 +58770,7 @@ function ok$d() { * @param {string} d * @returns {string} */ -function color$d(d) { +function color$r(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -49757,15 +58783,15 @@ function color$d(d) { /** * Continue traversing as normal */ -const CONTINUE$c = true; +const CONTINUE$r = true; /** * Do not traverse this node’s children */ -const SKIP$c = 'skip'; +const SKIP$r = 'skip'; /** * Stop traversing immediately */ -const EXIT$c = false; +const EXIT$r = false; /** * Visit children of tree which pass a test @@ -49775,7 +58801,7 @@ const EXIT$c = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$c = +const visitParents$r = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -49797,7 +58823,7 @@ const visitParents$c = test = null; } - const is = convert$f(test); + const is = convert$r(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -49825,7 +58851,7 @@ const visitParents$c = Object.defineProperty(visit, 'name', { value: 'node (' + - color$d(value.type + (name ? '<' + name + '>' : '')) + + color$r(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -49843,15 +58869,15 @@ const visitParents$c = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$c(visitor(node, parents)); + result = toResult$q(visitor(node, parents)); - if (result[0] === EXIT$c) { + if (result[0] === EXIT$r) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$c) { + if (node.children && result[0] !== SKIP$r) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -49862,7 +58888,7 @@ const visitParents$c = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$c) { + if (subresult[0] === EXIT$r) { return subresult } @@ -49881,13 +58907,13 @@ const visitParents$c = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$c(value) { +function toResult$q(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$c, value] + return [CONTINUE$r, value] } return [value] @@ -49908,7 +58934,7 @@ function toResult$c(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$c = +const visit$q = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -49929,7 +58955,7 @@ const visit$c = test = null; } - visitParents$c(tree, test, overload, reverse); + visitParents$r(tree, test, overload, reverse); /** * @param {Node} node @@ -49980,11 +59006,11 @@ const visit$c = * 1:1-1:6: Use the trailing `[]` on reference links */ -const remarkLintNoShortcutReferenceLink = lintRule$c( +const remarkLintNoShortcutReferenceLink = lintRule$t( 'remark-lint:no-shortcut-reference-link', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - visit$c(tree, 'linkReference', (node) => { + visit$q(tree, 'linkReference', (node) => { if (!generated(node) && node.referenceType === 'shortcut') { file.message('Use the trailing `[]` on reference links', node); } @@ -49998,7 +59024,7 @@ const remarkLintNoShortcutReferenceLink = lintRule$c( * @param {string} value * @returns {string} */ -function normalizeIdentifier$1(value) { +function normalizeIdentifier(value) { return ( value // Collapse Markdown whitespace. .replace(/[\t\n\r ]+/g, ' ') // Trim. @@ -50027,7 +59053,7 @@ function normalizeIdentifier$1(value) { * * @param {string|Uint8Array|VFile} file */ -function location$2(file) { +function location$3(file) { var value = String(file); /** @type {Array.} */ var indices = []; @@ -50094,92 +59120,6 @@ function location$2(file) { } } -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$e(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -50195,13 +59135,13 @@ function wrap$e(middleware, callback) { * @returns {void} */ -const primitives$d = new Set(['string', 'number', 'boolean']); +const primitives$s = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$d(id, rule) { +function lintRule$s(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -50214,7 +59154,7 @@ function lintRule$d(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$d(ruleId, raw); + const [severity, options] = coerce$t(ruleId, raw); if (!severity) return @@ -50223,7 +59163,7 @@ function lintRule$d(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$e(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -50253,7 +59193,7 @@ function lintRule$d(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$d(name, value) { +function coerce$t(name, value) { /** @type {unknown[]} */ let result; @@ -50265,7 +59205,7 @@ function coerce$d(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$d.has(typeof value[0]) + primitives$s.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -50322,15 +59262,15 @@ function coerce$d(name, value) { * @property {PositionLike} [position] */ -var pointStart$8 = point$a('start'); -var pointEnd$5 = point$a('end'); +var pointStart$i = point$i('start'); +var pointEnd$9 = point$i('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$a(type) { +function point$i(type) { return point /** @@ -50362,7 +59302,7 @@ function point$a(type) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$g = +const convert$q = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -50382,19 +59322,19 @@ const convert$g = */ function (test) { if (test === undefined || test === null) { - return ok$e + return ok$p } if (typeof test === 'string') { - return typeFactory$d(test) + return typeFactory$p(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$d(test) : propsFactory$d(test) + return Array.isArray(test) ? anyFactory$p(test) : propsFactory$o(test) } if (typeof test === 'function') { - return castFactory$d(test) + return castFactory$o(test) } throw new Error('Expected function, string, or object as test') @@ -50404,16 +59344,16 @@ const convert$g = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$d(tests) { +function anyFactory$p(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$g(tests[index]); + checks[index] = convert$q(tests[index]); } - return castFactory$d(any) + return castFactory$o(any) /** * @this {unknown} @@ -50438,8 +59378,8 @@ function anyFactory$d(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$d(check) { - return castFactory$d(all) +function propsFactory$o(check) { + return castFactory$o(all) /** * @param {Node} node @@ -50465,8 +59405,8 @@ function propsFactory$d(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$d(check) { - return castFactory$d(type) +function typeFactory$p(check) { + return castFactory$o(type) /** * @param {Node} node @@ -50482,7 +59422,7 @@ function typeFactory$d(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$d(check) { +function castFactory$o(check) { return assertion /** @@ -50497,7 +59437,7 @@ function castFactory$d(check) { } // Utility to return true. -function ok$e() { +function ok$p() { return true } @@ -50505,7 +59445,7 @@ function ok$e() { * @param {string} d * @returns {string} */ -function color$e(d) { +function color$q(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -50518,15 +59458,15 @@ function color$e(d) { /** * Continue traversing as normal */ -const CONTINUE$d = true; +const CONTINUE$q = true; /** * Do not traverse this node’s children */ -const SKIP$d = 'skip'; +const SKIP$q = 'skip'; /** * Stop traversing immediately */ -const EXIT$d = false; +const EXIT$q = false; /** * Visit children of tree which pass a test @@ -50536,7 +59476,7 @@ const EXIT$d = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$d = +const visitParents$q = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -50558,7 +59498,7 @@ const visitParents$d = test = null; } - const is = convert$g(test); + const is = convert$q(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -50586,7 +59526,7 @@ const visitParents$d = Object.defineProperty(visit, 'name', { value: 'node (' + - color$e(value.type + (name ? '<' + name + '>' : '')) + + color$q(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -50604,15 +59544,15 @@ const visitParents$d = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$d(visitor(node, parents)); + result = toResult$p(visitor(node, parents)); - if (result[0] === EXIT$d) { + if (result[0] === EXIT$q) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$d) { + if (node.children && result[0] !== SKIP$q) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -50623,7 +59563,7 @@ const visitParents$d = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$d) { + if (subresult[0] === EXIT$q) { return subresult } @@ -50642,13 +59582,13 @@ const visitParents$d = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$d(value) { +function toResult$p(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$d, value] + return [CONTINUE$q, value] } return [value] @@ -50669,7 +59609,7 @@ function toResult$d(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$d = +const visit$p = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -50690,7 +59630,7 @@ const visit$d = test = null; } - visitParents$d(tree, test, overload, reverse); + visitParents$q(tree, test, overload, reverse); /** * @param {Node} node @@ -50775,29 +59715,29 @@ const visit$d = * 17:23-17:26: Found reference to undefined definition */ -const remarkLintNoUndefinedReferences = lintRule$d( +const remarkLintNoUndefinedReferences = lintRule$s( 'remark-lint:no-undefined-references', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = {}) => { const contents = String(file); - const loc = location$2(file); + const loc = location$3(file); const lineEnding = /(\r?\n|\r)[\t ]*(>[\t ]*)*/g; const allow = new Set( - (option.allow || []).map((d) => normalizeIdentifier$1(d)) + (option.allow || []).map((d) => normalizeIdentifier(d)) ); /** @type {Record} */ const map = Object.create(null); - visit$d(tree, (node) => { + visit$p(tree, (node) => { if ( (node.type === 'definition' || node.type === 'footnoteDefinition') && !generated(node) ) { - map[normalizeIdentifier$1(node.identifier)] = true; + map[normalizeIdentifier(node.identifier)] = true; } }); - visit$d(tree, (node) => { + visit$p(tree, (node) => { // CM specifiers that references only form when defined. // Still, they could be added by plugins, so let’s keep it. /* c8 ignore next 10 */ @@ -50806,8 +59746,8 @@ const remarkLintNoUndefinedReferences = lintRule$d( node.type === 'linkReference' || node.type === 'footnoteReference') && !generated(node) && - !(normalizeIdentifier$1(node.identifier) in map) && - !allow.has(normalizeIdentifier$1(node.identifier)) + !(normalizeIdentifier(node.identifier) in map) && + !allow.has(normalizeIdentifier(node.identifier)) ) { file.message('Found reference to undefined definition', node); } @@ -50824,25 +59764,25 @@ const remarkLintNoUndefinedReferences = lintRule$d( /** @type {Range[]} */ let ranges = []; - visit$d(node, (child) => { + visit$p(node, (child) => { // Ignore the node itself. if (child === node) return // Can’t have links in links, so reset ranges. if (child.type === 'link' || child.type === 'linkReference') { ranges = []; - return SKIP$d + return SKIP$q } // Enter non-text. if (child.type !== 'text') return - const start = pointStart$8(child).offset; - const end = pointEnd$5(child).offset; + const start = pointStart$i(child).offset; + const end = pointEnd$9(child).offset; // Bail if there’s no positional info. if (typeof start !== 'number' || typeof end !== 'number') { - return EXIT$d + return EXIT$q } const source = contents.slice(start, end); @@ -50940,7 +59880,7 @@ const remarkLintNoUndefinedReferences = lintRule$d( handleRange(ranges[index]); } - return SKIP$d + return SKIP$q /** * @param {Range} range @@ -50963,8 +59903,8 @@ const remarkLintNoUndefinedReferences = lintRule$d( if ( !generated({position: pos}) && - !(normalizeIdentifier$1(id) in map) && - !allow.has(normalizeIdentifier$1(id)) + !(normalizeIdentifier(id) in map) && + !allow.has(normalizeIdentifier(id)) ) { file.message('Found reference to undefined definition', pos); } @@ -50973,92 +59913,6 @@ const remarkLintNoUndefinedReferences = lintRule$d( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$f(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -51074,13 +59928,13 @@ function wrap$f(middleware, callback) { * @returns {void} */ -const primitives$e = new Set(['string', 'number', 'boolean']); +const primitives$r = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$e(id, rule) { +function lintRule$r(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -51093,7 +59947,7 @@ function lintRule$e(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$e(ruleId, raw); + const [severity, options] = coerce$s(ruleId, raw); if (!severity) return @@ -51102,7 +59956,7 @@ function lintRule$e(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$f(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -51132,7 +59986,7 @@ function lintRule$e(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$e(name, value) { +function coerce$s(name, value) { /** @type {unknown[]} */ let result; @@ -51144,7 +59998,7 @@ function coerce$e(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$e.has(typeof value[0]) + primitives$r.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -51197,7 +60051,7 @@ function coerce$e(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$h = +const convert$p = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -51217,19 +60071,19 @@ const convert$h = */ function (test) { if (test === undefined || test === null) { - return ok$f + return ok$o } if (typeof test === 'string') { - return typeFactory$e(test) + return typeFactory$o(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$e(test) : propsFactory$e(test) + return Array.isArray(test) ? anyFactory$o(test) : propsFactory$n(test) } if (typeof test === 'function') { - return castFactory$e(test) + return castFactory$n(test) } throw new Error('Expected function, string, or object as test') @@ -51239,16 +60093,16 @@ const convert$h = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$e(tests) { +function anyFactory$o(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$h(tests[index]); + checks[index] = convert$p(tests[index]); } - return castFactory$e(any) + return castFactory$n(any) /** * @this {unknown} @@ -51273,8 +60127,8 @@ function anyFactory$e(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$e(check) { - return castFactory$e(all) +function propsFactory$n(check) { + return castFactory$n(all) /** * @param {Node} node @@ -51300,8 +60154,8 @@ function propsFactory$e(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$e(check) { - return castFactory$e(type) +function typeFactory$o(check) { + return castFactory$n(type) /** * @param {Node} node @@ -51317,7 +60171,7 @@ function typeFactory$e(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$e(check) { +function castFactory$n(check) { return assertion /** @@ -51332,7 +60186,7 @@ function castFactory$e(check) { } // Utility to return true. -function ok$f() { +function ok$o() { return true } @@ -51340,7 +60194,7 @@ function ok$f() { * @param {string} d * @returns {string} */ -function color$f(d) { +function color$p(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -51353,15 +60207,15 @@ function color$f(d) { /** * Continue traversing as normal */ -const CONTINUE$e = true; +const CONTINUE$p = true; /** * Do not traverse this node’s children */ -const SKIP$e = 'skip'; +const SKIP$p = 'skip'; /** * Stop traversing immediately */ -const EXIT$e = false; +const EXIT$p = false; /** * Visit children of tree which pass a test @@ -51371,7 +60225,7 @@ const EXIT$e = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$e = +const visitParents$p = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -51393,7 +60247,7 @@ const visitParents$e = test = null; } - const is = convert$h(test); + const is = convert$p(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -51421,7 +60275,7 @@ const visitParents$e = Object.defineProperty(visit, 'name', { value: 'node (' + - color$f(value.type + (name ? '<' + name + '>' : '')) + + color$p(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -51439,15 +60293,15 @@ const visitParents$e = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$e(visitor(node, parents)); + result = toResult$o(visitor(node, parents)); - if (result[0] === EXIT$e) { + if (result[0] === EXIT$p) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$e) { + if (node.children && result[0] !== SKIP$p) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -51458,7 +60312,7 @@ const visitParents$e = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$e) { + if (subresult[0] === EXIT$p) { return subresult } @@ -51477,13 +60331,13 @@ const visitParents$e = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$e(value) { +function toResult$o(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$e, value] + return [CONTINUE$p, value] } return [value] @@ -51504,7 +60358,7 @@ function toResult$e(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$e = +const visit$o = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -51525,7 +60379,7 @@ const visit$e = test = null; } - visitParents$e(tree, test, overload, reverse); + visitParents$p(tree, test, overload, reverse); /** * @param {Node} node @@ -51568,16 +60422,16 @@ const visit$e = * 1:1-1:27: Found unused definition */ -const own$8 = {}.hasOwnProperty; +const own$1 = {}.hasOwnProperty; -const remarkLintNoUnusedDefinitions = lintRule$e( +const remarkLintNoUnusedDefinitions = lintRule$r( 'remark-lint:no-unused-definitions', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { /** @type {Record} */ const map = Object.create(null); - visit$e(tree, (node) => { + visit$o(tree, (node) => { if ( (node.type === 'definition' || node.type === 'footnoteDefinition') && !generated(node) @@ -51586,7 +60440,7 @@ const remarkLintNoUnusedDefinitions = lintRule$e( } }); - visit$e(tree, (node) => { + visit$o(tree, (node) => { if ( node.type === 'imageReference' || node.type === 'linkReference' || @@ -51604,7 +60458,7 @@ const remarkLintNoUnusedDefinitions = lintRule$e( let identifier; for (identifier in map) { - if (own$8.call(map, identifier)) { + if (own$1.call(map, identifier)) { const entry = map[identifier]; if (!entry.used) { @@ -51621,7 +60475,7 @@ const remarkLintNoUnusedDefinitions = lintRule$e( * mistakes or stuff that fails across vendors. */ -const plugins$1 = [ +const plugins = [ remarkLint, // Unix compatibility. remarkLintFinalNewline, @@ -51644,93 +60498,7 @@ const plugins$1 = [ remarkLintNoUnusedDefinitions ]; -const remarkPresetLintRecommended = {plugins: plugins$1}; - -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$g(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} +const remarkPresetLintRecommended = {plugins}; /** * @typedef {import('unist').Node} Node @@ -51747,13 +60515,13 @@ function wrap$g(middleware, callback) { * @returns {void} */ -const primitives$f = new Set(['string', 'number', 'boolean']); +const primitives$q = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$f(id, rule) { +function lintRule$q(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -51766,7 +60534,7 @@ function lintRule$f(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$f(ruleId, raw); + const [severity, options] = coerce$r(ruleId, raw); if (!severity) return @@ -51775,7 +60543,7 @@ function lintRule$f(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$g(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -51805,7 +60573,7 @@ function lintRule$f(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$f(name, value) { +function coerce$r(name, value) { /** @type {unknown[]} */ let result; @@ -51817,7 +60585,7 @@ function coerce$f(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$f.has(typeof value[0]) + primitives$q.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -51870,7 +60638,7 @@ function coerce$f(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$i = +const convert$o = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -51890,19 +60658,19 @@ const convert$i = */ function (test) { if (test === undefined || test === null) { - return ok$g + return ok$n } if (typeof test === 'string') { - return typeFactory$f(test) + return typeFactory$n(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$f(test) : propsFactory$f(test) + return Array.isArray(test) ? anyFactory$n(test) : propsFactory$m(test) } if (typeof test === 'function') { - return castFactory$f(test) + return castFactory$m(test) } throw new Error('Expected function, string, or object as test') @@ -51912,16 +60680,16 @@ const convert$i = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$f(tests) { +function anyFactory$n(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$i(tests[index]); + checks[index] = convert$o(tests[index]); } - return castFactory$f(any) + return castFactory$m(any) /** * @this {unknown} @@ -51946,8 +60714,8 @@ function anyFactory$f(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$f(check) { - return castFactory$f(all) +function propsFactory$m(check) { + return castFactory$m(all) /** * @param {Node} node @@ -51973,8 +60741,8 @@ function propsFactory$f(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$f(check) { - return castFactory$f(type) +function typeFactory$n(check) { + return castFactory$m(type) /** * @param {Node} node @@ -51990,7 +60758,7 @@ function typeFactory$f(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$f(check) { +function castFactory$m(check) { return assertion /** @@ -52005,7 +60773,7 @@ function castFactory$f(check) { } // Utility to return true. -function ok$g() { +function ok$n() { return true } @@ -52013,7 +60781,7 @@ function ok$g() { * @param {string} d * @returns {string} */ -function color$g(d) { +function color$o(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -52026,15 +60794,15 @@ function color$g(d) { /** * Continue traversing as normal */ -const CONTINUE$f = true; +const CONTINUE$o = true; /** * Do not traverse this node’s children */ -const SKIP$f = 'skip'; +const SKIP$o = 'skip'; /** * Stop traversing immediately */ -const EXIT$f = false; +const EXIT$o = false; /** * Visit children of tree which pass a test @@ -52044,7 +60812,7 @@ const EXIT$f = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$f = +const visitParents$o = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -52066,7 +60834,7 @@ const visitParents$f = test = null; } - const is = convert$i(test); + const is = convert$o(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -52094,7 +60862,7 @@ const visitParents$f = Object.defineProperty(visit, 'name', { value: 'node (' + - color$g(value.type + (name ? '<' + name + '>' : '')) + + color$o(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -52112,15 +60880,15 @@ const visitParents$f = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$f(visitor(node, parents)); + result = toResult$n(visitor(node, parents)); - if (result[0] === EXIT$f) { + if (result[0] === EXIT$o) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$f) { + if (node.children && result[0] !== SKIP$o) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -52131,7 +60899,7 @@ const visitParents$f = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$f) { + if (subresult[0] === EXIT$o) { return subresult } @@ -52150,13 +60918,13 @@ const visitParents$f = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$f(value) { +function toResult$n(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$f, value] + return [CONTINUE$o, value] } return [value] @@ -52177,7 +60945,7 @@ function toResult$f(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$f = +const visit$n = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -52198,7 +60966,7 @@ const visit$f = test = null; } - visitParents$f(tree, test, overload, reverse); + visitParents$o(tree, test, overload, reverse); /** * @param {Node} node @@ -52229,14 +60997,14 @@ const visit$f = * @property {PositionLike} [position] */ -var pointStart$9 = point$b('start'); +var pointStart$h = point$h('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$b(type) { +function point$h(type) { return point /** @@ -52308,19 +61076,19 @@ function point$b(type) { * 9:3: Add 1 space between block quote and content */ -const remarkLintBlockquoteIndentation = lintRule$f( +const remarkLintBlockquoteIndentation = lintRule$q( 'remark-lint:blockquote-indentation', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { - visit$f(tree, 'blockquote', (node) => { + visit$n(tree, 'blockquote', (node) => { if (generated(node) || node.children.length === 0) { return } if (option === 'consistent') { - option = check$3(node); + option = check(node); } else { - const diff = option - check$3(node); + const diff = option - check(node); if (diff !== 0) { const abs = Math.abs(diff); @@ -52330,9 +61098,9 @@ const remarkLintBlockquoteIndentation = lintRule$f( ' ' + abs + ' ' + - pluralize('space', abs) + + plural('space', abs) + ' between block quote and content', - pointStart$9(node.children[0]) + pointStart$h(node.children[0]) ); } } @@ -52344,94 +61112,8 @@ const remarkLintBlockquoteIndentation = lintRule$f( * @param {Blockquote} node * @returns {number} */ -function check$3(node) { - return pointStart$9(node.children[0]).column - pointStart$9(node).column -} - -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$h(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } +function check(node) { + return pointStart$h(node.children[0]).column - pointStart$h(node).column } /** @@ -52449,13 +61131,13 @@ function wrap$h(middleware, callback) { * @returns {void} */ -const primitives$g = new Set(['string', 'number', 'boolean']); +const primitives$p = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$g(id, rule) { +function lintRule$p(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -52468,7 +61150,7 @@ function lintRule$g(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$g(ruleId, raw); + const [severity, options] = coerce$q(ruleId, raw); if (!severity) return @@ -52477,7 +61159,7 @@ function lintRule$g(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$h(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -52507,7 +61189,7 @@ function lintRule$g(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$g(name, value) { +function coerce$q(name, value) { /** @type {unknown[]} */ let result; @@ -52519,7 +61201,7 @@ function coerce$g(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$g.has(typeof value[0]) + primitives$p.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -52572,7 +61254,7 @@ function coerce$g(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$j = +const convert$n = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -52592,19 +61274,19 @@ const convert$j = */ function (test) { if (test === undefined || test === null) { - return ok$h + return ok$m } if (typeof test === 'string') { - return typeFactory$g(test) + return typeFactory$m(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$g(test) : propsFactory$g(test) + return Array.isArray(test) ? anyFactory$m(test) : propsFactory$l(test) } if (typeof test === 'function') { - return castFactory$g(test) + return castFactory$l(test) } throw new Error('Expected function, string, or object as test') @@ -52614,16 +61296,16 @@ const convert$j = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$g(tests) { +function anyFactory$m(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$j(tests[index]); + checks[index] = convert$n(tests[index]); } - return castFactory$g(any) + return castFactory$l(any) /** * @this {unknown} @@ -52648,8 +61330,8 @@ function anyFactory$g(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$g(check) { - return castFactory$g(all) +function propsFactory$l(check) { + return castFactory$l(all) /** * @param {Node} node @@ -52675,8 +61357,8 @@ function propsFactory$g(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$g(check) { - return castFactory$g(type) +function typeFactory$m(check) { + return castFactory$l(type) /** * @param {Node} node @@ -52692,7 +61374,7 @@ function typeFactory$g(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$g(check) { +function castFactory$l(check) { return assertion /** @@ -52707,7 +61389,7 @@ function castFactory$g(check) { } // Utility to return true. -function ok$h() { +function ok$m() { return true } @@ -52715,7 +61397,7 @@ function ok$h() { * @param {string} d * @returns {string} */ -function color$h(d) { +function color$n(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -52728,15 +61410,15 @@ function color$h(d) { /** * Continue traversing as normal */ -const CONTINUE$g = true; +const CONTINUE$n = true; /** * Do not traverse this node’s children */ -const SKIP$g = 'skip'; +const SKIP$n = 'skip'; /** * Stop traversing immediately */ -const EXIT$g = false; +const EXIT$n = false; /** * Visit children of tree which pass a test @@ -52746,7 +61428,7 @@ const EXIT$g = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$g = +const visitParents$n = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -52768,7 +61450,7 @@ const visitParents$g = test = null; } - const is = convert$j(test); + const is = convert$n(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -52796,7 +61478,7 @@ const visitParents$g = Object.defineProperty(visit, 'name', { value: 'node (' + - color$h(value.type + (name ? '<' + name + '>' : '')) + + color$n(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -52814,15 +61496,15 @@ const visitParents$g = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$g(visitor(node, parents)); + result = toResult$m(visitor(node, parents)); - if (result[0] === EXIT$g) { + if (result[0] === EXIT$n) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$g) { + if (node.children && result[0] !== SKIP$n) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -52833,7 +61515,7 @@ const visitParents$g = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$g) { + if (subresult[0] === EXIT$n) { return subresult } @@ -52852,13 +61534,13 @@ const visitParents$g = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$g(value) { +function toResult$m(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$g, value] + return [CONTINUE$n, value] } return [value] @@ -52879,7 +61561,7 @@ function toResult$g(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$g = +const visit$m = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -52900,7 +61582,7 @@ const visit$g = test = null; } - visitParents$g(tree, test, overload, reverse); + visitParents$n(tree, test, overload, reverse); /** * @param {Node} node @@ -52931,14 +61613,14 @@ const visit$g = * @property {PositionLike} [position] */ -var pointStart$a = point$c('start'); +var pointStart$g = point$g('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$c(type) { +function point$g(type) { return point /** @@ -53039,7 +61721,7 @@ function point$c(type) { * 1:1: Incorrect checked checkbox marker `💩`: use either `'x'`, or `'X'` */ -const remarkLintCheckboxCharacterStyle = lintRule$g( +const remarkLintCheckboxCharacterStyle = lintRule$p( 'remark-lint:checkbox-character-style', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { @@ -53070,9 +61752,9 @@ const remarkLintCheckboxCharacterStyle = lintRule$g( ); } - visit$g(tree, 'listItem', (node) => { + visit$m(tree, 'listItem', (node) => { const head = node.children[0]; - const point = pointStart$a(head); + const point = pointStart$g(head); // Exit early for items without checkbox. // A list item cannot be checked and empty, according to GFM. @@ -53120,92 +61802,6 @@ const remarkLintCheckboxCharacterStyle = lintRule$g( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$i(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -53221,13 +61817,13 @@ function wrap$i(middleware, callback) { * @returns {void} */ -const primitives$h = new Set(['string', 'number', 'boolean']); +const primitives$o = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$h(id, rule) { +function lintRule$o(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -53240,7 +61836,7 @@ function lintRule$h(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$h(ruleId, raw); + const [severity, options] = coerce$p(ruleId, raw); if (!severity) return @@ -53249,7 +61845,7 @@ function lintRule$h(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$i(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -53279,7 +61875,7 @@ function lintRule$h(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$h(name, value) { +function coerce$p(name, value) { /** @type {unknown[]} */ let result; @@ -53291,7 +61887,7 @@ function coerce$h(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$h.has(typeof value[0]) + primitives$o.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -53348,7 +61944,7 @@ function coerce$h(name, value) { * * @param {string|Uint8Array|VFile} file */ -function location$3(file) { +function location$2(file) { var value = String(file); /** @type {Array.} */ var indices = []; @@ -53425,7 +62021,7 @@ function location$3(file) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$k = +const convert$m = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -53445,19 +62041,19 @@ const convert$k = */ function (test) { if (test === undefined || test === null) { - return ok$i + return ok$l } if (typeof test === 'string') { - return typeFactory$h(test) + return typeFactory$l(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$h(test) : propsFactory$h(test) + return Array.isArray(test) ? anyFactory$l(test) : propsFactory$k(test) } if (typeof test === 'function') { - return castFactory$h(test) + return castFactory$k(test) } throw new Error('Expected function, string, or object as test') @@ -53467,16 +62063,16 @@ const convert$k = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$h(tests) { +function anyFactory$l(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$k(tests[index]); + checks[index] = convert$m(tests[index]); } - return castFactory$h(any) + return castFactory$k(any) /** * @this {unknown} @@ -53501,8 +62097,8 @@ function anyFactory$h(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$h(check) { - return castFactory$h(all) +function propsFactory$k(check) { + return castFactory$k(all) /** * @param {Node} node @@ -53528,8 +62124,8 @@ function propsFactory$h(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$h(check) { - return castFactory$h(type) +function typeFactory$l(check) { + return castFactory$k(type) /** * @param {Node} node @@ -53545,7 +62141,7 @@ function typeFactory$h(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$h(check) { +function castFactory$k(check) { return assertion /** @@ -53560,7 +62156,7 @@ function castFactory$h(check) { } // Utility to return true. -function ok$i() { +function ok$l() { return true } @@ -53568,7 +62164,7 @@ function ok$i() { * @param {string} d * @returns {string} */ -function color$i(d) { +function color$m(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -53581,15 +62177,15 @@ function color$i(d) { /** * Continue traversing as normal */ -const CONTINUE$h = true; +const CONTINUE$m = true; /** * Do not traverse this node’s children */ -const SKIP$h = 'skip'; +const SKIP$m = 'skip'; /** * Stop traversing immediately */ -const EXIT$h = false; +const EXIT$m = false; /** * Visit children of tree which pass a test @@ -53599,7 +62195,7 @@ const EXIT$h = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$h = +const visitParents$m = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -53621,7 +62217,7 @@ const visitParents$h = test = null; } - const is = convert$k(test); + const is = convert$m(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -53649,7 +62245,7 @@ const visitParents$h = Object.defineProperty(visit, 'name', { value: 'node (' + - color$i(value.type + (name ? '<' + name + '>' : '')) + + color$m(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -53667,15 +62263,15 @@ const visitParents$h = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$h(visitor(node, parents)); + result = toResult$l(visitor(node, parents)); - if (result[0] === EXIT$h) { + if (result[0] === EXIT$m) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$h) { + if (node.children && result[0] !== SKIP$m) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -53686,7 +62282,7 @@ const visitParents$h = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$h) { + if (subresult[0] === EXIT$m) { return subresult } @@ -53705,13 +62301,13 @@ const visitParents$h = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$h(value) { +function toResult$l(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$h, value] + return [CONTINUE$m, value] } return [value] @@ -53732,7 +62328,7 @@ function toResult$h(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$h = +const visit$l = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -53753,7 +62349,7 @@ const visit$h = test = null; } - visitParents$h(tree, test, overload, reverse); + visitParents$m(tree, test, overload, reverse); /** * @param {Node} node @@ -53784,14 +62380,14 @@ const visit$h = * @property {PositionLike} [position] */ -var pointStart$b = point$d('start'); +var pointStart$f = point$f('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$d(type) { +function point$f(type) { return point /** @@ -53845,16 +62441,16 @@ function point$d(type) { * 4:7-4:10: Checkboxes should be followed by a single character */ -const remarkLintCheckboxContentIndent = lintRule$h( +const remarkLintCheckboxContentIndent = lintRule$o( 'remark-lint:checkbox-content-indent', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); - const loc = location$3(file); + const loc = location$2(file); - visit$h(tree, 'listItem', (node) => { + visit$l(tree, 'listItem', (node) => { const head = node.children[0]; - const point = pointStart$b(head); + const point = pointStart$f(head); // Exit early for items without checkbox. // A list item cannot be checked and empty, according to GFM. @@ -53891,92 +62487,6 @@ const remarkLintCheckboxContentIndent = lintRule$h( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$j(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -53992,13 +62502,13 @@ function wrap$j(middleware, callback) { * @returns {void} */ -const primitives$i = new Set(['string', 'number', 'boolean']); +const primitives$n = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$i(id, rule) { +function lintRule$n(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -54011,7 +62521,7 @@ function lintRule$i(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$i(ruleId, raw); + const [severity, options] = coerce$o(ruleId, raw); if (!severity) return @@ -54020,7 +62530,7 @@ function lintRule$i(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$j(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -54050,7 +62560,7 @@ function lintRule$i(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$i(name, value) { +function coerce$o(name, value) { /** @type {unknown[]} */ let result; @@ -54062,7 +62572,7 @@ function coerce$i(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$i.has(typeof value[0]) + primitives$n.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -54135,19 +62645,19 @@ const convert$l = */ function (test) { if (test === undefined || test === null) { - return ok$j + return ok$k } if (typeof test === 'string') { - return typeFactory$i(test) + return typeFactory$k(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$i(test) : propsFactory$i(test) + return Array.isArray(test) ? anyFactory$k(test) : propsFactory$j(test) } if (typeof test === 'function') { - return castFactory$i(test) + return castFactory$j(test) } throw new Error('Expected function, string, or object as test') @@ -54157,7 +62667,7 @@ const convert$l = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$i(tests) { +function anyFactory$k(tests) { /** @type {Array.} */ const checks = []; let index = -1; @@ -54166,7 +62676,7 @@ function anyFactory$i(tests) { checks[index] = convert$l(tests[index]); } - return castFactory$i(any) + return castFactory$j(any) /** * @this {unknown} @@ -54191,8 +62701,8 @@ function anyFactory$i(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$i(check) { - return castFactory$i(all) +function propsFactory$j(check) { + return castFactory$j(all) /** * @param {Node} node @@ -54218,8 +62728,8 @@ function propsFactory$i(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$i(check) { - return castFactory$i(type) +function typeFactory$k(check) { + return castFactory$j(type) /** * @param {Node} node @@ -54235,7 +62745,7 @@ function typeFactory$i(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$i(check) { +function castFactory$j(check) { return assertion /** @@ -54250,7 +62760,7 @@ function castFactory$i(check) { } // Utility to return true. -function ok$j() { +function ok$k() { return true } @@ -54258,7 +62768,7 @@ function ok$j() { * @param {string} d * @returns {string} */ -function color$j(d) { +function color$l(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -54271,15 +62781,15 @@ function color$j(d) { /** * Continue traversing as normal */ -const CONTINUE$i = true; +const CONTINUE$l = true; /** * Do not traverse this node’s children */ -const SKIP$i = 'skip'; +const SKIP$l = 'skip'; /** * Stop traversing immediately */ -const EXIT$i = false; +const EXIT$l = false; /** * Visit children of tree which pass a test @@ -54289,7 +62799,7 @@ const EXIT$i = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$i = +const visitParents$l = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -54339,7 +62849,7 @@ const visitParents$i = Object.defineProperty(visit, 'name', { value: 'node (' + - color$j(value.type + (name ? '<' + name + '>' : '')) + + color$l(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -54357,15 +62867,15 @@ const visitParents$i = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$i(visitor(node, parents)); + result = toResult$k(visitor(node, parents)); - if (result[0] === EXIT$i) { + if (result[0] === EXIT$l) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$i) { + if (node.children && result[0] !== SKIP$l) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -54376,7 +62886,7 @@ const visitParents$i = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$i) { + if (subresult[0] === EXIT$l) { return subresult } @@ -54395,13 +62905,13 @@ const visitParents$i = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$i(value) { +function toResult$k(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$i, value] + return [CONTINUE$l, value] } return [value] @@ -54422,7 +62932,7 @@ function toResult$i(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$i = +const visit$k = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -54443,7 +62953,7 @@ const visit$i = test = null; } - visitParents$i(tree, test, overload, reverse); + visitParents$l(tree, test, overload, reverse); /** * @param {Node} node @@ -54474,8 +62984,8 @@ const visit$i = * @property {PositionLike} [position] */ -var pointStart$c = point$e('start'); -var pointEnd$6 = point$e('end'); +var pointStart$e = point$e('start'); +var pointEnd$8 = point$e('end'); /** * Get the positional info of `node`. @@ -54607,7 +63117,7 @@ function point$e(type) { * 1:1: Incorrect code block style `💩`: use either `'consistent'`, `'fenced'`, or `'indented'` */ -const remarkLintCodeBlockStyle = lintRule$i( +const remarkLintCodeBlockStyle = lintRule$n( 'remark-lint:code-block-style', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { @@ -54625,13 +63135,13 @@ const remarkLintCodeBlockStyle = lintRule$i( ); } - visit$i(tree, 'code', (node) => { + visit$k(tree, 'code', (node) => { if (generated(node)) { return } - const initial = pointStart$c(node).offset; - const final = pointEnd$6(node).offset; + const initial = pointStart$e(node).offset; + const final = pointEnd$8(node).offset; const current = node.lang || /^\s*([~`])\1{2,}/.test(value.slice(initial, final)) @@ -54647,92 +63157,6 @@ const remarkLintCodeBlockStyle = lintRule$i( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$k(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -54748,13 +63172,13 @@ function wrap$k(middleware, callback) { * @returns {void} */ -const primitives$j = new Set(['string', 'number', 'boolean']); +const primitives$m = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$j(id, rule) { +function lintRule$m(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -54767,7 +63191,7 @@ function lintRule$j(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$j(ruleId, raw); + const [severity, options] = coerce$n(ruleId, raw); if (!severity) return @@ -54776,7 +63200,7 @@ function lintRule$j(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$k(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -54806,7 +63230,7 @@ function lintRule$j(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$j(name, value) { +function coerce$n(name, value) { /** @type {unknown[]} */ let result; @@ -54818,7 +63242,7 @@ function coerce$j(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$j.has(typeof value[0]) + primitives$m.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -54871,7 +63295,7 @@ function coerce$j(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$m = +const convert$k = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -54891,7 +63315,7 @@ const convert$m = */ function (test) { if (test === undefined || test === null) { - return ok$k + return ok$j } if (typeof test === 'string') { @@ -54899,11 +63323,11 @@ const convert$m = } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$j(test) : propsFactory$j(test) + return Array.isArray(test) ? anyFactory$j(test) : propsFactory$i(test) } if (typeof test === 'function') { - return castFactory$j(test) + return castFactory$i(test) } throw new Error('Expected function, string, or object as test') @@ -54919,10 +63343,10 @@ function anyFactory$j(tests) { let index = -1; while (++index < tests.length) { - checks[index] = convert$m(tests[index]); + checks[index] = convert$k(tests[index]); } - return castFactory$j(any) + return castFactory$i(any) /** * @this {unknown} @@ -54947,8 +63371,8 @@ function anyFactory$j(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$j(check) { - return castFactory$j(all) +function propsFactory$i(check) { + return castFactory$i(all) /** * @param {Node} node @@ -54975,7 +63399,7 @@ function propsFactory$j(check) { * @returns {AssertAnything} */ function typeFactory$j(check) { - return castFactory$j(type) + return castFactory$i(type) /** * @param {Node} node @@ -54991,7 +63415,7 @@ function typeFactory$j(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$j(check) { +function castFactory$i(check) { return assertion /** @@ -55006,7 +63430,7 @@ function castFactory$j(check) { } // Utility to return true. -function ok$k() { +function ok$j() { return true } @@ -55027,15 +63451,15 @@ function color$k(d) { /** * Continue traversing as normal */ -const CONTINUE$j = true; +const CONTINUE$k = true; /** * Do not traverse this node’s children */ -const SKIP$j = 'skip'; +const SKIP$k = 'skip'; /** * Stop traversing immediately */ -const EXIT$j = false; +const EXIT$k = false; /** * Visit children of tree which pass a test @@ -55045,7 +63469,7 @@ const EXIT$j = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$j = +const visitParents$k = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -55067,7 +63491,7 @@ const visitParents$j = test = null; } - const is = convert$m(test); + const is = convert$k(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -55115,13 +63539,13 @@ const visitParents$j = if (!test || is(node, index, parents[parents.length - 1] || null)) { result = toResult$j(visitor(node, parents)); - if (result[0] === EXIT$j) { + if (result[0] === EXIT$k) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$j) { + if (node.children && result[0] !== SKIP$k) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -55132,7 +63556,7 @@ const visitParents$j = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$j) { + if (subresult[0] === EXIT$k) { return subresult } @@ -55157,7 +63581,7 @@ function toResult$j(value) { } if (typeof value === 'number') { - return [CONTINUE$j, value] + return [CONTINUE$k, value] } return [value] @@ -55199,7 +63623,7 @@ const visit$j = test = null; } - visitParents$j(tree, test, overload, reverse); + visitParents$k(tree, test, overload, reverse); /** * @param {Node} node @@ -55230,15 +63654,15 @@ const visit$j = * @property {PositionLike} [position] */ -var pointStart$d = point$f('start'); -var pointEnd$7 = point$f('end'); +var pointStart$d = point$d('start'); +var pointEnd$7 = point$d('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$f(type) { +function point$d(type) { return point /** @@ -55286,7 +63710,7 @@ function point$f(type) { const label = /^\s*\[((?:\\[\s\S]|[^[\]])+)]/; -const remarkLintDefinitionSpacing = lintRule$j( +const remarkLintDefinitionSpacing = lintRule$m( 'remark-lint:definition-spacing', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { @@ -55312,92 +63736,6 @@ const remarkLintDefinitionSpacing = lintRule$j( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$l(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -55413,13 +63751,13 @@ function wrap$l(middleware, callback) { * @returns {void} */ -const primitives$k = new Set(['string', 'number', 'boolean']); +const primitives$l = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$k(id, rule) { +function lintRule$l(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -55432,7 +63770,7 @@ function lintRule$k(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$k(ruleId, raw); + const [severity, options] = coerce$m(ruleId, raw); if (!severity) return @@ -55441,7 +63779,7 @@ function lintRule$k(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$l(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -55471,7 +63809,7 @@ function lintRule$k(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$k(name, value) { +function coerce$m(name, value) { /** @type {unknown[]} */ let result; @@ -55483,7 +63821,7 @@ function coerce$k(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$k.has(typeof value[0]) + primitives$l.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -55536,7 +63874,7 @@ function coerce$k(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$n = +const convert$j = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -55556,19 +63894,19 @@ const convert$n = */ function (test) { if (test === undefined || test === null) { - return ok$l + return ok$i } if (typeof test === 'string') { - return typeFactory$k(test) + return typeFactory$i(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$k(test) : propsFactory$k(test) + return Array.isArray(test) ? anyFactory$i(test) : propsFactory$h(test) } if (typeof test === 'function') { - return castFactory$k(test) + return castFactory$h(test) } throw new Error('Expected function, string, or object as test') @@ -55578,16 +63916,16 @@ const convert$n = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$k(tests) { +function anyFactory$i(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$n(tests[index]); + checks[index] = convert$j(tests[index]); } - return castFactory$k(any) + return castFactory$h(any) /** * @this {unknown} @@ -55612,8 +63950,8 @@ function anyFactory$k(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$k(check) { - return castFactory$k(all) +function propsFactory$h(check) { + return castFactory$h(all) /** * @param {Node} node @@ -55639,8 +63977,8 @@ function propsFactory$k(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$k(check) { - return castFactory$k(type) +function typeFactory$i(check) { + return castFactory$h(type) /** * @param {Node} node @@ -55656,7 +63994,7 @@ function typeFactory$k(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$k(check) { +function castFactory$h(check) { return assertion /** @@ -55671,7 +64009,7 @@ function castFactory$k(check) { } // Utility to return true. -function ok$l() { +function ok$i() { return true } @@ -55679,7 +64017,7 @@ function ok$l() { * @param {string} d * @returns {string} */ -function color$l(d) { +function color$j(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -55692,15 +64030,15 @@ function color$l(d) { /** * Continue traversing as normal */ -const CONTINUE$k = true; +const CONTINUE$j = true; /** * Do not traverse this node’s children */ -const SKIP$k = 'skip'; +const SKIP$j = 'skip'; /** * Stop traversing immediately */ -const EXIT$k = false; +const EXIT$j = false; /** * Visit children of tree which pass a test @@ -55710,7 +64048,7 @@ const EXIT$k = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$k = +const visitParents$j = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -55732,7 +64070,7 @@ const visitParents$k = test = null; } - const is = convert$n(test); + const is = convert$j(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -55760,7 +64098,7 @@ const visitParents$k = Object.defineProperty(visit, 'name', { value: 'node (' + - color$l(value.type + (name ? '<' + name + '>' : '')) + + color$j(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -55778,15 +64116,15 @@ const visitParents$k = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$k(visitor(node, parents)); + result = toResult$i(visitor(node, parents)); - if (result[0] === EXIT$k) { + if (result[0] === EXIT$j) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$k) { + if (node.children && result[0] !== SKIP$j) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -55797,7 +64135,7 @@ const visitParents$k = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$k) { + if (subresult[0] === EXIT$j) { return subresult } @@ -55816,13 +64154,13 @@ const visitParents$k = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$k(value) { +function toResult$i(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$k, value] + return [CONTINUE$j, value] } return [value] @@ -55843,7 +64181,7 @@ function toResult$k(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$k = +const visit$i = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -55864,7 +64202,7 @@ const visit$k = test = null; } - visitParents$k(tree, test, overload, reverse); + visitParents$j(tree, test, overload, reverse); /** * @param {Node} node @@ -55895,15 +64233,15 @@ const visit$k = * @property {PositionLike} [position] */ -var pointStart$e = point$g('start'); -var pointEnd$8 = point$g('end'); +var pointStart$c = point$c('start'); +var pointEnd$6 = point$c('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$g(type) { +function point$c(type) { return point /** @@ -56009,7 +64347,7 @@ function point$g(type) { const fence = /^ {0,3}([~`])\1{2,}/; -const remarkLintFencedCodeFlag = lintRule$k( +const remarkLintFencedCodeFlag = lintRule$l( 'remark-lint:fenced-code-flag', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option) => { @@ -56030,7 +64368,7 @@ const remarkLintFencedCodeFlag = lintRule$k( } } - visit$k(tree, 'code', (node) => { + visit$i(tree, 'code', (node) => { if (!generated(node)) { if (node.lang) { if (allowed.length > 0 && !allowed.includes(node.lang)) { @@ -56038,8 +64376,8 @@ const remarkLintFencedCodeFlag = lintRule$k( } } else { const slice = value.slice( - pointStart$e(node).offset, - pointEnd$8(node).offset + pointStart$c(node).offset, + pointEnd$6(node).offset ); if (!allowEmpty && fence.test(slice)) { @@ -56051,92 +64389,6 @@ const remarkLintFencedCodeFlag = lintRule$k( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$m(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -56152,13 +64404,13 @@ function wrap$m(middleware, callback) { * @returns {void} */ -const primitives$l = new Set(['string', 'number', 'boolean']); +const primitives$k = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$l(id, rule) { +function lintRule$k(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -56180,7 +64432,7 @@ function lintRule$l(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$m(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -56222,7 +64474,7 @@ function coerce$l(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$l.has(typeof value[0]) + primitives$k.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -56275,7 +64527,7 @@ function coerce$l(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$o = +const convert$i = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -56295,19 +64547,19 @@ const convert$o = */ function (test) { if (test === undefined || test === null) { - return ok$m + return ok$h } if (typeof test === 'string') { - return typeFactory$l(test) + return typeFactory$h(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$l(test) : propsFactory$l(test) + return Array.isArray(test) ? anyFactory$h(test) : propsFactory$g(test) } if (typeof test === 'function') { - return castFactory$l(test) + return castFactory$g(test) } throw new Error('Expected function, string, or object as test') @@ -56317,16 +64569,16 @@ const convert$o = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$l(tests) { +function anyFactory$h(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$o(tests[index]); + checks[index] = convert$i(tests[index]); } - return castFactory$l(any) + return castFactory$g(any) /** * @this {unknown} @@ -56351,8 +64603,8 @@ function anyFactory$l(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$l(check) { - return castFactory$l(all) +function propsFactory$g(check) { + return castFactory$g(all) /** * @param {Node} node @@ -56378,8 +64630,8 @@ function propsFactory$l(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$l(check) { - return castFactory$l(type) +function typeFactory$h(check) { + return castFactory$g(type) /** * @param {Node} node @@ -56395,7 +64647,7 @@ function typeFactory$l(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$l(check) { +function castFactory$g(check) { return assertion /** @@ -56410,7 +64662,7 @@ function castFactory$l(check) { } // Utility to return true. -function ok$m() { +function ok$h() { return true } @@ -56418,7 +64670,7 @@ function ok$m() { * @param {string} d * @returns {string} */ -function color$m(d) { +function color$i(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -56431,15 +64683,15 @@ function color$m(d) { /** * Continue traversing as normal */ -const CONTINUE$l = true; +const CONTINUE$i = true; /** * Do not traverse this node’s children */ -const SKIP$l = 'skip'; +const SKIP$i = 'skip'; /** * Stop traversing immediately */ -const EXIT$l = false; +const EXIT$i = false; /** * Visit children of tree which pass a test @@ -56449,7 +64701,7 @@ const EXIT$l = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$l = +const visitParents$i = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -56471,7 +64723,7 @@ const visitParents$l = test = null; } - const is = convert$o(test); + const is = convert$i(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -56499,7 +64751,7 @@ const visitParents$l = Object.defineProperty(visit, 'name', { value: 'node (' + - color$m(value.type + (name ? '<' + name + '>' : '')) + + color$i(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -56517,15 +64769,15 @@ const visitParents$l = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$l(visitor(node, parents)); + result = toResult$h(visitor(node, parents)); - if (result[0] === EXIT$l) { + if (result[0] === EXIT$i) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$l) { + if (node.children && result[0] !== SKIP$i) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -56536,7 +64788,7 @@ const visitParents$l = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$l) { + if (subresult[0] === EXIT$i) { return subresult } @@ -56555,13 +64807,13 @@ const visitParents$l = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$l(value) { +function toResult$h(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$l, value] + return [CONTINUE$i, value] } return [value] @@ -56582,7 +64834,7 @@ function toResult$l(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$l = +const visit$h = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -56603,7 +64855,7 @@ const visit$l = test = null; } - visitParents$l(tree, test, overload, reverse); + visitParents$i(tree, test, overload, reverse); /** * @param {Node} node @@ -56634,14 +64886,14 @@ const visit$l = * @property {PositionLike} [position] */ -var pointStart$f = point$h('start'); +var pointStart$b = point$b('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$h(type) { +function point$b(type) { return point /** @@ -56754,7 +65006,7 @@ function point$h(type) { * 1:1: Incorrect fenced code marker `💩`: use either `'consistent'`, `` '`' ``, or `'~'` */ -const remarkLintFencedCodeMarker = lintRule$l( +const remarkLintFencedCodeMarker = lintRule$k( 'remark-lint:fenced-code-marker', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { @@ -56768,8 +65020,8 @@ const remarkLintFencedCodeMarker = lintRule$l( ); } - visit$l(tree, 'code', (node) => { - const start = pointStart$f(node).offset; + visit$h(tree, 'code', (node) => { + const start = pointStart$b(node).offset; if (typeof start === 'number') { const marker = contents @@ -56795,92 +65047,6 @@ const remarkLintFencedCodeMarker = lintRule$l( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$n(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -56896,13 +65062,13 @@ function wrap$n(middleware, callback) { * @returns {void} */ -const primitives$m = new Set(['string', 'number', 'boolean']); +const primitives$j = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$m(id, rule) { +function lintRule$j(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -56915,7 +65081,7 @@ function lintRule$m(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$m(ruleId, raw); + const [severity, options] = coerce$k(ruleId, raw); if (!severity) return @@ -56924,7 +65090,7 @@ function lintRule$m(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$n(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -56954,7 +65120,7 @@ function lintRule$m(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$m(name, value) { +function coerce$k(name, value) { /** @type {unknown[]} */ let result; @@ -56966,7 +65132,7 @@ function coerce$m(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$m.has(typeof value[0]) + primitives$j.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -57037,7 +65203,7 @@ function coerce$m(name, value) { * {"name": "readme.mkd", "setting": "mkd"} */ -const remarkLintFileExtension = lintRule$m( +const remarkLintFileExtension = lintRule$j( 'remark-lint:file-extension', /** @type {import('unified-lint-rule').Rule} */ (_, file, option = 'md') => { @@ -57049,92 +65215,6 @@ const remarkLintFileExtension = lintRule$m( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$o(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -57150,13 +65230,13 @@ function wrap$o(middleware, callback) { * @returns {void} */ -const primitives$n = new Set(['string', 'number', 'boolean']); +const primitives$i = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$n(id, rule) { +function lintRule$i(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -57169,7 +65249,7 @@ function lintRule$n(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$n(ruleId, raw); + const [severity, options] = coerce$j(ruleId, raw); if (!severity) return @@ -57178,7 +65258,7 @@ function lintRule$n(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$o(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -57208,7 +65288,7 @@ function lintRule$n(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$n(name, value) { +function coerce$j(name, value) { /** @type {unknown[]} */ let result; @@ -57220,7 +65300,7 @@ function coerce$n(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$n.has(typeof value[0]) + primitives$i.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -57273,7 +65353,7 @@ function coerce$n(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$p = +const convert$h = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -57293,19 +65373,19 @@ const convert$p = */ function (test) { if (test === undefined || test === null) { - return ok$n + return ok$g } if (typeof test === 'string') { - return typeFactory$m(test) + return typeFactory$g(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$m(test) : propsFactory$m(test) + return Array.isArray(test) ? anyFactory$g(test) : propsFactory$f(test) } if (typeof test === 'function') { - return castFactory$m(test) + return castFactory$f(test) } throw new Error('Expected function, string, or object as test') @@ -57315,16 +65395,16 @@ const convert$p = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$m(tests) { +function anyFactory$g(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$p(tests[index]); + checks[index] = convert$h(tests[index]); } - return castFactory$m(any) + return castFactory$f(any) /** * @this {unknown} @@ -57349,8 +65429,8 @@ function anyFactory$m(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$m(check) { - return castFactory$m(all) +function propsFactory$f(check) { + return castFactory$f(all) /** * @param {Node} node @@ -57376,8 +65456,8 @@ function propsFactory$m(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$m(check) { - return castFactory$m(type) +function typeFactory$g(check) { + return castFactory$f(type) /** * @param {Node} node @@ -57393,7 +65473,7 @@ function typeFactory$m(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$m(check) { +function castFactory$f(check) { return assertion /** @@ -57408,7 +65488,7 @@ function castFactory$m(check) { } // Utility to return true. -function ok$n() { +function ok$g() { return true } @@ -57416,7 +65496,7 @@ function ok$n() { * @param {string} d * @returns {string} */ -function color$n(d) { +function color$h(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -57429,15 +65509,15 @@ function color$n(d) { /** * Continue traversing as normal */ -const CONTINUE$m = true; +const CONTINUE$h = true; /** * Do not traverse this node’s children */ -const SKIP$m = 'skip'; +const SKIP$h = 'skip'; /** * Stop traversing immediately */ -const EXIT$m = false; +const EXIT$h = false; /** * Visit children of tree which pass a test @@ -57447,7 +65527,7 @@ const EXIT$m = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$m = +const visitParents$h = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -57469,7 +65549,7 @@ const visitParents$m = test = null; } - const is = convert$p(test); + const is = convert$h(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -57497,7 +65577,7 @@ const visitParents$m = Object.defineProperty(visit, 'name', { value: 'node (' + - color$n(value.type + (name ? '<' + name + '>' : '')) + + color$h(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -57515,15 +65595,15 @@ const visitParents$m = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$m(visitor(node, parents)); + result = toResult$g(visitor(node, parents)); - if (result[0] === EXIT$m) { + if (result[0] === EXIT$h) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$m) { + if (node.children && result[0] !== SKIP$h) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -57534,7 +65614,7 @@ const visitParents$m = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$m) { + if (subresult[0] === EXIT$h) { return subresult } @@ -57553,13 +65633,13 @@ const visitParents$m = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$m(value) { +function toResult$g(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$m, value] + return [CONTINUE$h, value] } return [value] @@ -57580,7 +65660,7 @@ function toResult$m(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$m = +const visit$g = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -57601,7 +65681,7 @@ const visit$m = test = null; } - visitParents$m(tree, test, overload, reverse); + visitParents$h(tree, test, overload, reverse); /** * @param {Node} node @@ -57632,14 +65712,14 @@ const visit$m = * @property {PositionLike} [position] */ -var pointStart$g = point$i('start'); +var pointStart$a = point$a('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$i(type) { +function point$a(type) { return point /** @@ -57703,13 +65783,13 @@ function point$i(type) { * [example-2]: http://example.com/two/ */ -const remarkLintFinalDefinition = lintRule$n( +const remarkLintFinalDefinition = lintRule$i( 'remark-lint:final-definition', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { let last = 0; - visit$m( + visit$g( tree, (node) => { // Ignore generated and HTML comment nodes. @@ -57721,7 +65801,7 @@ const remarkLintFinalDefinition = lintRule$n( return } - const line = pointStart$g(node).line; + const line = pointStart$a(node).line; if (node.type === 'definition') { if (last && last > line) { @@ -57741,92 +65821,6 @@ const remarkLintFinalDefinition = lintRule$n( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$p(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -57842,13 +65836,13 @@ function wrap$p(middleware, callback) { * @returns {void} */ -const primitives$o = new Set(['string', 'number', 'boolean']); +const primitives$h = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$o(id, rule) { +function lintRule$h(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -57861,7 +65855,7 @@ function lintRule$o(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$o(ruleId, raw); + const [severity, options] = coerce$i(ruleId, raw); if (!severity) return @@ -57870,7 +65864,7 @@ function lintRule$o(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$p(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -57900,7 +65894,7 @@ function lintRule$o(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$o(name, value) { +function coerce$i(name, value) { /** @type {unknown[]} */ let result; @@ -57912,7 +65906,7 @@ function coerce$o(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$o.has(typeof value[0]) + primitives$h.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -57965,7 +65959,7 @@ function coerce$o(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$q = +const convert$g = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -57985,19 +65979,19 @@ const convert$q = */ function (test) { if (test === undefined || test === null) { - return ok$o + return ok$f } if (typeof test === 'string') { - return typeFactory$n(test) + return typeFactory$f(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$n(test) : propsFactory$n(test) + return Array.isArray(test) ? anyFactory$f(test) : propsFactory$e(test) } if (typeof test === 'function') { - return castFactory$n(test) + return castFactory$e(test) } throw new Error('Expected function, string, or object as test') @@ -58007,16 +66001,16 @@ const convert$q = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$n(tests) { +function anyFactory$f(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$q(tests[index]); + checks[index] = convert$g(tests[index]); } - return castFactory$n(any) + return castFactory$e(any) /** * @this {unknown} @@ -58041,8 +66035,8 @@ function anyFactory$n(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$n(check) { - return castFactory$n(all) +function propsFactory$e(check) { + return castFactory$e(all) /** * @param {Node} node @@ -58068,8 +66062,8 @@ function propsFactory$n(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$n(check) { - return castFactory$n(type) +function typeFactory$f(check) { + return castFactory$e(type) /** * @param {Node} node @@ -58085,7 +66079,7 @@ function typeFactory$n(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$n(check) { +function castFactory$e(check) { return assertion /** @@ -58100,7 +66094,7 @@ function castFactory$n(check) { } // Utility to return true. -function ok$o() { +function ok$f() { return true } @@ -58108,7 +66102,7 @@ function ok$o() { * @param {string} d * @returns {string} */ -function color$o(d) { +function color$g(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -58121,15 +66115,15 @@ function color$o(d) { /** * Continue traversing as normal */ -const CONTINUE$n = true; +const CONTINUE$g = true; /** * Do not traverse this node’s children */ -const SKIP$n = 'skip'; +const SKIP$g = 'skip'; /** * Stop traversing immediately */ -const EXIT$n = false; +const EXIT$g = false; /** * Visit children of tree which pass a test @@ -58139,7 +66133,7 @@ const EXIT$n = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$n = +const visitParents$g = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -58161,7 +66155,7 @@ const visitParents$n = test = null; } - const is = convert$q(test); + const is = convert$g(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -58189,7 +66183,7 @@ const visitParents$n = Object.defineProperty(visit, 'name', { value: 'node (' + - color$o(value.type + (name ? '<' + name + '>' : '')) + + color$g(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -58207,15 +66201,15 @@ const visitParents$n = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$n(visitor(node, parents)); + result = toResult$f(visitor(node, parents)); - if (result[0] === EXIT$n) { + if (result[0] === EXIT$g) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$n) { + if (node.children && result[0] !== SKIP$g) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -58226,7 +66220,7 @@ const visitParents$n = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$n) { + if (subresult[0] === EXIT$g) { return subresult } @@ -58245,13 +66239,13 @@ const visitParents$n = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$n(value) { +function toResult$f(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$n, value] + return [CONTINUE$g, value] } return [value] @@ -58272,7 +66266,7 @@ function toResult$n(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$n = +const visit$f = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -58293,7 +66287,7 @@ const visit$n = test = null; } - visitParents$n(tree, test, overload, reverse); + visitParents$g(tree, test, overload, reverse); /** * @param {Node} node @@ -58402,13 +66396,13 @@ const visit$n = * 1:1-1:14: First heading level should be `2` */ -const re$1 = /} */ (tree, file, option = 1) => { - visit$n(tree, (node) => { + visit$f(tree, (node) => { if (!generated(node)) { /** @type {Depth|undefined} */ let rank; @@ -58424,7 +66418,7 @@ const remarkLintFirstHeadingLevel = lintRule$o( file.message('First heading level should be `' + option + '`', node); } - return EXIT$n + return EXIT$g } } }); @@ -58436,97 +66430,11 @@ const remarkLintFirstHeadingLevel = lintRule$o( * @returns {Depth|undefined} */ function infer(node) { - const results = node.value.match(re$1); + const results = node.value.match(re$3); // @ts-expect-error: can be castes fine. return results ? Number(results[1]) : undefined } -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$q(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -58542,13 +66450,13 @@ function wrap$q(middleware, callback) { * @returns {void} */ -const primitives$p = new Set(['string', 'number', 'boolean']); +const primitives$g = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$p(id, rule) { +function lintRule$g(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -58561,7 +66469,7 @@ function lintRule$p(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$p(ruleId, raw); + const [severity, options] = coerce$h(ruleId, raw); if (!severity) return @@ -58570,7 +66478,7 @@ function lintRule$p(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$q(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -58600,7 +66508,7 @@ function lintRule$p(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$p(name, value) { +function coerce$h(name, value) { /** @type {unknown[]} */ let result; @@ -58612,7 +66520,7 @@ function coerce$p(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$p.has(typeof value[0]) + primitives$g.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -58665,7 +66573,7 @@ function coerce$p(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$r = +const convert$f = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -58685,19 +66593,19 @@ const convert$r = */ function (test) { if (test === undefined || test === null) { - return ok$p + return ok$e } if (typeof test === 'string') { - return typeFactory$o(test) + return typeFactory$e(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$o(test) : propsFactory$o(test) + return Array.isArray(test) ? anyFactory$e(test) : propsFactory$d(test) } if (typeof test === 'function') { - return castFactory$o(test) + return castFactory$d(test) } throw new Error('Expected function, string, or object as test') @@ -58707,16 +66615,16 @@ const convert$r = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$o(tests) { +function anyFactory$e(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$r(tests[index]); + checks[index] = convert$f(tests[index]); } - return castFactory$o(any) + return castFactory$d(any) /** * @this {unknown} @@ -58741,8 +66649,8 @@ function anyFactory$o(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$o(check) { - return castFactory$o(all) +function propsFactory$d(check) { + return castFactory$d(all) /** * @param {Node} node @@ -58768,8 +66676,8 @@ function propsFactory$o(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$o(check) { - return castFactory$o(type) +function typeFactory$e(check) { + return castFactory$d(type) /** * @param {Node} node @@ -58785,7 +66693,7 @@ function typeFactory$o(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$o(check) { +function castFactory$d(check) { return assertion /** @@ -58800,7 +66708,7 @@ function castFactory$o(check) { } // Utility to return true. -function ok$p() { +function ok$e() { return true } @@ -58808,7 +66716,7 @@ function ok$p() { * @param {string} d * @returns {string} */ -function color$p(d) { +function color$f(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -58821,15 +66729,15 @@ function color$p(d) { /** * Continue traversing as normal */ -const CONTINUE$o = true; +const CONTINUE$f = true; /** * Do not traverse this node’s children */ -const SKIP$o = 'skip'; +const SKIP$f = 'skip'; /** * Stop traversing immediately */ -const EXIT$o = false; +const EXIT$f = false; /** * Visit children of tree which pass a test @@ -58839,7 +66747,7 @@ const EXIT$o = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$o = +const visitParents$f = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -58861,7 +66769,7 @@ const visitParents$o = test = null; } - const is = convert$r(test); + const is = convert$f(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -58889,7 +66797,7 @@ const visitParents$o = Object.defineProperty(visit, 'name', { value: 'node (' + - color$p(value.type + (name ? '<' + name + '>' : '')) + + color$f(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -58907,15 +66815,15 @@ const visitParents$o = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$o(visitor(node, parents)); + result = toResult$e(visitor(node, parents)); - if (result[0] === EXIT$o) { + if (result[0] === EXIT$f) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$o) { + if (node.children && result[0] !== SKIP$f) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -58926,7 +66834,7 @@ const visitParents$o = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$o) { + if (subresult[0] === EXIT$f) { return subresult } @@ -58945,13 +66853,13 @@ const visitParents$o = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$o(value) { +function toResult$e(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$o, value] + return [CONTINUE$f, value] } return [value] @@ -58972,7 +66880,7 @@ function toResult$o(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$o = +const visit$e = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -58993,7 +66901,7 @@ const visit$o = test = null; } - visitParents$o(tree, test, overload, reverse); + visitParents$f(tree, test, overload, reverse); /** * @param {Node} node @@ -59088,7 +66996,7 @@ const visit$o = * 1:1: Incorrect heading style type `💩`: use either `'consistent'`, `'atx'`, `'atx-closed'`, or `'setext'` */ -const remarkLintHeadingStyle = lintRule$p( +const remarkLintHeadingStyle = lintRule$g( 'remark-lint:heading-style', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { @@ -59105,7 +67013,7 @@ const remarkLintHeadingStyle = lintRule$p( ); } - visit$o(tree, 'heading', (node) => { + visit$e(tree, 'heading', (node) => { if (!generated(node)) { if (option === 'consistent') { // Funky nodes perhaps cannot be detected. @@ -59119,92 +67027,6 @@ const remarkLintHeadingStyle = lintRule$p( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$r(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -59220,13 +67042,13 @@ function wrap$r(middleware, callback) { * @returns {void} */ -const primitives$q = new Set(['string', 'number', 'boolean']); +const primitives$f = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$q(id, rule) { +function lintRule$f(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -59239,7 +67061,7 @@ function lintRule$q(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$q(ruleId, raw); + const [severity, options] = coerce$g(ruleId, raw); if (!severity) return @@ -59248,7 +67070,7 @@ function lintRule$q(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$r(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -59278,7 +67100,7 @@ function lintRule$q(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$q(name, value) { +function coerce$g(name, value) { /** @type {unknown[]} */ let result; @@ -59290,7 +67112,7 @@ function coerce$q(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$q.has(typeof value[0]) + primitives$f.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -59343,7 +67165,7 @@ function coerce$q(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$s = +const convert$e = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -59363,19 +67185,19 @@ const convert$s = */ function (test) { if (test === undefined || test === null) { - return ok$q + return ok$d } if (typeof test === 'string') { - return typeFactory$p(test) + return typeFactory$d(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$p(test) : propsFactory$p(test) + return Array.isArray(test) ? anyFactory$d(test) : propsFactory$c(test) } if (typeof test === 'function') { - return castFactory$p(test) + return castFactory$c(test) } throw new Error('Expected function, string, or object as test') @@ -59385,16 +67207,16 @@ const convert$s = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$p(tests) { +function anyFactory$d(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$s(tests[index]); + checks[index] = convert$e(tests[index]); } - return castFactory$p(any) + return castFactory$c(any) /** * @this {unknown} @@ -59419,8 +67241,8 @@ function anyFactory$p(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$p(check) { - return castFactory$p(all) +function propsFactory$c(check) { + return castFactory$c(all) /** * @param {Node} node @@ -59446,8 +67268,8 @@ function propsFactory$p(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$p(check) { - return castFactory$p(type) +function typeFactory$d(check) { + return castFactory$c(type) /** * @param {Node} node @@ -59463,7 +67285,7 @@ function typeFactory$p(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$p(check) { +function castFactory$c(check) { return assertion /** @@ -59478,7 +67300,7 @@ function castFactory$p(check) { } // Utility to return true. -function ok$q() { +function ok$d() { return true } @@ -59486,7 +67308,7 @@ function ok$q() { * @param {string} d * @returns {string} */ -function color$q(d) { +function color$e(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -59499,15 +67321,15 @@ function color$q(d) { /** * Continue traversing as normal */ -const CONTINUE$p = true; +const CONTINUE$e = true; /** * Do not traverse this node’s children */ -const SKIP$p = 'skip'; +const SKIP$e = 'skip'; /** * Stop traversing immediately */ -const EXIT$p = false; +const EXIT$e = false; /** * Visit children of tree which pass a test @@ -59517,7 +67339,7 @@ const EXIT$p = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$p = +const visitParents$e = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -59539,7 +67361,7 @@ const visitParents$p = test = null; } - const is = convert$s(test); + const is = convert$e(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -59567,7 +67389,7 @@ const visitParents$p = Object.defineProperty(visit, 'name', { value: 'node (' + - color$q(value.type + (name ? '<' + name + '>' : '')) + + color$e(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -59585,15 +67407,15 @@ const visitParents$p = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$p(visitor(node, parents)); + result = toResult$d(visitor(node, parents)); - if (result[0] === EXIT$p) { + if (result[0] === EXIT$e) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$p) { + if (node.children && result[0] !== SKIP$e) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -59604,7 +67426,7 @@ const visitParents$p = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$p) { + if (subresult[0] === EXIT$e) { return subresult } @@ -59623,13 +67445,13 @@ const visitParents$p = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$p(value) { +function toResult$d(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$p, value] + return [CONTINUE$e, value] } return [value] @@ -59650,7 +67472,7 @@ function toResult$p(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$p = +const visit$d = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -59671,7 +67493,7 @@ const visit$p = test = null; } - visitParents$p(tree, test, overload, reverse); + visitParents$e(tree, test, overload, reverse); /** * @param {Node} node @@ -59702,15 +67524,15 @@ const visit$p = * @property {PositionLike} [position] */ -var pointStart$h = point$j('start'); -var pointEnd$9 = point$j('end'); +var pointStart$9 = point$9('start'); +var pointEnd$5 = point$9('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$j(type) { +function point$9(type) { return point /** @@ -59830,14 +67652,14 @@ function point$j(type) { * 4:12: Line must be at most 10 characters */ -const remarkLintMaximumLineLength = lintRule$q( +const remarkLintMaximumLineLength = lintRule$f( 'remark-lint:maximum-line-length', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 80) => { const value = String(file); const lines = value.split(/\r?\n/); - visit$p(tree, (node) => { + visit$d(tree, (node) => { if ( (node.type === 'heading' || node.type === 'table' || @@ -59851,7 +67673,7 @@ const remarkLintMaximumLineLength = lintRule$q( node.type === 'toml') && !generated(node) ) { - allowList(pointStart$h(node).line - 1, pointEnd$9(node).line); + allowList(pointStart$9(node).line - 1, pointEnd$5(node).line); } }); @@ -59859,7 +67681,7 @@ const remarkLintMaximumLineLength = lintRule$q( // the wrap. // However, when they do, and there’s whitespace after it, they are not // allowed. - visit$p(tree, (node, pos, parent_) => { + visit$d(tree, (node, pos, parent_) => { const parent = /** @type {Parent} */ (parent_); if ( @@ -59870,8 +67692,8 @@ const remarkLintMaximumLineLength = lintRule$q( parent && typeof pos === 'number' ) { - const initial = pointStart$h(node); - const final = pointEnd$9(node); + const initial = pointStart$9(node); + const final = pointEnd$5(node); // Not allowing when starting after the border, or ending before it. if (initial.column > option || final.column < option) { @@ -59883,7 +67705,7 @@ const remarkLintMaximumLineLength = lintRule$q( // Not allowing when there’s whitespace after the link. if ( next && - pointStart$h(next).line === initial.line && + pointStart$9(next).line === initial.line && (!('value' in next) || /^(.+?[ \t].+?)/.test(next.value)) ) { return @@ -59910,102 +67732,16 @@ const remarkLintMaximumLineLength = lintRule$q( /** * Allowlist from `initial` to `final`, zero-based. * - * @param {number} initial - * @param {number} final - */ - function allowList(initial, final) { - while (initial < final) { - lines[initial++] = ''; - } - } - } -); - -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$s(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); + * @param {number} initial + * @param {number} final + */ + function allowList(initial, final) { + while (initial < final) { + lines[initial++] = ''; + } } } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} +); /** * @typedef {import('unist').Node} Node @@ -60022,13 +67758,13 @@ function wrap$s(middleware, callback) { * @returns {void} */ -const primitives$r = new Set(['string', 'number', 'boolean']); +const primitives$e = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$r(id, rule) { +function lintRule$e(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -60041,7 +67777,7 @@ function lintRule$r(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$r(ruleId, raw); + const [severity, options] = coerce$f(ruleId, raw); if (!severity) return @@ -60050,7 +67786,7 @@ function lintRule$r(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$s(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -60080,7 +67816,7 @@ function lintRule$r(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$r(name, value) { +function coerce$f(name, value) { /** @type {unknown[]} */ let result; @@ -60092,7 +67828,7 @@ function coerce$r(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$r.has(typeof value[0]) + primitives$e.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -60145,7 +67881,7 @@ function coerce$r(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$t = +const convert$d = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -60165,19 +67901,19 @@ const convert$t = */ function (test) { if (test === undefined || test === null) { - return ok$r + return ok$c } if (typeof test === 'string') { - return typeFactory$q(test) + return typeFactory$c(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$q(test) : propsFactory$q(test) + return Array.isArray(test) ? anyFactory$c(test) : propsFactory$b(test) } if (typeof test === 'function') { - return castFactory$q(test) + return castFactory$b(test) } throw new Error('Expected function, string, or object as test') @@ -60187,16 +67923,16 @@ const convert$t = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$q(tests) { +function anyFactory$c(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$t(tests[index]); + checks[index] = convert$d(tests[index]); } - return castFactory$q(any) + return castFactory$b(any) /** * @this {unknown} @@ -60221,8 +67957,8 @@ function anyFactory$q(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$q(check) { - return castFactory$q(all) +function propsFactory$b(check) { + return castFactory$b(all) /** * @param {Node} node @@ -60248,8 +67984,8 @@ function propsFactory$q(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$q(check) { - return castFactory$q(type) +function typeFactory$c(check) { + return castFactory$b(type) /** * @param {Node} node @@ -60265,7 +68001,7 @@ function typeFactory$q(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$q(check) { +function castFactory$b(check) { return assertion /** @@ -60280,7 +68016,7 @@ function castFactory$q(check) { } // Utility to return true. -function ok$r() { +function ok$c() { return true } @@ -60288,7 +68024,7 @@ function ok$r() { * @param {string} d * @returns {string} */ -function color$r(d) { +function color$d(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -60301,15 +68037,15 @@ function color$r(d) { /** * Continue traversing as normal */ -const CONTINUE$q = true; +const CONTINUE$d = true; /** * Do not traverse this node’s children */ -const SKIP$q = 'skip'; +const SKIP$d = 'skip'; /** * Stop traversing immediately */ -const EXIT$q = false; +const EXIT$d = false; /** * Visit children of tree which pass a test @@ -60319,7 +68055,7 @@ const EXIT$q = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$q = +const visitParents$d = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -60341,7 +68077,7 @@ const visitParents$q = test = null; } - const is = convert$t(test); + const is = convert$d(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -60369,7 +68105,7 @@ const visitParents$q = Object.defineProperty(visit, 'name', { value: 'node (' + - color$r(value.type + (name ? '<' + name + '>' : '')) + + color$d(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -60387,15 +68123,15 @@ const visitParents$q = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$q(visitor(node, parents)); + result = toResult$c(visitor(node, parents)); - if (result[0] === EXIT$q) { + if (result[0] === EXIT$d) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$q) { + if (node.children && result[0] !== SKIP$d) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -60406,7 +68142,7 @@ const visitParents$q = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$q) { + if (subresult[0] === EXIT$d) { return subresult } @@ -60425,13 +68161,13 @@ const visitParents$q = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$q(value) { +function toResult$c(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$q, value] + return [CONTINUE$d, value] } return [value] @@ -60452,7 +68188,7 @@ function toResult$q(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$q = +const visit$c = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -60473,7 +68209,7 @@ const visit$q = test = null; } - visitParents$q(tree, test, overload, reverse); + visitParents$d(tree, test, overload, reverse); /** * @param {Node} node @@ -60504,15 +68240,15 @@ const visit$q = * @property {PositionLike} [position] */ -var pointStart$i = point$k('start'); -var pointEnd$a = point$k('end'); +var pointStart$8 = point$8('start'); +var pointEnd$4 = point$8('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$k(type) { +function point$8(type) { return point /** @@ -60580,17 +68316,17 @@ function point$k(type) { * 4:5: Remove 2 lines after node */ -const remarkLintNoConsecutiveBlankLines = lintRule$r( +const remarkLintNoConsecutiveBlankLines = lintRule$e( 'remark-lint:no-consecutive-blank-lines', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - visit$q(tree, (node) => { + visit$c(tree, (node) => { if (!generated(node) && 'children' in node) { const head = node.children[0]; if (head && !generated(head)) { // Compare parent and first child. - compare(pointStart$i(node), pointStart$i(head), 0); + compare(pointStart$8(node), pointStart$8(head), 0); // Compare between each child. let index = -1; @@ -60600,7 +68336,7 @@ const remarkLintNoConsecutiveBlankLines = lintRule$r( const child = node.children[index]; if (previous && !generated(previous) && !generated(child)) { - compare(pointEnd$a(previous), pointStart$i(child), 2); + compare(pointEnd$4(previous), pointStart$8(child), 2); } } @@ -60608,7 +68344,7 @@ const remarkLintNoConsecutiveBlankLines = lintRule$r( // Compare parent and last child. if (tail !== head && !generated(tail)) { - compare(pointEnd$a(node), pointEnd$a(tail), 1); + compare(pointEnd$4(node), pointEnd$4(tail), 1); } } } @@ -60631,7 +68367,7 @@ const remarkLintNoConsecutiveBlankLines = lintRule$r( 'Remove ' + lines + ' ' + - pluralize('line', Math.abs(lines)) + + plural('line', Math.abs(lines)) + ' ' + (diff > 0 ? 'before' : 'after') + ' node', @@ -60642,92 +68378,6 @@ const remarkLintNoConsecutiveBlankLines = lintRule$r( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$t(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -60743,13 +68393,13 @@ function wrap$t(middleware, callback) { * @returns {void} */ -const primitives$s = new Set(['string', 'number', 'boolean']); +const primitives$d = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$s(id, rule) { +function lintRule$d(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -60762,7 +68412,7 @@ function lintRule$s(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$s(ruleId, raw); + const [severity, options] = coerce$e(ruleId, raw); if (!severity) return @@ -60771,7 +68421,7 @@ function lintRule$s(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$t(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -60801,7 +68451,7 @@ function lintRule$s(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$s(name, value) { +function coerce$e(name, value) { /** @type {unknown[]} */ let result; @@ -60813,7 +68463,7 @@ function coerce$s(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$s.has(typeof value[0]) + primitives$d.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -60888,7 +68538,7 @@ function coerce$s(name, value) { * 1:1: Do not start file names with `an` */ -const remarkLintNoFileNameArticles = lintRule$s( +const remarkLintNoFileNameArticles = lintRule$d( 'remark-lint:no-file-name-articles', /** @type {import('unified-lint-rule').Rule} */ (_, file) => { @@ -60900,333 +68550,6 @@ const remarkLintNoFileNameArticles = lintRule$s( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$u(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - -/** - * @typedef {import('unist').Node} Node - * @typedef {import('vfile').VFile} VFile - * - * @typedef {0|1|2} Severity - * @typedef {'warn'|'on'|'off'|'error'} Label - * @typedef {[Severity, ...unknown[]]} SeverityTuple - * - * @callback Rule - * @param {Node} tree - * @param {VFile} file - * @param {unknown} options - * @returns {void} - */ - -const primitives$t = new Set(['string', 'number', 'boolean']); - -/** - * @param {string} id - * @param {Rule} rule - */ -function lintRule$t(id, rule) { - const parts = id.split(':'); - // Possibly useful if externalised later. - /* c8 ignore next */ - const source = parts[1] ? parts[0] : undefined; - const ruleId = parts[1]; - - Object.defineProperty(plugin, 'name', {value: id}); - - return plugin - - /** @type {import('unified').Plugin<[unknown]|void[]>} */ - function plugin(raw) { - const [severity, options] = coerce$t(ruleId, raw); - - if (!severity) return - - const fatal = severity === 2; - - return (tree, file, next) => { - let index = file.messages.length - 1; - - wrap$u(rule, (error) => { - const messages = file.messages; - - // Add the error, if not already properly added. - // Only happens for incorrect plugins. - /* c8 ignore next 6 */ - // @ts-expect-error: errors could be `messages`. - if (error && !messages.includes(error)) { - try { - file.fail(error); - } catch {} - } - - while (++index < messages.length) { - Object.assign(messages[index], {ruleId, source, fatal}); - } - - next(); - })(tree, file, options); - } - } -} - -/** - * Coerce a value to a severity--options tuple. - * - * @param {string} name - * @param {unknown} value - * @returns {SeverityTuple} - */ -function coerce$t(name, value) { - /** @type {unknown[]} */ - let result; - - if (typeof value === 'boolean') { - result = [value]; - } else if (value === null || value === undefined) { - result = [1]; - } else if ( - Array.isArray(value) && - // `isArray(unknown)` is turned into `any[]`: - // type-coverage:ignore-next-line - primitives$t.has(typeof value[0]) - ) { - // `isArray(unknown)` is turned into `any[]`: - // type-coverage:ignore-next-line - 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]; - } - } - - if (typeof level !== 'number' || level < 0 || level > 2) { - throw new Error( - 'Incorrect severity `' + - level + - '` for `' + - name + - '`, ' + - 'expected 0, 1, or 2' - ) - } - - result[0] = level; - - // @ts-expect-error: it’s now a valid tuple. - return result -} - -/** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-file-name-consecutive-dashes - * @fileoverview - * Warn when file names contain consecutive dashes. - * - * @example - * {"name": "plug-ins.md"} - * - * @example - * {"name": "plug--ins.md", "label": "output", "positionless": true} - * - * 1:1: Do not use consecutive dashes in a file name - */ - -const remarkLintNoFileNameConsecutiveDashes = lintRule$t( - 'remark-lint:no-file-name-consecutive-dashes', - /** @type {import('unified-lint-rule').Rule} */ - (_, file) => { - if (file.stem && /-{2,}/.test(file.stem)) { - file.message('Do not use consecutive dashes in a file name'); - } - } -); - -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$v(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -61242,13 +68565,13 @@ function wrap$v(middleware, callback) { * @returns {void} */ -const primitives$u = new Set(['string', 'number', 'boolean']); +const primitives$c = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$u(id, rule) { +function lintRule$c(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -61261,7 +68584,7 @@ function lintRule$u(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$u(ruleId, raw); + const [severity, options] = coerce$d(ruleId, raw); if (!severity) return @@ -61270,7 +68593,7 @@ function lintRule$u(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$v(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -61300,7 +68623,7 @@ function lintRule$u(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$u(name, value) { +function coerce$d(name, value) { /** @type {unknown[]} */ let result; @@ -61312,7 +68635,7 @@ function coerce$u(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$u.has(typeof value[0]) + primitives$c.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -61359,120 +68682,189 @@ function coerce$u(name, value) { * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-file-name-outer-dashes + * @module no-file-name-consecutive-dashes * @fileoverview - * Warn when file names contain initial or final dashes (hyphen-minus, `-`). - * - * @example - * {"name": "readme.md"} + * Warn when file names contain consecutive dashes. * * @example - * {"name": "-readme.md", "label": "output", "positionless": true} - * - * 1:1: Do not use initial or final dashes in a file name + * {"name": "plug-ins.md"} * * @example - * {"name": "readme-.md", "label": "output", "positionless": true} + * {"name": "plug--ins.md", "label": "output", "positionless": true} * - * 1:1: Do not use initial or final dashes in a file name + * 1:1: Do not use consecutive dashes in a file name */ -const remarkLintNofileNameOuterDashes = lintRule$u( - 'remark-lint:no-file-name-outer-dashes', +const remarkLintNoFileNameConsecutiveDashes = lintRule$c( + 'remark-lint:no-file-name-consecutive-dashes', /** @type {import('unified-lint-rule').Rule} */ (_, file) => { - if (file.stem && /^-|-$/.test(file.stem)) { - file.message('Do not use initial or final dashes in a file name'); + if (file.stem && /-{2,}/.test(file.stem)) { + file.message('Do not use consecutive dashes in a file name'); } } ); /** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple + * + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} */ +const primitives$b = new Set(['string', 'number', 'boolean']); + /** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback + * @param {string} id + * @param {Rule} rule */ -function wrap$w(middleware, callback) { - /** @type {boolean} */ - let called; +function lintRule$b(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; - return wrapped + Object.defineProperty(plugin, 'name', {value: id}); - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; + return plugin - if (fnExpectsCallback) { - parameters.push(done); - } + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$c(ruleId, raw); - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; + if (!severity) return - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } + const fatal = severity === 2; - return done(exception) - } + return (tree, file, next) => { + let index = file.messages.length - 1; - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } + wrap(rule, (error) => { + const messages = file.messages; + + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} + } + + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); + } + + next(); + })(tree, file, options); } } +} - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$c(name, value) { + /** @type {unknown[]} */ + let result; + + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$b.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + 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]; } } - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) } + + result[0] = level; + + // @ts-expect-error: it’s now a valid tuple. + return result } +/** + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT + * @module no-file-name-outer-dashes + * @fileoverview + * Warn when file names contain initial or final dashes (hyphen-minus, `-`). + * + * @example + * {"name": "readme.md"} + * + * @example + * {"name": "-readme.md", "label": "output", "positionless": true} + * + * 1:1: Do not use initial or final dashes in a file name + * + * @example + * {"name": "readme-.md", "label": "output", "positionless": true} + * + * 1:1: Do not use initial or final dashes in a file name + */ + +const remarkLintNofileNameOuterDashes = lintRule$b( + 'remark-lint:no-file-name-outer-dashes', + /** @type {import('unified-lint-rule').Rule} */ + (_, file) => { + if (file.stem && /^-|-$/.test(file.stem)) { + file.message('Do not use initial or final dashes in a file name'); + } + } +); + /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -61488,13 +68880,13 @@ function wrap$w(middleware, callback) { * @returns {void} */ -const primitives$v = new Set(['string', 'number', 'boolean']); +const primitives$a = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$v(id, rule) { +function lintRule$a(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -61507,7 +68899,7 @@ function lintRule$v(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$v(ruleId, raw); + const [severity, options] = coerce$b(ruleId, raw); if (!severity) return @@ -61516,7 +68908,7 @@ function lintRule$v(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$w(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -61546,7 +68938,7 @@ function lintRule$v(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$v(name, value) { +function coerce$b(name, value) { /** @type {unknown[]} */ let result; @@ -61558,7 +68950,7 @@ function coerce$v(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$v.has(typeof value[0]) + primitives$a.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -61611,7 +69003,7 @@ function coerce$v(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$u = +const convert$c = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -61631,19 +69023,19 @@ const convert$u = */ function (test) { if (test === undefined || test === null) { - return ok$s + return ok$b } if (typeof test === 'string') { - return typeFactory$r(test) + return typeFactory$b(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$r(test) : propsFactory$r(test) + return Array.isArray(test) ? anyFactory$b(test) : propsFactory$a(test) } if (typeof test === 'function') { - return castFactory$r(test) + return castFactory$a(test) } throw new Error('Expected function, string, or object as test') @@ -61653,16 +69045,16 @@ const convert$u = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$r(tests) { +function anyFactory$b(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$u(tests[index]); + checks[index] = convert$c(tests[index]); } - return castFactory$r(any) + return castFactory$a(any) /** * @this {unknown} @@ -61687,8 +69079,8 @@ function anyFactory$r(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$r(check) { - return castFactory$r(all) +function propsFactory$a(check) { + return castFactory$a(all) /** * @param {Node} node @@ -61714,8 +69106,8 @@ function propsFactory$r(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$r(check) { - return castFactory$r(type) +function typeFactory$b(check) { + return castFactory$a(type) /** * @param {Node} node @@ -61731,7 +69123,7 @@ function typeFactory$r(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$r(check) { +function castFactory$a(check) { return assertion /** @@ -61746,7 +69138,7 @@ function castFactory$r(check) { } // Utility to return true. -function ok$s() { +function ok$b() { return true } @@ -61754,7 +69146,7 @@ function ok$s() { * @param {string} d * @returns {string} */ -function color$s(d) { +function color$c(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -61767,15 +69159,15 @@ function color$s(d) { /** * Continue traversing as normal */ -const CONTINUE$r = true; +const CONTINUE$c = true; /** * Do not traverse this node’s children */ -const SKIP$r = 'skip'; +const SKIP$c = 'skip'; /** * Stop traversing immediately */ -const EXIT$r = false; +const EXIT$c = false; /** * Visit children of tree which pass a test @@ -61785,7 +69177,7 @@ const EXIT$r = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$r = +const visitParents$c = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -61807,7 +69199,7 @@ const visitParents$r = test = null; } - const is = convert$u(test); + const is = convert$c(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -61835,7 +69227,7 @@ const visitParents$r = Object.defineProperty(visit, 'name', { value: 'node (' + - color$s(value.type + (name ? '<' + name + '>' : '')) + + color$c(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -61853,15 +69245,15 @@ const visitParents$r = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$r(visitor(node, parents)); + result = toResult$b(visitor(node, parents)); - if (result[0] === EXIT$r) { + if (result[0] === EXIT$c) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$r) { + if (node.children && result[0] !== SKIP$c) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -61872,7 +69264,7 @@ const visitParents$r = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$r) { + if (subresult[0] === EXIT$c) { return subresult } @@ -61891,13 +69283,13 @@ const visitParents$r = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$r(value) { +function toResult$b(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$r, value] + return [CONTINUE$c, value] } return [value] @@ -61918,7 +69310,7 @@ function toResult$r(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$r = +const visit$b = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -61939,7 +69331,7 @@ const visit$r = test = null; } - visitParents$r(tree, test, overload, reverse); + visitParents$c(tree, test, overload, reverse); /** * @param {Node} node @@ -61970,14 +69362,14 @@ const visit$r = * @property {PositionLike} [position] */ -var pointStart$j = point$l('start'); +var pointStart$7 = point$7('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$l(type) { +function point$7(type) { return point /** @@ -62050,119 +69442,33 @@ function point$l(type) { * 8:4: Remove 3 spaces before this heading */ -const remarkLintNoHeadingIndent = lintRule$v( +const remarkLintNoHeadingIndent = lintRule$a( 'remark-lint:no-heading-indent', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - visit$r(tree, 'heading', (node, _, parent) => { + visit$b(tree, 'heading', (node, _, parent) => { // Note: it’s rather complex to detect what the expected indent is in block // quotes and lists, so let’s only do directly in root for now. if (generated(node) || (parent && parent.type !== 'root')) { return } - const diff = pointStart$j(node).column - 1; + const diff = pointStart$7(node).column - 1; if (diff) { file.message( 'Remove ' + diff + ' ' + - pluralize('space', diff) + + plural('space', diff) + ' before this heading', - pointStart$j(node) + pointStart$7(node) ); } }); } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$x(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -62178,13 +69484,13 @@ function wrap$x(middleware, callback) { * @returns {void} */ -const primitives$w = new Set(['string', 'number', 'boolean']); +const primitives$9 = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$w(id, rule) { +function lintRule$9(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -62197,7 +69503,7 @@ function lintRule$w(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$w(ruleId, raw); + const [severity, options] = coerce$a(ruleId, raw); if (!severity) return @@ -62206,7 +69512,7 @@ function lintRule$w(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$x(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -62236,7 +69542,7 @@ function lintRule$w(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$w(name, value) { +function coerce$a(name, value) { /** @type {unknown[]} */ let result; @@ -62248,7 +69554,7 @@ function coerce$w(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$w.has(typeof value[0]) + primitives$9.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -62301,7 +69607,7 @@ function coerce$w(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$v = +const convert$b = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -62321,19 +69627,19 @@ const convert$v = */ function (test) { if (test === undefined || test === null) { - return ok$t + return ok$a } if (typeof test === 'string') { - return typeFactory$s(test) + return typeFactory$a(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$s(test) : propsFactory$s(test) + return Array.isArray(test) ? anyFactory$a(test) : propsFactory$9(test) } if (typeof test === 'function') { - return castFactory$s(test) + return castFactory$9(test) } throw new Error('Expected function, string, or object as test') @@ -62343,16 +69649,16 @@ const convert$v = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$s(tests) { +function anyFactory$a(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$v(tests[index]); + checks[index] = convert$b(tests[index]); } - return castFactory$s(any) + return castFactory$9(any) /** * @this {unknown} @@ -62377,8 +69683,8 @@ function anyFactory$s(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$s(check) { - return castFactory$s(all) +function propsFactory$9(check) { + return castFactory$9(all) /** * @param {Node} node @@ -62404,8 +69710,8 @@ function propsFactory$s(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$s(check) { - return castFactory$s(type) +function typeFactory$a(check) { + return castFactory$9(type) /** * @param {Node} node @@ -62421,7 +69727,7 @@ function typeFactory$s(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$s(check) { +function castFactory$9(check) { return assertion /** @@ -62436,7 +69742,7 @@ function castFactory$s(check) { } // Utility to return true. -function ok$t() { +function ok$a() { return true } @@ -62444,7 +69750,7 @@ function ok$t() { * @param {string} d * @returns {string} */ -function color$t(d) { +function color$b(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -62457,15 +69763,15 @@ function color$t(d) { /** * Continue traversing as normal */ -const CONTINUE$s = true; +const CONTINUE$b = true; /** * Do not traverse this node’s children */ -const SKIP$s = 'skip'; +const SKIP$b = 'skip'; /** * Stop traversing immediately */ -const EXIT$s = false; +const EXIT$b = false; /** * Visit children of tree which pass a test @@ -62475,7 +69781,7 @@ const EXIT$s = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$s = +const visitParents$b = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -62497,7 +69803,7 @@ const visitParents$s = test = null; } - const is = convert$v(test); + const is = convert$b(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -62525,7 +69831,7 @@ const visitParents$s = Object.defineProperty(visit, 'name', { value: 'node (' + - color$t(value.type + (name ? '<' + name + '>' : '')) + + color$b(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -62543,15 +69849,15 @@ const visitParents$s = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$s(visitor(node, parents)); + result = toResult$a(visitor(node, parents)); - if (result[0] === EXIT$s) { + if (result[0] === EXIT$b) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$s) { + if (node.children && result[0] !== SKIP$b) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -62562,7 +69868,7 @@ const visitParents$s = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$s) { + if (subresult[0] === EXIT$b) { return subresult } @@ -62581,13 +69887,13 @@ const visitParents$s = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$s(value) { +function toResult$a(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$s, value] + return [CONTINUE$b, value] } return [value] @@ -62608,7 +69914,7 @@ function toResult$s(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$s = +const visit$a = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -62629,7 +69935,7 @@ const visit$s = test = null; } - visitParents$s(tree, test, overload, reverse); + visitParents$b(tree, test, overload, reverse); /** * @param {Node} node @@ -62660,14 +69966,14 @@ const visit$s = * @property {PositionLike} [position] */ -var pointStart$k = point$m('start'); +var pointStart$6 = point$6('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$m(type) { +function point$6(type) { return point /** @@ -62689,73 +69995,6 @@ function point$m(type) { } } -var own$9 = {}.hasOwnProperty; - -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Position} Position - * @typedef {import('unist').Point} Point - */ - -/** - * Stringify one point, a position (start and end points), or a node’s - * positional information. - * - * @param {Node|Position|Point} [value] - * @returns {string} - */ -function stringifyPosition$1(value) { - // Nothing. - if (!value || typeof value !== 'object') { - return '' - } - - // Node. - if (own$9.call(value, 'position') || own$9.call(value, 'type')) { - // @ts-ignore looks like a node. - return position$2(value.position) - } - - // Position. - if (own$9.call(value, 'start') || own$9.call(value, 'end')) { - // @ts-ignore looks like a position. - return position$2(value) - } - - // Point. - if (own$9.call(value, 'line') || own$9.call(value, 'column')) { - // @ts-ignore looks like a point. - return point$n(value) - } - - // ? - return '' -} - -/** - * @param {Point} point - * @returns {string} - */ -function point$n(point) { - return index$2(point && point.line) + ':' + index$2(point && point.column) -} - -/** - * @param {Position} pos - * @returns {string} - */ -function position$2(pos) { - return point$n(pos && pos.start) + '-' + point$n(pos && pos.end) -} - -/** - * @param {number} value - * @returns {number} - */ -function index$2(value) { - return value && typeof value === 'number' ? value : 1 -} - /** * @author Titus Wormer * @copyright 2015 Titus Wormer @@ -62786,14 +70025,14 @@ function index$2(value) { * 3:1-3:6: Don’t use multiple top level headings (1:1) */ -const remarkLintNoMultipleToplevelHeadings = lintRule$w( +const remarkLintNoMultipleToplevelHeadings = lintRule$9( 'remark-lint:no-multiple-toplevel-headings', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 1) => { /** @type {string|undefined} */ let duplicate; - visit$s(tree, 'heading', (node) => { + visit$a(tree, 'heading', (node) => { if (!generated(node) && node.depth === option) { if (duplicate) { file.message( @@ -62801,99 +70040,13 @@ const remarkLintNoMultipleToplevelHeadings = lintRule$w( node ); } else { - duplicate = stringifyPosition$1(pointStart$k(node)); + duplicate = stringifyPosition(pointStart$6(node)); } } }); } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$y(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -62909,13 +70062,13 @@ function wrap$y(middleware, callback) { * @returns {void} */ -const primitives$x = new Set(['string', 'number', 'boolean']); +const primitives$8 = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$x(id, rule) { +function lintRule$8(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -62928,7 +70081,7 @@ function lintRule$x(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$x(ruleId, raw); + const [severity, options] = coerce$9(ruleId, raw); if (!severity) return @@ -62937,7 +70090,7 @@ function lintRule$x(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$y(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -62967,7 +70120,7 @@ function lintRule$x(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$x(name, value) { +function coerce$9(name, value) { /** @type {unknown[]} */ let result; @@ -62979,7 +70132,7 @@ function coerce$x(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$x.has(typeof value[0]) + primitives$8.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -63032,7 +70185,7 @@ function coerce$x(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$w = +const convert$a = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -63052,19 +70205,19 @@ const convert$w = */ function (test) { if (test === undefined || test === null) { - return ok$u + return ok$9 } if (typeof test === 'string') { - return typeFactory$t(test) + return typeFactory$9(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$t(test) : propsFactory$t(test) + return Array.isArray(test) ? anyFactory$9(test) : propsFactory$8(test) } if (typeof test === 'function') { - return castFactory$t(test) + return castFactory$8(test) } throw new Error('Expected function, string, or object as test') @@ -63074,16 +70227,16 @@ const convert$w = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$t(tests) { +function anyFactory$9(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$w(tests[index]); + checks[index] = convert$a(tests[index]); } - return castFactory$t(any) + return castFactory$8(any) /** * @this {unknown} @@ -63108,8 +70261,8 @@ function anyFactory$t(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$t(check) { - return castFactory$t(all) +function propsFactory$8(check) { + return castFactory$8(all) /** * @param {Node} node @@ -63135,8 +70288,8 @@ function propsFactory$t(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$t(check) { - return castFactory$t(type) +function typeFactory$9(check) { + return castFactory$8(type) /** * @param {Node} node @@ -63152,7 +70305,7 @@ function typeFactory$t(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$t(check) { +function castFactory$8(check) { return assertion /** @@ -63167,7 +70320,7 @@ function castFactory$t(check) { } // Utility to return true. -function ok$u() { +function ok$9() { return true } @@ -63175,7 +70328,7 @@ function ok$u() { * @param {string} d * @returns {string} */ -function color$u(d) { +function color$a(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -63188,15 +70341,15 @@ function color$u(d) { /** * Continue traversing as normal */ -const CONTINUE$t = true; +const CONTINUE$a = true; /** * Do not traverse this node’s children */ -const SKIP$t = 'skip'; +const SKIP$a = 'skip'; /** * Stop traversing immediately */ -const EXIT$t = false; +const EXIT$a = false; /** * Visit children of tree which pass a test @@ -63206,7 +70359,7 @@ const EXIT$t = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$t = +const visitParents$a = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -63228,7 +70381,7 @@ const visitParents$t = test = null; } - const is = convert$w(test); + const is = convert$a(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -63256,7 +70409,7 @@ const visitParents$t = Object.defineProperty(visit, 'name', { value: 'node (' + - color$u(value.type + (name ? '<' + name + '>' : '')) + + color$a(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -63274,15 +70427,15 @@ const visitParents$t = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$t(visitor(node, parents)); + result = toResult$9(visitor(node, parents)); - if (result[0] === EXIT$t) { + if (result[0] === EXIT$a) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$t) { + if (node.children && result[0] !== SKIP$a) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -63293,7 +70446,7 @@ const visitParents$t = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$t) { + if (subresult[0] === EXIT$a) { return subresult } @@ -63312,13 +70465,13 @@ const visitParents$t = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$t(value) { +function toResult$9(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$t, value] + return [CONTINUE$a, value] } return [value] @@ -63339,7 +70492,7 @@ function toResult$t(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$t = +const visit$9 = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -63360,7 +70513,7 @@ const visit$t = test = null; } - visitParents$t(tree, test, overload, reverse); + visitParents$a(tree, test, overload, reverse); /** * @param {Node} node @@ -63451,11 +70604,11 @@ const flags = new Set([ 'zsh' ]); -const remarkLintNoShellDollars = lintRule$x( +const remarkLintNoShellDollars = lintRule$8( 'remark-lint:no-shell-dollars', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - visit$t(tree, 'code', (node) => { + visit$9(tree, 'code', (node) => { // Check both known shell code and unknown code. if (!generated(node) && node.lang && flags.has(node.lang)) { const lines = node.value @@ -63481,92 +70634,6 @@ const remarkLintNoShellDollars = lintRule$x( } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$z(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -63582,13 +70649,13 @@ function wrap$z(middleware, callback) { * @returns {void} */ -const primitives$y = new Set(['string', 'number', 'boolean']); +const primitives$7 = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$y(id, rule) { +function lintRule$7(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -63601,7 +70668,7 @@ function lintRule$y(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$y(ruleId, raw); + const [severity, options] = coerce$8(ruleId, raw); if (!severity) return @@ -63610,7 +70677,7 @@ function lintRule$y(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$z(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -63640,7 +70707,7 @@ function lintRule$y(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$y(name, value) { +function coerce$8(name, value) { /** @type {unknown[]} */ let result; @@ -63652,7 +70719,7 @@ function coerce$y(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$y.has(typeof value[0]) + primitives$7.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -63705,7 +70772,7 @@ function coerce$y(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$x = +const convert$9 = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -63725,19 +70792,19 @@ const convert$x = */ function (test) { if (test === undefined || test === null) { - return ok$v + return ok$8 } if (typeof test === 'string') { - return typeFactory$u(test) + return typeFactory$8(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$u(test) : propsFactory$u(test) + return Array.isArray(test) ? anyFactory$8(test) : propsFactory$7(test) } if (typeof test === 'function') { - return castFactory$u(test) + return castFactory$7(test) } throw new Error('Expected function, string, or object as test') @@ -63747,16 +70814,16 @@ const convert$x = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$u(tests) { +function anyFactory$8(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$x(tests[index]); + checks[index] = convert$9(tests[index]); } - return castFactory$u(any) + return castFactory$7(any) /** * @this {unknown} @@ -63781,8 +70848,8 @@ function anyFactory$u(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$u(check) { - return castFactory$u(all) +function propsFactory$7(check) { + return castFactory$7(all) /** * @param {Node} node @@ -63808,8 +70875,8 @@ function propsFactory$u(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$u(check) { - return castFactory$u(type) +function typeFactory$8(check) { + return castFactory$7(type) /** * @param {Node} node @@ -63825,7 +70892,7 @@ function typeFactory$u(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$u(check) { +function castFactory$7(check) { return assertion /** @@ -63840,7 +70907,7 @@ function castFactory$u(check) { } // Utility to return true. -function ok$v() { +function ok$8() { return true } @@ -63848,7 +70915,7 @@ function ok$v() { * @param {string} d * @returns {string} */ -function color$v(d) { +function color$9(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -63861,15 +70928,15 @@ function color$v(d) { /** * Continue traversing as normal */ -const CONTINUE$u = true; +const CONTINUE$9 = true; /** * Do not traverse this node’s children */ -const SKIP$u = 'skip'; +const SKIP$9 = 'skip'; /** * Stop traversing immediately */ -const EXIT$u = false; +const EXIT$9 = false; /** * Visit children of tree which pass a test @@ -63879,7 +70946,7 @@ const EXIT$u = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$u = +const visitParents$9 = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -63901,7 +70968,7 @@ const visitParents$u = test = null; } - const is = convert$x(test); + const is = convert$9(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -63929,7 +70996,7 @@ const visitParents$u = Object.defineProperty(visit, 'name', { value: 'node (' + - color$v(value.type + (name ? '<' + name + '>' : '')) + + color$9(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -63947,15 +71014,15 @@ const visitParents$u = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$u(visitor(node, parents)); + result = toResult$8(visitor(node, parents)); - if (result[0] === EXIT$u) { + if (result[0] === EXIT$9) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$u) { + if (node.children && result[0] !== SKIP$9) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -63966,7 +71033,7 @@ const visitParents$u = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$u) { + if (subresult[0] === EXIT$9) { return subresult } @@ -63985,13 +71052,13 @@ const visitParents$u = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$u(value) { +function toResult$8(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$u, value] + return [CONTINUE$9, value] } return [value] @@ -64012,7 +71079,7 @@ function toResult$u(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$u = +const visit$8 = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -64033,7 +71100,7 @@ const visit$u = test = null; } - visitParents$u(tree, test, overload, reverse); + visitParents$9(tree, test, overload, reverse); /** * @param {Node} node @@ -64064,15 +71131,15 @@ const visit$u = * @property {PositionLike} [position] */ -var pointStart$l = point$o('start'); -var pointEnd$b = point$o('end'); +var pointStart$5 = point$5('start'); +var pointEnd$3 = point$5('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$o(type) { +function point$5(type) { return point /** @@ -64108,7 +71175,7 @@ function point$o(type) { * * @param {string|Uint8Array|VFile} file */ -function location$4(file) { +function location$1(file) { var value = String(file); /** @type {Array.} */ var indices = []; @@ -64241,24 +71308,24 @@ function location$4(file) { * 3:6: Do not indent table rows */ -const remarkLintNoTableIndentation = lintRule$y( +const remarkLintNoTableIndentation = lintRule$7( 'remark-lint:no-table-indentation', /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); - const loc = location$4(value); + const loc = location$1(value); - visit$u(tree, 'table', (node, _, parent) => { - const end = pointEnd$b(node).line; - let line = pointStart$l(node).line; + visit$8(tree, 'table', (node, _, parent) => { + const end = pointEnd$3(node).line; + let line = pointStart$5(node).line; let column = 0; if (parent && parent.type === 'root') { column = 1; } else if (parent && parent.type === 'blockquote') { - column = pointStart$l(parent).column + 2; + column = pointStart$5(parent).column + 2; } else if (parent && parent.type === 'listItem') { - column = pointStart$l(parent.children[0]).column; + column = pointStart$5(parent.children[0]).column; // Skip past the first line if we’re the first child of a list item. /* c8 ignore next 3 */ @@ -64295,97 +71362,11 @@ const remarkLintNoTableIndentation = lintRule$y( line++; } - return SKIP$u + return SKIP$9 }); } ); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$A(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -64401,13 +71382,13 @@ function wrap$A(middleware, callback) { * @returns {void} */ -const primitives$z = new Set(['string', 'number', 'boolean']); +const primitives$6 = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$z(id, rule) { +function lintRule$6(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -64420,7 +71401,7 @@ function lintRule$z(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$z(ruleId, raw); + const [severity, options] = coerce$7(ruleId, raw); if (!severity) return @@ -64429,7 +71410,7 @@ function lintRule$z(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$A(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -64459,7 +71440,7 @@ function lintRule$z(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$z(name, value) { +function coerce$7(name, value) { /** @type {unknown[]} */ let result; @@ -64471,7 +71452,7 @@ function coerce$z(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$z.has(typeof value[0]) + primitives$6.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -64528,7 +71509,7 @@ function coerce$z(name, value) { * * @param {string|Uint8Array|VFile} file */ -function location$5(file) { +function location(file) { var value = String(file); /** @type {Array.} */ var indices = []; @@ -64650,12 +71631,12 @@ function location$5(file) { * 13:41: Use spaces instead of tabs */ -const remarkLintNoTabs = lintRule$z( +const remarkLintNoTabs = lintRule$6( 'remark-lint:no-tabs', /** @type {import('unified-lint-rule').Rule} */ (_, file) => { const value = String(file); - const toPoint = location$5(file).toPoint; + const toPoint = location(file).toPoint; let index = value.indexOf('\t'); while (index !== -1) { @@ -64674,7 +71655,7 @@ const remarkLintNoTabs = lintRule$z( * @api public */ -var sliced = function (args, slice, sliceEnd) { +var sliced$1 = function (args, slice, sliceEnd) { var ret = []; var len = args.length; @@ -64701,13 +71682,13 @@ var sliced = function (args, slice, sliceEnd) { * slice() reference. */ -var slice$4 = Array.prototype.slice; +var slice = Array.prototype.slice; /** * Expose `co`. */ -var co_1 = co; +var co_1 = co$1; /** * Wrap the given generator `fn` and @@ -64718,7 +71699,7 @@ var co_1 = co; * @api public */ -function co(fn) { +function co$1(fn) { var isGenFun = isGeneratorFunction(fn); return function (done) { @@ -64732,7 +71713,7 @@ function co(fn) { // we only need to parse the arguments // if gen is a generator function. if (isGenFun) { - var args = slice$4.call(arguments), len = args.length; + var args = slice.call(arguments), len = args.length; var hasCallback = len && 'function' == typeof args[len - 1]; done = hasCallback ? args.pop() : error; gen = fn.apply(this, args); @@ -64755,7 +71736,7 @@ function co(fn) { var ret; // multiple args - if (arguments.length > 2) res = slice$4.call(arguments, 1); + if (arguments.length > 2) res = slice.call(arguments, 1); // error if (err) { @@ -64819,11 +71800,11 @@ function co(fn) { function toThunk(obj, ctx) { if (isGeneratorFunction(obj)) { - return co(obj.call(ctx)); + return co$1(obj.call(ctx)); } if (isGenerator(obj)) { - return co(obj); + return co$1(obj); } if (isPromise(obj)) { @@ -64834,7 +71815,7 @@ function toThunk(obj, ctx) { return obj; } - if (isObject$3(obj) || Array.isArray(obj)) { + if (isObject$1(obj) || Array.isArray(obj)) { return objectToThunk.call(ctx, obj); } @@ -64968,7 +71949,7 @@ function isGeneratorFunction(obj) { * @api private */ -function isObject$3(val) { +function isObject$1(val) { return val && Object == val.constructor; } @@ -64995,14 +71976,15 @@ function error(err) { * Module Dependencies */ -var noop$2 = function(){}; - +var sliced = sliced$1; +var noop = function(){}; +var co = co_1; /** * Export `wrapped` */ -var wrapped_1 = wrapped; +var wrapped_1 = wrapped$1; /** * Wrap a function to support @@ -65013,14 +71995,14 @@ var wrapped_1 = wrapped; * @api public */ -function wrapped(fn) { +function wrapped$1(fn) { function wrap() { var args = sliced(arguments); var last = args[args.length - 1]; var ctx = this; // done - var done = typeof last == 'function' ? args.pop() : noop$2; + var done = typeof last == 'function' ? args.pop() : noop; // nothing if (!fn) { @@ -65029,7 +72011,7 @@ function wrapped(fn) { // generator if (generator(fn)) { - return co_1(fn).apply(ctx, args.concat(done)); + return co(fn).apply(ctx, args.concat(done)); } // async @@ -65043,7 +72025,7 @@ function wrapped(fn) { } // sync - return sync$5(fn, done).apply(ctx, args); + return sync(fn, done).apply(ctx, args); } return wrap; @@ -65058,7 +72040,7 @@ function wrapped(fn) { * @api private */ -function sync$5(fn, done) { +function sync(fn, done) { return function () { var ret; @@ -65103,13 +72085,15 @@ function promise(value) { return value && 'function' == typeof value.then; } +var wrapped = wrapped_1; + var unifiedLintRule = factory$2; function factory$2(id, rule) { var parts = id.split(':'); var source = parts[0]; var ruleId = parts[1]; - var fn = wrapped_1(rule); + var fn = wrapped(rule); /* istanbul ignore if - possibly useful if externalised later. */ if (!ruleId) { @@ -65122,7 +72106,7 @@ function factory$2(id, rule) { return attacher function attacher(raw) { - var config = coerce$A(ruleId, raw); + var config = coerce$6(ruleId, raw); var severity = config[0]; var options = config[1]; var fatal = severity === 2; @@ -65162,7 +72146,7 @@ function factory$2(id, rule) { } // Coerce a value to a severity--options tuple. -function coerce$A(name, value) { +function coerce$6(name, value) { var def = 1; var result; var level; @@ -65216,7 +72200,9 @@ function coerce$A(name, value) { return result } -var remarkLintNoTrailingSpaces = unifiedLintRule('remark-lint:no-trailing-spaces', noTrailingSpaces); +var rule$1 = unifiedLintRule; + +var remarkLintNoTrailingSpaces = rule$1('remark-lint:no-trailing-spaces', noTrailingSpaces); /** * Lines that are just space characters are not present in @@ -65239,92 +72225,6 @@ function noTrailingSpaces(ast, file) { } } -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$B(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; - - if (fnExpectsCallback) { - parameters.push(done); - } - - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } - - return done(exception) - } - - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } -} - /** * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile @@ -65340,13 +72240,13 @@ function wrap$B(middleware, callback) { * @returns {void} */ -const primitives$A = new Set(['string', 'number', 'boolean']); +const primitives$5 = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$A(id, rule) { +function lintRule$5(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -65359,7 +72259,7 @@ function lintRule$A(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$B(ruleId, raw); + const [severity, options] = coerce$5(ruleId, raw); if (!severity) return @@ -65368,7 +72268,7 @@ function lintRule$A(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$B(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -65398,7 +72298,7 @@ function lintRule$A(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$B(name, value) { +function coerce$5(name, value) { /** @type {unknown[]} */ let result; @@ -65410,7 +72310,7 @@ function coerce$B(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$A.has(typeof value[0]) + primitives$5.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -65463,12 +72363,12 @@ function* getLinksRecursively(node) { } function validateLinks(tree, vfile) { - const currentFileURL = url.pathToFileURL(path__default['default'].join(vfile.cwd, vfile.path)); + const currentFileURL = url.pathToFileURL(require$$0__default$2['default'].join(vfile.cwd, vfile.path)); let previousDefinitionLabel; for (const node of getLinksRecursively(tree)) { if (node.url[0] !== "#") { const targetURL = new URL(node.url, currentFileURL); - if (targetURL.protocol === "file:" && !fs__default['default'].existsSync(targetURL)) { + if (targetURL.protocol === "file:" && !require$$0__default$3['default'].existsSync(targetURL)) { vfile.message("Broken link", node); } else if (targetURL.pathname === currentFileURL.pathname) { const expected = node.url.includes("#") @@ -65492,31 +72392,31 @@ function validateLinks(tree, vfile) { } } -const remarkLintNodejsLinks = lintRule$A( +const remarkLintNodejsLinks = lintRule$5( "remark-lint:nodejs-links", validateLinks ); -/*! js-yaml 4.0.0 https://github.com/nodeca/js-yaml @license MIT */ -function isNothing$1(subject) { +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ +function isNothing(subject) { return (typeof subject === 'undefined') || (subject === null); } -function isObject$4(subject) { +function isObject(subject) { return (typeof subject === 'object') && (subject !== null); } -function toArray$1(sequence) { +function toArray(sequence) { if (Array.isArray(sequence)) return sequence; - else if (isNothing$1(sequence)) return []; + else if (isNothing(sequence)) return []; return [ sequence ]; } -function extend$3(target, source) { +function extend(target, source) { var index, length, key, sourceKeys; if (source) { @@ -65532,7 +72432,7 @@ function extend$3(target, source) { } -function repeat$2(string, count) { +function repeat(string, count) { var result = '', cycle; for (cycle = 0; cycle < count; cycle += 1) { @@ -65543,25 +72443,25 @@ function repeat$2(string, count) { } -function isNegativeZero$1(number) { +function isNegativeZero(number) { return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); } -var isNothing_1$1 = isNothing$1; -var isObject_1$1 = isObject$4; -var toArray_1$1 = toArray$1; -var repeat_1$1 = repeat$2; -var isNegativeZero_1$1 = isNegativeZero$1; -var extend_1$1 = extend$3; +var isNothing_1 = isNothing; +var isObject_1 = isObject; +var toArray_1 = toArray; +var repeat_1 = repeat; +var isNegativeZero_1 = isNegativeZero; +var extend_1 = extend; -var common$3 = { - isNothing: isNothing_1$1, - isObject: isObject_1$1, - toArray: toArray_1$1, - repeat: repeat_1$1, - isNegativeZero: isNegativeZero_1$1, - extend: extend_1$1 +var common = { + isNothing: isNothing_1, + isObject: isObject_1, + toArray: toArray_1, + repeat: repeat_1, + isNegativeZero: isNegativeZero_1, + extend: extend_1 }; // YAML error class. http://stackoverflow.com/questions/8458984 @@ -65586,7 +72486,7 @@ function formatError(exception, compact) { } -function YAMLException$2(reason, mark) { +function YAMLException$1(reason, mark) { // Super constructor Error.call(this); @@ -65607,16 +72507,16 @@ function YAMLException$2(reason, mark) { // Inherit from Error -YAMLException$2.prototype = Object.create(Error.prototype); -YAMLException$2.prototype.constructor = YAMLException$2; +YAMLException$1.prototype = Object.create(Error.prototype); +YAMLException$1.prototype.constructor = YAMLException$1; -YAMLException$2.prototype.toString = function toString(compact) { +YAMLException$1.prototype.toString = function toString(compact) { return this.name + ': ' + formatError(this, compact); }; -var exception$1 = YAMLException$2; +var exception = YAMLException$1; // get snippet for a single line, respecting maxLength function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { @@ -65642,7 +72542,7 @@ function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { function padStart(string, max) { - return common$3.repeat(' ', max - string.length) + string; + return common.repeat(' ', max - string.length) + string; } @@ -65686,14 +72586,14 @@ function makeSnippet(mark, options) { mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), maxLineLength ); - result = common$3.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + + result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + ' | ' + line.str + '\n' + result; } line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); - result += common$3.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + + result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + ' | ' + line.str + '\n'; - result += common$3.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; + result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; for (i = 1; i <= options.linesAfter; i++) { if (foundLineNo + i >= lineEnds.length) break; @@ -65704,7 +72604,7 @@ function makeSnippet(mark, options) { mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), maxLineLength ); - result += common$3.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + + result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + ' | ' + line.str + '\n'; } @@ -65714,7 +72614,7 @@ function makeSnippet(mark, options) { var snippet = makeSnippet; -var TYPE_CONSTRUCTOR_OPTIONS$1 = [ +var TYPE_CONSTRUCTOR_OPTIONS = [ 'kind', 'multi', 'resolve', @@ -65727,13 +72627,13 @@ var TYPE_CONSTRUCTOR_OPTIONS$1 = [ 'styleAliases' ]; -var YAML_NODE_KINDS$1 = [ +var YAML_NODE_KINDS = [ 'scalar', 'sequence', 'mapping' ]; -function compileStyleAliases$1(map) { +function compileStyleAliases(map) { var result = {}; if (map !== null) { @@ -65747,16 +72647,17 @@ function compileStyleAliases$1(map) { return result; } -function Type$2(tag, options) { +function Type$1(tag, options) { options = options || {}; Object.keys(options).forEach(function (name) { - if (TYPE_CONSTRUCTOR_OPTIONS$1.indexOf(name) === -1) { - throw new exception$1('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); } }); // TODO: Add tag format check. + this.options = options; // keep original options in case user wants to extend this type later this.tag = tag; this.kind = options['kind'] || null; this.resolve = options['resolve'] || function () { return true; }; @@ -65767,14 +72668,14 @@ function Type$2(tag, options) { this.representName = options['representName'] || null; this.defaultStyle = options['defaultStyle'] || null; this.multi = options['multi'] || false; - this.styleAliases = compileStyleAliases$1(options['styleAliases'] || null); + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); - if (YAML_NODE_KINDS$1.indexOf(this.kind) === -1) { - throw new exception$1('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); } } -var type$1 = Type$2; +var type = Type$1; /*eslint-disable max-len*/ @@ -65782,29 +72683,29 @@ var type$1 = Type$2; -function compileList$1(schema, name, result) { - var exclude = []; +function compileList(schema, name) { + var result = []; schema[name].forEach(function (currentType) { + var newIndex = result.length; + result.forEach(function (previousType, previousIndex) { if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { - exclude.push(previousIndex); + newIndex = previousIndex; } }); - result.push(currentType); + result[newIndex] = currentType; }); - return result.filter(function (type, index) { - return exclude.indexOf(index) === -1; - }); + return result; } -function compileMap$1(/* lists... */) { +function compileMap(/* lists... */) { var result = { scalar: {}, sequence: {}, @@ -65834,16 +72735,16 @@ function compileMap$1(/* lists... */) { } -function Schema$2(definition) { +function Schema$1(definition) { return this.extend(definition); } -Schema$2.prototype.extend = function extend(definition) { +Schema$1.prototype.extend = function extend(definition) { var implicit = []; var explicit = []; - if (definition instanceof type$1) { + if (definition instanceof type) { // Schema.extend(type) explicit.push(definition); @@ -65857,69 +72758,69 @@ Schema$2.prototype.extend = function extend(definition) { if (definition.explicit) explicit = explicit.concat(definition.explicit); } else { - throw new exception$1('Schema.extend argument should be a Type, [ Type ], ' + + throw new exception('Schema.extend argument should be a Type, [ Type ], ' + 'or a schema definition ({ implicit: [...], explicit: [...] })'); } - implicit.forEach(function (type$1$1) { - if (!(type$1$1 instanceof type$1)) { - throw new exception$1('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + implicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); } - if (type$1$1.loadKind && type$1$1.loadKind !== 'scalar') { - throw new exception$1('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + if (type$1.loadKind && type$1.loadKind !== 'scalar') { + throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); } - if (type$1$1.multi) { - throw new exception$1('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); + if (type$1.multi) { + throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); } }); - explicit.forEach(function (type$1$1) { - if (!(type$1$1 instanceof type$1)) { - throw new exception$1('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + explicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); } }); - var result = Object.create(Schema$2.prototype); + var result = Object.create(Schema$1.prototype); result.implicit = (this.implicit || []).concat(implicit); result.explicit = (this.explicit || []).concat(explicit); - result.compiledImplicit = compileList$1(result, 'implicit', []); - result.compiledExplicit = compileList$1(result, 'explicit', []); - result.compiledTypeMap = compileMap$1(result.compiledImplicit, result.compiledExplicit); + result.compiledImplicit = compileList(result, 'implicit'); + result.compiledExplicit = compileList(result, 'explicit'); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); return result; }; -var schema$2 = Schema$2; +var schema = Schema$1; -var str$1 = new type$1('tag:yaml.org,2002:str', { +var str = new type('tag:yaml.org,2002:str', { kind: 'scalar', construct: function (data) { return data !== null ? data : ''; } }); -var seq$1 = new type$1('tag:yaml.org,2002:seq', { +var seq = new type('tag:yaml.org,2002:seq', { kind: 'sequence', construct: function (data) { return data !== null ? data : []; } }); -var map$5 = new type$1('tag:yaml.org,2002:map', { +var map = new type('tag:yaml.org,2002:map', { kind: 'mapping', construct: function (data) { return data !== null ? data : {}; } }); -var failsafe$1 = new schema$2({ +var failsafe = new schema({ explicit: [ - str$1, - seq$1, - map$5 + str, + seq, + map ] }); -function resolveYamlNull$1(data) { +function resolveYamlNull(data) { if (data === null) return true; var max = data.length; @@ -65928,19 +72829,19 @@ function resolveYamlNull$1(data) { (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); } -function constructYamlNull$1() { +function constructYamlNull() { return null; } -function isNull$1(object) { +function isNull(object) { return object === null; } -var _null$1 = new type$1('tag:yaml.org,2002:null', { +var _null = new type('tag:yaml.org,2002:null', { kind: 'scalar', - resolve: resolveYamlNull$1, - construct: constructYamlNull$1, - predicate: isNull$1, + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, represent: { canonical: function () { return '~'; }, lowercase: function () { return 'null'; }, @@ -65951,7 +72852,7 @@ var _null$1 = new type$1('tag:yaml.org,2002:null', { defaultStyle: 'lowercase' }); -function resolveYamlBoolean$1(data) { +function resolveYamlBoolean(data) { if (data === null) return false; var max = data.length; @@ -65960,21 +72861,21 @@ function resolveYamlBoolean$1(data) { (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); } -function constructYamlBoolean$1(data) { +function constructYamlBoolean(data) { return data === 'true' || data === 'True' || data === 'TRUE'; } -function isBoolean$1(object) { +function isBoolean(object) { return Object.prototype.toString.call(object) === '[object Boolean]'; } -var bool$1 = new type$1('tag:yaml.org,2002:bool', { +var bool = new type('tag:yaml.org,2002:bool', { kind: 'scalar', - resolve: resolveYamlBoolean$1, - construct: constructYamlBoolean$1, - predicate: isBoolean$1, + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, represent: { lowercase: function (object) { return object ? 'true' : 'false'; }, uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, @@ -65983,21 +72884,21 @@ var bool$1 = new type$1('tag:yaml.org,2002:bool', { defaultStyle: 'lowercase' }); -function isHexCode$1(c) { +function isHexCode(c) { return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || ((0x61/* a */ <= c) && (c <= 0x66/* f */)); } -function isOctCode$1(c) { +function isOctCode(c) { return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); } -function isDecCode$1(c) { +function isDecCode(c) { return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); } -function resolveYamlInteger$1(data) { +function resolveYamlInteger(data) { if (data === null) return false; var max = data.length, @@ -66042,7 +72943,7 @@ function resolveYamlInteger$1(data) { for (; index < max; index++) { ch = data[index]; if (ch === '_') continue; - if (!isHexCode$1(data.charCodeAt(index))) return false; + if (!isHexCode(data.charCodeAt(index))) return false; hasDigits = true; } return hasDigits && ch !== '_'; @@ -66056,7 +72957,7 @@ function resolveYamlInteger$1(data) { for (; index < max; index++) { ch = data[index]; if (ch === '_') continue; - if (!isOctCode$1(data.charCodeAt(index))) return false; + if (!isOctCode(data.charCodeAt(index))) return false; hasDigits = true; } return hasDigits && ch !== '_'; @@ -66071,7 +72972,7 @@ function resolveYamlInteger$1(data) { for (; index < max; index++) { ch = data[index]; if (ch === '_') continue; - if (!isDecCode$1(data.charCodeAt(index))) { + if (!isDecCode(data.charCodeAt(index))) { return false; } hasDigits = true; @@ -66083,7 +72984,7 @@ function resolveYamlInteger$1(data) { return true; } -function constructYamlInteger$1(data) { +function constructYamlInteger(data) { var value = data, sign = 1, ch; if (value.indexOf('_') !== -1) { @@ -66109,16 +73010,16 @@ function constructYamlInteger$1(data) { return sign * parseInt(value, 10); } -function isInteger$1(object) { +function isInteger(object) { return (Object.prototype.toString.call(object)) === '[object Number]' && - (object % 1 === 0 && !common$3.isNegativeZero(object)); + (object % 1 === 0 && !common.isNegativeZero(object)); } -var int$2 = new type$1('tag:yaml.org,2002:int', { +var int = new type('tag:yaml.org,2002:int', { kind: 'scalar', - resolve: resolveYamlInteger$1, - construct: constructYamlInteger$1, - predicate: isInteger$1, + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, represent: { binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, @@ -66135,7 +73036,7 @@ var int$2 = new type$1('tag:yaml.org,2002:int', { } }); -var YAML_FLOAT_PATTERN$1 = new RegExp( +var YAML_FLOAT_PATTERN = new RegExp( // 2.5e4, 2.5 and integers '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + // .2e4, .2 @@ -66146,10 +73047,10 @@ var YAML_FLOAT_PATTERN$1 = new RegExp( // .nan '|\\.(?:nan|NaN|NAN))$'); -function resolveYamlFloat$1(data) { +function resolveYamlFloat(data) { if (data === null) return false; - if (!YAML_FLOAT_PATTERN$1.test(data) || + if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_` // Probably should update regexp & check speed data[data.length - 1] === '_') { @@ -66159,7 +73060,7 @@ function resolveYamlFloat$1(data) { return true; } -function constructYamlFloat$1(data) { +function constructYamlFloat(data) { var value, sign; value = data.replace(/_/g, '').toLowerCase(); @@ -66179,9 +73080,9 @@ function constructYamlFloat$1(data) { } -var SCIENTIFIC_WITHOUT_DOT$1 = /^[-+]?[0-9]+e/; +var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; -function representYamlFloat$1(object, style) { +function representYamlFloat(object, style) { var res; if (isNaN(object)) { @@ -66202,7 +73103,7 @@ function representYamlFloat$1(object, style) { case 'uppercase': return '-.INF'; case 'camelcase': return '-.Inf'; } - } else if (common$3.isNegativeZero(object)) { + } else if (common.isNegativeZero(object)) { return '-0.0'; } @@ -66211,40 +73112,40 @@ function representYamlFloat$1(object, style) { // JS stringifier can build scientific format without dots: 5e-100, // while YAML requres dot: 5.e-100. Fix it with simple hack - return SCIENTIFIC_WITHOUT_DOT$1.test(res) ? res.replace('e', '.e') : res; + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; } -function isFloat$1(object) { +function isFloat(object) { return (Object.prototype.toString.call(object) === '[object Number]') && - (object % 1 !== 0 || common$3.isNegativeZero(object)); + (object % 1 !== 0 || common.isNegativeZero(object)); } -var float$1 = new type$1('tag:yaml.org,2002:float', { +var float = new type('tag:yaml.org,2002:float', { kind: 'scalar', - resolve: resolveYamlFloat$1, - construct: constructYamlFloat$1, - predicate: isFloat$1, - represent: representYamlFloat$1, + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, defaultStyle: 'lowercase' }); -var json$1 = failsafe$1.extend({ +var json = failsafe.extend({ implicit: [ - _null$1, - bool$1, - int$2, - float$1 + _null, + bool, + int, + float ] }); -var core$3 = json$1; +var core = json; -var YAML_DATE_REGEXP$1 = new RegExp( +var YAML_DATE_REGEXP = new RegExp( '^([0-9][0-9][0-9][0-9])' + // [1] year '-([0-9][0-9])' + // [2] month '-([0-9][0-9])$'); // [3] day -var YAML_TIMESTAMP_REGEXP$1 = new RegExp( +var YAML_TIMESTAMP_REGEXP = new RegExp( '^([0-9][0-9][0-9][0-9])' + // [1] year '-([0-9][0-9]?)' + // [2] month '-([0-9][0-9]?)' + // [3] day @@ -66256,19 +73157,19 @@ var YAML_TIMESTAMP_REGEXP$1 = new RegExp( '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour '(?::([0-9][0-9]))?))?$'); // [11] tz_minute -function resolveYamlTimestamp$1(data) { +function resolveYamlTimestamp(data) { if (data === null) return false; - if (YAML_DATE_REGEXP$1.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP$1.exec(data) !== null) return true; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; return false; } -function constructYamlTimestamp$1(data) { +function constructYamlTimestamp(data) { var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; - match = YAML_DATE_REGEXP$1.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP$1.exec(data); + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); if (match === null) throw new Error('Date resolve error'); @@ -66312,25 +73213,25 @@ function constructYamlTimestamp$1(data) { return date; } -function representYamlTimestamp$1(object /*, style*/) { +function representYamlTimestamp(object /*, style*/) { return object.toISOString(); } -var timestamp$1 = new type$1('tag:yaml.org,2002:timestamp', { +var timestamp = new type('tag:yaml.org,2002:timestamp', { kind: 'scalar', - resolve: resolveYamlTimestamp$1, - construct: constructYamlTimestamp$1, + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, instanceOf: Date, - represent: representYamlTimestamp$1 + represent: representYamlTimestamp }); -function resolveYamlMerge$1(data) { +function resolveYamlMerge(data) { return data === '<<' || data === null; } -var merge$1 = new type$1('tag:yaml.org,2002:merge', { +var merge = new type('tag:yaml.org,2002:merge', { kind: 'scalar', - resolve: resolveYamlMerge$1 + resolve: resolveYamlMerge }); /*eslint-disable no-bitwise*/ @@ -66340,13 +73241,13 @@ var merge$1 = new type$1('tag:yaml.org,2002:merge', { // [ 64, 65, 66 ] -> [ padding, CR, LF ] -var BASE64_MAP$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; +var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; -function resolveYamlBinary$1(data) { +function resolveYamlBinary(data) { if (data === null) return false; - var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP$1; + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; // Convert one by one. for (idx = 0; idx < max; idx++) { @@ -66365,11 +73266,11 @@ function resolveYamlBinary$1(data) { return (bitlen % 8) === 0; } -function constructYamlBinary$1(data) { +function constructYamlBinary(data) { var idx, tailbits, input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan max = input.length, - map = BASE64_MAP$1, + map = BASE64_MAP, bits = 0, result = []; @@ -66403,10 +73304,10 @@ function constructYamlBinary$1(data) { return new Uint8Array(result); } -function representYamlBinary$1(object /*, style*/) { +function representYamlBinary(object /*, style*/) { var result = '', bits = 0, idx, tail, max = object.length, - map = BASE64_MAP$1; + map = BASE64_MAP; // Convert every three bytes to 4 ASCII characters. @@ -66445,22 +73346,22 @@ function representYamlBinary$1(object /*, style*/) { return result; } -function isBinary$1(obj) { +function isBinary(obj) { return Object.prototype.toString.call(obj) === '[object Uint8Array]'; } -var binary$1 = new type$1('tag:yaml.org,2002:binary', { +var binary = new type('tag:yaml.org,2002:binary', { kind: 'scalar', - resolve: resolveYamlBinary$1, - construct: constructYamlBinary$1, - predicate: isBinary$1, - represent: representYamlBinary$1 + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary }); -var _hasOwnProperty$4 = Object.prototype.hasOwnProperty; -var _toString$3 = Object.prototype.toString; +var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; +var _toString$2 = Object.prototype.toString; -function resolveYamlOmap$1(data) { +function resolveYamlOmap(data) { if (data === null) return true; var objectKeys = [], index, length, pair, pairKey, pairHasKey, @@ -66470,10 +73371,10 @@ function resolveYamlOmap$1(data) { pair = object[index]; pairHasKey = false; - if (_toString$3.call(pair) !== '[object Object]') return false; + if (_toString$2.call(pair) !== '[object Object]') return false; for (pairKey in pair) { - if (_hasOwnProperty$4.call(pair, pairKey)) { + if (_hasOwnProperty$3.call(pair, pairKey)) { if (!pairHasKey) pairHasKey = true; else return false; } @@ -66488,19 +73389,19 @@ function resolveYamlOmap$1(data) { return true; } -function constructYamlOmap$1(data) { +function constructYamlOmap(data) { return data !== null ? data : []; } -var omap$1 = new type$1('tag:yaml.org,2002:omap', { +var omap = new type('tag:yaml.org,2002:omap', { kind: 'sequence', - resolve: resolveYamlOmap$1, - construct: constructYamlOmap$1 + resolve: resolveYamlOmap, + construct: constructYamlOmap }); -var _toString$1$1 = Object.prototype.toString; +var _toString$1 = Object.prototype.toString; -function resolveYamlPairs$1(data) { +function resolveYamlPairs(data) { if (data === null) return true; var index, length, pair, keys, result, @@ -66511,7 +73412,7 @@ function resolveYamlPairs$1(data) { for (index = 0, length = object.length; index < length; index += 1) { pair = object[index]; - if (_toString$1$1.call(pair) !== '[object Object]') return false; + if (_toString$1.call(pair) !== '[object Object]') return false; keys = Object.keys(pair); @@ -66523,7 +73424,7 @@ function resolveYamlPairs$1(data) { return true; } -function constructYamlPairs$1(data) { +function constructYamlPairs(data) { if (data === null) return []; var index, length, pair, keys, result, @@ -66542,21 +73443,21 @@ function constructYamlPairs$1(data) { return result; } -var pairs$1 = new type$1('tag:yaml.org,2002:pairs', { +var pairs = new type('tag:yaml.org,2002:pairs', { kind: 'sequence', - resolve: resolveYamlPairs$1, - construct: constructYamlPairs$1 + resolve: resolveYamlPairs, + construct: constructYamlPairs }); -var _hasOwnProperty$1$1 = Object.prototype.hasOwnProperty; +var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; -function resolveYamlSet$1(data) { +function resolveYamlSet(data) { if (data === null) return true; var key, object = data; for (key in object) { - if (_hasOwnProperty$1$1.call(object, key)) { + if (_hasOwnProperty$2.call(object, key)) { if (object[key] !== null) return false; } } @@ -66564,26 +73465,26 @@ function resolveYamlSet$1(data) { return true; } -function constructYamlSet$1(data) { +function constructYamlSet(data) { return data !== null ? data : {}; } -var set$1 = new type$1('tag:yaml.org,2002:set', { +var set = new type('tag:yaml.org,2002:set', { kind: 'mapping', - resolve: resolveYamlSet$1, - construct: constructYamlSet$1 + resolve: resolveYamlSet, + construct: constructYamlSet }); -var _default$8 = core$3.extend({ +var _default = core.extend({ implicit: [ - timestamp$1, - merge$1 + timestamp, + merge ], explicit: [ - binary$1, - omap$1, - pairs$1, - set$1 + binary, + omap, + pairs, + set ] }); @@ -66595,45 +73496,45 @@ var _default$8 = core$3.extend({ -var _hasOwnProperty$2$1 = Object.prototype.hasOwnProperty; +var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; -var CONTEXT_FLOW_IN$1 = 1; -var CONTEXT_FLOW_OUT$1 = 2; -var CONTEXT_BLOCK_IN$1 = 3; -var CONTEXT_BLOCK_OUT$1 = 4; +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; -var CHOMPING_CLIP$1 = 1; -var CHOMPING_STRIP$1 = 2; -var CHOMPING_KEEP$1 = 3; +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; -var PATTERN_NON_PRINTABLE$1 = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS$1 = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS$1 = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE$1 = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI$1 = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; -function _class$1(obj) { return Object.prototype.toString.call(obj); } +function _class(obj) { return Object.prototype.toString.call(obj); } -function is_EOL$1(c) { +function is_EOL(c) { return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); } -function is_WHITE_SPACE$1(c) { +function is_WHITE_SPACE(c) { return (c === 0x09/* Tab */) || (c === 0x20/* Space */); } -function is_WS_OR_EOL$1(c) { +function is_WS_OR_EOL(c) { return (c === 0x09/* Tab */) || (c === 0x20/* Space */) || (c === 0x0A/* LF */) || (c === 0x0D/* CR */); } -function is_FLOW_INDICATOR$1(c) { +function is_FLOW_INDICATOR(c) { return c === 0x2C/* , */ || c === 0x5B/* [ */ || c === 0x5D/* ] */ || @@ -66641,7 +73542,7 @@ function is_FLOW_INDICATOR$1(c) { c === 0x7D/* } */; } -function fromHexCode$1(c) { +function fromHexCode(c) { var lc; if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { @@ -66658,14 +73559,14 @@ function fromHexCode$1(c) { return -1; } -function escapedHexLen$1(c) { +function escapedHexLen(c) { if (c === 0x78/* x */) { return 2; } if (c === 0x75/* u */) { return 4; } if (c === 0x55/* U */) { return 8; } return 0; } -function fromDecimalCode$1(c) { +function fromDecimalCode(c) { if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { return c - 0x30; } @@ -66673,7 +73574,7 @@ function fromDecimalCode$1(c) { return -1; } -function simpleEscapeSequence$1(c) { +function simpleEscapeSequence(c) { /* eslint-disable indent */ return (c === 0x30/* 0 */) ? '\x00' : (c === 0x61/* a */) ? '\x07' : @@ -66695,7 +73596,7 @@ function simpleEscapeSequence$1(c) { (c === 0x50/* P */) ? '\u2029' : ''; } -function charFromCodepoint$1(c) { +function charFromCodepoint(c) { if (c <= 0xFFFF) { return String.fromCharCode(c); } @@ -66707,19 +73608,19 @@ function charFromCodepoint$1(c) { ); } -var simpleEscapeCheck$1 = new Array(256); // integer, for fast access -var simpleEscapeMap$1 = new Array(256); -for (var i$1 = 0; i$1 < 256; i$1++) { - simpleEscapeCheck$1[i$1] = simpleEscapeSequence$1(i$1) ? 1 : 0; - simpleEscapeMap$1[i$1] = simpleEscapeSequence$1(i$1); +var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); } -function State$2(input, options) { +function State$1(input, options) { this.input = input; this.filename = options['filename'] || null; - this.schema = options['schema'] || _default$8; + this.schema = options['schema'] || _default; this.onWarning = options['onWarning'] || null; // (Hidden) Remove? makes the loader to expect YAML 1.1 documents // if such documents have no explicit %YAML directive @@ -66756,7 +73657,7 @@ function State$2(input, options) { } -function generateError$1(state, message) { +function generateError(state, message) { var mark = { name: state.filename, buffer: state.input.slice(0, -1), // omit trailing \0 @@ -66767,52 +73668,52 @@ function generateError$1(state, message) { mark.snippet = snippet(mark); - return new exception$1(message, mark); + return new exception(message, mark); } -function throwError$2(state, message) { - throw generateError$1(state, message); +function throwError(state, message) { + throw generateError(state, message); } -function throwWarning$1(state, message) { +function throwWarning(state, message) { if (state.onWarning) { - state.onWarning.call(null, generateError$1(state, message)); + state.onWarning.call(null, generateError(state, message)); } } -var directiveHandlers$1 = { +var directiveHandlers = { YAML: function handleYamlDirective(state, name, args) { var match, major, minor; if (state.version !== null) { - throwError$2(state, 'duplication of %YAML directive'); + throwError(state, 'duplication of %YAML directive'); } if (args.length !== 1) { - throwError$2(state, 'YAML directive accepts exactly one argument'); + throwError(state, 'YAML directive accepts exactly one argument'); } match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); if (match === null) { - throwError$2(state, 'ill-formed argument of the YAML directive'); + throwError(state, 'ill-formed argument of the YAML directive'); } major = parseInt(match[1], 10); minor = parseInt(match[2], 10); if (major !== 1) { - throwError$2(state, 'unacceptable YAML version of the document'); + throwError(state, 'unacceptable YAML version of the document'); } state.version = args[0]; state.checkLineBreaks = (minor < 2); if (minor !== 1 && minor !== 2) { - throwWarning$1(state, 'unsupported YAML version of the document'); + throwWarning(state, 'unsupported YAML version of the document'); } }, @@ -66821,28 +73722,28 @@ var directiveHandlers$1 = { var handle, prefix; if (args.length !== 2) { - throwError$2(state, 'TAG directive accepts exactly two arguments'); + throwError(state, 'TAG directive accepts exactly two arguments'); } handle = args[0]; prefix = args[1]; - if (!PATTERN_TAG_HANDLE$1.test(handle)) { - throwError$2(state, 'ill-formed tag handle (first argument) of the TAG directive'); + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); } - if (_hasOwnProperty$2$1.call(state.tagMap, handle)) { - throwError$2(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + if (_hasOwnProperty$1.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); } - if (!PATTERN_TAG_URI$1.test(prefix)) { - throwError$2(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); } try { prefix = decodeURIComponent(prefix); } catch (err) { - throwError$2(state, 'tag prefix is malformed: ' + prefix); + throwError(state, 'tag prefix is malformed: ' + prefix); } state.tagMap[handle] = prefix; @@ -66850,7 +73751,7 @@ var directiveHandlers$1 = { }; -function captureSegment$1(state, start, end, checkJson) { +function captureSegment(state, start, end, checkJson) { var _position, _length, _character, _result; if (start < end) { @@ -66861,22 +73762,22 @@ function captureSegment$1(state, start, end, checkJson) { _character = _result.charCodeAt(_position); if (!(_character === 0x09 || (0x20 <= _character && _character <= 0x10FFFF))) { - throwError$2(state, 'expected valid JSON character'); + throwError(state, 'expected valid JSON character'); } } - } else if (PATTERN_NON_PRINTABLE$1.test(_result)) { - throwError$2(state, 'the stream contains non-printable characters'); + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters'); } state.result += _result; } } -function mergeMappings$1(state, destination, source, overridableKeys) { +function mergeMappings(state, destination, source, overridableKeys) { var sourceKeys, key, index, quantity; - if (!common$3.isObject(source)) { - throwError$2(state, 'cannot merge mappings; the provided source object is unacceptable'); + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); } sourceKeys = Object.keys(source); @@ -66884,14 +73785,14 @@ function mergeMappings$1(state, destination, source, overridableKeys) { for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { key = sourceKeys[index]; - if (!_hasOwnProperty$2$1.call(destination, key)) { + if (!_hasOwnProperty$1.call(destination, key)) { destination[key] = source[key]; overridableKeys[key] = true; } } } -function storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, valueNode, +function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { var index, quantity; @@ -66904,10 +73805,10 @@ function storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, va for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { if (Array.isArray(keyNode[index])) { - throwError$2(state, 'nested arrays are not supported inside keys'); + throwError(state, 'nested arrays are not supported inside keys'); } - if (typeof keyNode === 'object' && _class$1(keyNode[index]) === '[object Object]') { + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { keyNode[index] = '[object Object]'; } } @@ -66916,7 +73817,7 @@ function storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, va // Avoid code execution in load() via toString property // (still use its own toString for arrays, timestamps, // and whatever user schema extensions happen to have @@toStringTag) - if (typeof keyNode === 'object' && _class$1(keyNode) === '[object Object]') { + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { keyNode = '[object Object]'; } @@ -66930,19 +73831,19 @@ function storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, va if (keyTag === 'tag:yaml.org,2002:merge') { if (Array.isArray(valueNode)) { for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings$1(state, _result, valueNode[index], overridableKeys); + mergeMappings(state, _result, valueNode[index], overridableKeys); } } else { - mergeMappings$1(state, _result, valueNode, overridableKeys); + mergeMappings(state, _result, valueNode, overridableKeys); } } else { if (!state.json && - !_hasOwnProperty$2$1.call(overridableKeys, keyNode) && - _hasOwnProperty$2$1.call(_result, keyNode)) { + !_hasOwnProperty$1.call(overridableKeys, keyNode) && + _hasOwnProperty$1.call(_result, keyNode)) { state.line = startLine || state.line; state.lineStart = startLineStart || state.lineStart; state.position = startPos || state.position; - throwError$2(state, 'duplicated mapping key'); + throwError(state, 'duplicated mapping key'); } // used for this specific key only because Object.defineProperty is slow @@ -66962,7 +73863,7 @@ function storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, va return _result; } -function readLineBreak$1(state) { +function readLineBreak(state) { var ch; ch = state.input.charCodeAt(state.position); @@ -66975,7 +73876,7 @@ function readLineBreak$1(state) { state.position++; } } else { - throwError$2(state, 'a line break is expected'); + throwError(state, 'a line break is expected'); } state.line += 1; @@ -66983,12 +73884,12 @@ function readLineBreak$1(state) { state.firstTabInLine = -1; } -function skipSeparationSpace$1(state, allowComments, checkIndent) { +function skipSeparationSpace(state, allowComments, checkIndent) { var lineBreaks = 0, ch = state.input.charCodeAt(state.position); while (ch !== 0) { - while (is_WHITE_SPACE$1(ch)) { + while (is_WHITE_SPACE(ch)) { if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { state.firstTabInLine = state.position; } @@ -67001,8 +73902,8 @@ function skipSeparationSpace$1(state, allowComments, checkIndent) { } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); } - if (is_EOL$1(ch)) { - readLineBreak$1(state); + if (is_EOL(ch)) { + readLineBreak(state); ch = state.input.charCodeAt(state.position); lineBreaks++; @@ -67018,13 +73919,13 @@ function skipSeparationSpace$1(state, allowComments, checkIndent) { } if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning$1(state, 'deficient indentation'); + throwWarning(state, 'deficient indentation'); } return lineBreaks; } -function testDocumentSeparator$1(state) { +function testDocumentSeparator(state) { var _position = state.position, ch; @@ -67040,7 +73941,7 @@ function testDocumentSeparator$1(state) { ch = state.input.charCodeAt(_position); - if (ch === 0 || is_WS_OR_EOL$1(ch)) { + if (ch === 0 || is_WS_OR_EOL(ch)) { return true; } } @@ -67048,16 +73949,16 @@ function testDocumentSeparator$1(state) { return false; } -function writeFoldedLines$1(state, count) { +function writeFoldedLines(state, count) { if (count === 1) { state.result += ' '; } else if (count > 1) { - state.result += common$3.repeat('\n', count - 1); + state.result += common.repeat('\n', count - 1); } } -function readPlainScalar$1(state, nodeIndent, withinFlowCollection) { +function readPlainScalar(state, nodeIndent, withinFlowCollection) { var preceding, following, captureStart, @@ -67072,8 +73973,8 @@ function readPlainScalar$1(state, nodeIndent, withinFlowCollection) { ch = state.input.charCodeAt(state.position); - if (is_WS_OR_EOL$1(ch) || - is_FLOW_INDICATOR$1(ch) || + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || ch === 0x23/* # */ || ch === 0x26/* & */ || ch === 0x2A/* * */ || @@ -67091,8 +73992,8 @@ function readPlainScalar$1(state, nodeIndent, withinFlowCollection) { if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL$1(following) || - withinFlowCollection && is_FLOW_INDICATOR$1(following)) { + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { return false; } } @@ -67106,27 +74007,27 @@ function readPlainScalar$1(state, nodeIndent, withinFlowCollection) { if (ch === 0x3A/* : */) { following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL$1(following) || - withinFlowCollection && is_FLOW_INDICATOR$1(following)) { + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { break; } } else if (ch === 0x23/* # */) { preceding = state.input.charCodeAt(state.position - 1); - if (is_WS_OR_EOL$1(preceding)) { + if (is_WS_OR_EOL(preceding)) { break; } - } else if ((state.position === state.lineStart && testDocumentSeparator$1(state)) || - withinFlowCollection && is_FLOW_INDICATOR$1(ch)) { + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { break; - } else if (is_EOL$1(ch)) { + } else if (is_EOL(ch)) { _line = state.line; _lineStart = state.lineStart; _lineIndent = state.lineIndent; - skipSeparationSpace$1(state, false, -1); + skipSeparationSpace(state, false, -1); if (state.lineIndent >= nodeIndent) { hasPendingContent = true; @@ -67142,20 +74043,20 @@ function readPlainScalar$1(state, nodeIndent, withinFlowCollection) { } if (hasPendingContent) { - captureSegment$1(state, captureStart, captureEnd, false); - writeFoldedLines$1(state, state.line - _line); + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); captureStart = captureEnd = state.position; hasPendingContent = false; } - if (!is_WHITE_SPACE$1(ch)) { + if (!is_WHITE_SPACE(ch)) { captureEnd = state.position + 1; } ch = state.input.charCodeAt(++state.position); } - captureSegment$1(state, captureStart, captureEnd, false); + captureSegment(state, captureStart, captureEnd, false); if (state.result) { return true; @@ -67166,7 +74067,7 @@ function readPlainScalar$1(state, nodeIndent, withinFlowCollection) { return false; } -function readSingleQuotedScalar$1(state, nodeIndent) { +function readSingleQuotedScalar(state, nodeIndent) { var ch, captureStart, captureEnd; @@ -67183,7 +74084,7 @@ function readSingleQuotedScalar$1(state, nodeIndent) { while ((ch = state.input.charCodeAt(state.position)) !== 0) { if (ch === 0x27/* ' */) { - captureSegment$1(state, captureStart, state.position, true); + captureSegment(state, captureStart, state.position, true); ch = state.input.charCodeAt(++state.position); if (ch === 0x27/* ' */) { @@ -67194,13 +74095,13 @@ function readSingleQuotedScalar$1(state, nodeIndent) { return true; } - } else if (is_EOL$1(ch)) { - captureSegment$1(state, captureStart, captureEnd, true); - writeFoldedLines$1(state, skipSeparationSpace$1(state, false, nodeIndent)); + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator$1(state)) { - throwError$2(state, 'unexpected end of the document within a single quoted scalar'); + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); } else { state.position++; @@ -67208,10 +74109,10 @@ function readSingleQuotedScalar$1(state, nodeIndent) { } } - throwError$2(state, 'unexpected end of the stream within a single quoted scalar'); + throwError(state, 'unexpected end of the stream within a single quoted scalar'); } -function readDoubleQuotedScalar$1(state, nodeIndent) { +function readDoubleQuotedScalar(state, nodeIndent) { var captureStart, captureEnd, hexLength, @@ -67232,54 +74133,54 @@ function readDoubleQuotedScalar$1(state, nodeIndent) { while ((ch = state.input.charCodeAt(state.position)) !== 0) { if (ch === 0x22/* " */) { - captureSegment$1(state, captureStart, state.position, true); + captureSegment(state, captureStart, state.position, true); state.position++; return true; } else if (ch === 0x5C/* \ */) { - captureSegment$1(state, captureStart, state.position, true); + captureSegment(state, captureStart, state.position, true); ch = state.input.charCodeAt(++state.position); - if (is_EOL$1(ch)) { - skipSeparationSpace$1(state, false, nodeIndent); + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); // TODO: rework to inline fn with no type cast? - } else if (ch < 256 && simpleEscapeCheck$1[ch]) { - state.result += simpleEscapeMap$1[ch]; + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; state.position++; - } else if ((tmp = escapedHexLen$1(ch)) > 0) { + } else if ((tmp = escapedHexLen(ch)) > 0) { hexLength = tmp; hexResult = 0; for (; hexLength > 0; hexLength--) { ch = state.input.charCodeAt(++state.position); - if ((tmp = fromHexCode$1(ch)) >= 0) { + if ((tmp = fromHexCode(ch)) >= 0) { hexResult = (hexResult << 4) + tmp; } else { - throwError$2(state, 'expected hexadecimal character'); + throwError(state, 'expected hexadecimal character'); } } - state.result += charFromCodepoint$1(hexResult); + state.result += charFromCodepoint(hexResult); state.position++; } else { - throwError$2(state, 'unknown escape sequence'); + throwError(state, 'unknown escape sequence'); } captureStart = captureEnd = state.position; - } else if (is_EOL$1(ch)) { - captureSegment$1(state, captureStart, captureEnd, true); - writeFoldedLines$1(state, skipSeparationSpace$1(state, false, nodeIndent)); + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator$1(state)) { - throwError$2(state, 'unexpected end of the document within a double quoted scalar'); + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); } else { state.position++; @@ -67287,10 +74188,10 @@ function readDoubleQuotedScalar$1(state, nodeIndent) { } } - throwError$2(state, 'unexpected end of the stream within a double quoted scalar'); + throwError(state, 'unexpected end of the stream within a double quoted scalar'); } -function readFlowCollection$1(state, nodeIndent) { +function readFlowCollection(state, nodeIndent) { var readNext = true, _line, _lineStart, @@ -67330,7 +74231,7 @@ function readFlowCollection$1(state, nodeIndent) { ch = state.input.charCodeAt(++state.position); while (ch !== 0) { - skipSeparationSpace$1(state, true, nodeIndent); + skipSeparationSpace(state, true, nodeIndent); ch = state.input.charCodeAt(state.position); @@ -67342,10 +74243,10 @@ function readFlowCollection$1(state, nodeIndent) { state.result = _result; return true; } else if (!readNext) { - throwError$2(state, 'missed comma between flow collection entries'); + throwError(state, 'missed comma between flow collection entries'); } else if (ch === 0x2C/* , */) { // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 - throwError$2(state, "expected the node content, but found ','"); + throwError(state, "expected the node content, but found ','"); } keyTag = keyNode = valueNode = null; @@ -67354,40 +74255,40 @@ function readFlowCollection$1(state, nodeIndent) { if (ch === 0x3F/* ? */) { following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL$1(following)) { + if (is_WS_OR_EOL(following)) { isPair = isExplicitPair = true; state.position++; - skipSeparationSpace$1(state, true, nodeIndent); + skipSeparationSpace(state, true, nodeIndent); } } _line = state.line; // Save the current line. _lineStart = state.lineStart; _pos = state.position; - composeNode$1(state, nodeIndent, CONTEXT_FLOW_IN$1, false, true); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); keyTag = state.tag; keyNode = state.result; - skipSeparationSpace$1(state, true, nodeIndent); + skipSeparationSpace(state, true, nodeIndent); ch = state.input.charCodeAt(state.position); if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { isPair = true; ch = state.input.charCodeAt(++state.position); - skipSeparationSpace$1(state, true, nodeIndent); - composeNode$1(state, nodeIndent, CONTEXT_FLOW_IN$1, false, true); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); valueNode = state.result; } if (isMapping) { - storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); } else if (isPair) { - _result.push(storeMappingPair$1(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); } else { _result.push(keyNode); } - skipSeparationSpace$1(state, true, nodeIndent); + skipSeparationSpace(state, true, nodeIndent); ch = state.input.charCodeAt(state.position); @@ -67399,13 +74300,13 @@ function readFlowCollection$1(state, nodeIndent) { } } - throwError$2(state, 'unexpected end of the stream within a flow collection'); + throwError(state, 'unexpected end of the stream within a flow collection'); } -function readBlockScalar$1(state, nodeIndent) { +function readBlockScalar(state, nodeIndent) { var captureStart, folding, - chomping = CHOMPING_CLIP$1, + chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, @@ -67431,20 +74332,20 @@ function readBlockScalar$1(state, nodeIndent) { ch = state.input.charCodeAt(++state.position); if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { - if (CHOMPING_CLIP$1 === chomping) { - chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP$1 : CHOMPING_STRIP$1; + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; } else { - throwError$2(state, 'repeat of a chomping mode identifier'); + throwError(state, 'repeat of a chomping mode identifier'); } - } else if ((tmp = fromDecimalCode$1(ch)) >= 0) { + } else if ((tmp = fromDecimalCode(ch)) >= 0) { if (tmp === 0) { - throwError$2(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); } else if (!detectedIndent) { textIndent = nodeIndent + tmp - 1; detectedIndent = true; } else { - throwError$2(state, 'repeat of an indentation width identifier'); + throwError(state, 'repeat of an indentation width identifier'); } } else { @@ -67452,18 +74353,18 @@ function readBlockScalar$1(state, nodeIndent) { } } - if (is_WHITE_SPACE$1(ch)) { + if (is_WHITE_SPACE(ch)) { do { ch = state.input.charCodeAt(++state.position); } - while (is_WHITE_SPACE$1(ch)); + while (is_WHITE_SPACE(ch)); if (ch === 0x23/* # */) { do { ch = state.input.charCodeAt(++state.position); } - while (!is_EOL$1(ch) && (ch !== 0)); + while (!is_EOL(ch) && (ch !== 0)); } } while (ch !== 0) { - readLineBreak$1(state); + readLineBreak(state); state.lineIndent = 0; ch = state.input.charCodeAt(state.position); @@ -67478,7 +74379,7 @@ function readBlockScalar$1(state, nodeIndent) { textIndent = state.lineIndent; } - if (is_EOL$1(ch)) { + if (is_EOL(ch)) { emptyLines++; continue; } @@ -67487,9 +74388,9 @@ function readBlockScalar$1(state, nodeIndent) { if (state.lineIndent < textIndent) { // Perform the chomping. - if (chomping === CHOMPING_KEEP$1) { - state.result += common$3.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP$1) { + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { if (didReadContent) { // i.e. only if the scalar is not empty. state.result += '\n'; } @@ -67503,15 +74404,15 @@ function readBlockScalar$1(state, nodeIndent) { if (folding) { // Lines starting with white space characters (more-indented lines) are not folded. - if (is_WHITE_SPACE$1(ch)) { + if (is_WHITE_SPACE(ch)) { atMoreIndented = true; // except for the first content line (cf. Example 8.1) - state.result += common$3.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); // End of more-indented block. } else if (atMoreIndented) { atMoreIndented = false; - state.result += common$3.repeat('\n', emptyLines + 1); + state.result += common.repeat('\n', emptyLines + 1); // Just one line break - perceive as the same line. } else if (emptyLines === 0) { @@ -67521,13 +74422,13 @@ function readBlockScalar$1(state, nodeIndent) { // Several line breaks - perceive as different lines. } else { - state.result += common$3.repeat('\n', emptyLines); + state.result += common.repeat('\n', emptyLines); } // Literal style: just add exact number of line breaks between content lines. } else { // Keep all line breaks except the header line break. - state.result += common$3.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); } didReadContent = true; @@ -67535,17 +74436,17 @@ function readBlockScalar$1(state, nodeIndent) { emptyLines = 0; captureStart = state.position; - while (!is_EOL$1(ch) && (ch !== 0)) { + while (!is_EOL(ch) && (ch !== 0)) { ch = state.input.charCodeAt(++state.position); } - captureSegment$1(state, captureStart, state.position, false); + captureSegment(state, captureStart, state.position, false); } return true; } -function readBlockSequence$1(state, nodeIndent) { +function readBlockSequence(state, nodeIndent) { var _line, _tag = state.tag, _anchor = state.anchor, @@ -67567,3385 +74468,4562 @@ function readBlockSequence$1(state, nodeIndent) { while (ch !== 0) { if (state.firstTabInLine !== -1) { state.position = state.firstTabInLine; - throwError$2(state, 'tab characters must not be used in indentation'); + throwError(state, 'tab characters must not be used in indentation'); } if (ch !== 0x2D/* - */) { break; } - following = state.input.charCodeAt(state.position + 1); + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; +} + +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _keyLine, + _keyLineStart, + _keyPos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = Object.create(null), + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + + if (ch === 0x3F/* ? */) { + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + // Neither implicit nor explicit notation. + // Reading is done. Go to the epilogue. + break; + } + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (atExplicitKey) { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + } + + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; +} + +function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x21/* ! */) return false; + + if (state.tag !== null) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state, 'tag name is malformed: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if (tagHandle === '!') { + state.tag = '!' + tagName; + + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; +} + +function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x26/* & */) return false; + + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; +} + +function readAlias(state) { + var _position, alias, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x2A/* * */) return false; + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} + +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (indentStatus === 1) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (state.tag === null) { + state.tag = '?'; + } + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + + } else if (state.tag === '?') { + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only automatically assigned to plain scalars. + // + // We only need to check kind conformity in case user explicitly assigns '?' + // tag, for example like this: "! [0]" + // + if (state.result !== null && state.kind !== 'scalar') { + throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + } + + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { + type = state.implicitTypes[typeIndex]; - if (!is_WS_OR_EOL$1(following)) { - break; + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + break; + } } + } else if (state.tag !== '!') { + if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + } else { + // looking for multi type + type = null; + typeList = state.typeMap.multi[state.kind || 'fallback']; - detected = true; - state.position++; - - if (skipSeparationSpace$1(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type = typeList[typeIndex]; + break; + } } } - _line = state.line; - composeNode$1(state, nodeIndent, CONTEXT_BLOCK_IN$1, false, true); - _result.push(state.result); - skipSeparationSpace$1(state, true, -1); + if (!type) { + throwError(state, 'unknown tag !<' + state.tag + '>'); + } - ch = state.input.charCodeAt(state.position); + if (state.result !== null && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError$2(state, 'bad indentation of a sequence entry'); - } else if (state.lineIndent < nodeIndent) { - break; + if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result, state.tag); + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } } } - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'sequence'; - state.result = _result; - return true; + if (state.listener !== null) { + state.listener('close', state); } - return false; + return state.tag !== null || state.anchor !== null || hasContent; } -function readBlockMapping$1(state, nodeIndent, flowIndent) { - var following, - allowCompact, - _line, - _keyLine, - _keyLineStart, - _keyPos, - _tag = state.tag, - _anchor = state.anchor, - _result = {}, - overridableKeys = Object.create(null), - keyTag = null, - keyNode = null, - valueNode = null, - atExplicitKey = false, - detected = false, +function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, ch; - // there is a leading tab before this token, so it can't be a block sequence/mapping; - // it can still be flow sequence/mapping or a scalar - if (state.firstTabInLine !== -1) return false; + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = Object.create(null); + state.anchorMap = Object.create(null); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); + ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - if (!atExplicitKey && state.firstTabInLine !== -1) { - state.position = state.firstTabInLine; - throwError$2(state, 'tab characters must not be used in indentation'); + if (state.lineIndent > 0 || ch !== 0x25/* % */) { + break; } - following = state.input.charCodeAt(state.position + 1); - _line = state.line; // Save the current line. + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL$1(following)) { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } - if (ch === 0x3F/* ? */) { - if (atExplicitKey) { - storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; - detected = true; - atExplicitKey = true; - allowCompact = true; + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. - atExplicitKey = false; - allowCompact = true; + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } - } else { - throwError$2(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; } - state.position += 1; - ch = following; + if (is_EOL(ch)) break; - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // - } else { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; + _position = state.position; - if (!composeNode$1(state, flowIndent, CONTEXT_FLOW_OUT$1, false, true)) { - // Neither implicit nor explicit notation. - // Reading is done. Go to the epilogue. - break; + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); } - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); + directiveArgs.push(state.input.slice(_position, state.position)); + } - while (is_WHITE_SPACE$1(ch)) { - ch = state.input.charCodeAt(++state.position); - } + if (ch !== 0) readLineBreak(state); - if (ch === 0x3A/* : */) { - ch = state.input.charCodeAt(++state.position); + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } - if (!is_WS_OR_EOL$1(ch)) { - throwError$2(state, 'a whitespace character is expected after the key-value separator within a block mapping'); - } + skipSeparationSpace(state, true, -1); - if (atExplicitKey) { - storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.position += 3; + skipSeparationSpace(state, true, -1); - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } - } else if (detected) { - throwError$2(state, 'can not read an implicit mapping pair; a colon is missed'); + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. - } + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } - } else if (detected) { - throwError$2(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + state.documents.push(state.result); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. - } + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); } + return; + } - // - // Common reading code for both explicit and implicit notations. - // - if (state.line === _line || state.lineIndent > nodeIndent) { - if (atExplicitKey) { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; - } + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } +} - if (composeNode$1(state, nodeIndent, CONTEXT_BLOCK_OUT$1, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } - if (!atExplicitKey) { - storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } +function loadDocuments(input, options) { + input = String(input); + options = options || {}; - skipSeparationSpace$1(state, true, -1); - ch = state.input.charCodeAt(state.position); + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; } - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError$2(state, 'bad indentation of a mapping entry'); - } else if (state.lineIndent < nodeIndent) { - break; + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); } } - // - // Epilogue. - // + var state = new State$1(input, options); - // Special case: last mapping's node contains only the key in explicit notation. - if (atExplicitKey) { - storeMappingPair$1(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + var nullpos = input.indexOf('\0'); + + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, 'null byte is not allowed in input'); } - // Expose the resulting mapping. - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'mapping'; - state.result = _result; + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; } - return detected; + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; } -function readTagProperty$1(state) { - var _position, - isVerbatim = false, - isNamed = false, - tagHandle, - tagName, - ch; - ch = state.input.charCodeAt(state.position); +function loadAll$1(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; + } - if (ch !== 0x21/* ! */) return false; + var documents = loadDocuments(input, options); - if (state.tag !== null) { - throwError$2(state, 'duplication of a tag property'); + if (typeof iterator !== 'function') { + return documents; } - ch = state.input.charCodeAt(++state.position); + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} - if (ch === 0x3C/* < */) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - } else if (ch === 0x21/* ! */) { - isNamed = true; - tagHandle = '!!'; - ch = state.input.charCodeAt(++state.position); +function load$1(input, options) { + var documents = loadDocuments(input, options); - } else { - tagHandle = '!'; + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; } + throw new exception('expected a single document in the stream, but found more'); +} - _position = state.position; - if (isVerbatim) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && ch !== 0x3E/* > */); +var loadAll_1 = loadAll$1; +var load_1 = load$1; - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError$2(state, 'unexpected end of the stream within a verbatim tag'); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL$1(ch)) { +var loader = { + loadAll: loadAll_1, + load: load_1 +}; - if (ch === 0x21/* ! */) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); +/*eslint-disable no-use-before-define*/ - if (!PATTERN_TAG_HANDLE$1.test(tagHandle)) { - throwError$2(state, 'named tag handle cannot contain such characters'); - } - isNamed = true; - _position = state.position + 1; - } else { - throwError$2(state, 'tag suffix cannot contain exclamation marks'); - } - } - ch = state.input.charCodeAt(++state.position); - } - tagName = state.input.slice(_position, state.position); - if (PATTERN_FLOW_INDICATORS$1.test(tagName)) { - throwError$2(state, 'tag suffix cannot contain flow indicator characters'); +var _toString = Object.prototype.toString; +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +var CHAR_BOM = 0xFEFF; +var CHAR_TAB = 0x09; /* Tab */ +var CHAR_LINE_FEED = 0x0A; /* LF */ +var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ +var CHAR_SPACE = 0x20; /* Space */ +var CHAR_EXCLAMATION = 0x21; /* ! */ +var CHAR_DOUBLE_QUOTE = 0x22; /* " */ +var CHAR_SHARP = 0x23; /* # */ +var CHAR_PERCENT = 0x25; /* % */ +var CHAR_AMPERSAND = 0x26; /* & */ +var CHAR_SINGLE_QUOTE = 0x27; /* ' */ +var CHAR_ASTERISK = 0x2A; /* * */ +var CHAR_COMMA = 0x2C; /* , */ +var CHAR_MINUS = 0x2D; /* - */ +var CHAR_COLON = 0x3A; /* : */ +var CHAR_EQUALS = 0x3D; /* = */ +var CHAR_GREATER_THAN = 0x3E; /* > */ +var CHAR_QUESTION = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ +var CHAR_VERTICAL_LINE = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + +var ESCAPE_SEQUENCES = {}; + +ESCAPE_SEQUENCES[0x00] = '\\0'; +ESCAPE_SEQUENCES[0x07] = '\\a'; +ESCAPE_SEQUENCES[0x08] = '\\b'; +ESCAPE_SEQUENCES[0x09] = '\\t'; +ESCAPE_SEQUENCES[0x0A] = '\\n'; +ESCAPE_SEQUENCES[0x0B] = '\\v'; +ESCAPE_SEQUENCES[0x0C] = '\\f'; +ESCAPE_SEQUENCES[0x0D] = '\\r'; +ESCAPE_SEQUENCES[0x1B] = '\\e'; +ESCAPE_SEQUENCES[0x22] = '\\"'; +ESCAPE_SEQUENCES[0x5C] = '\\\\'; +ESCAPE_SEQUENCES[0x85] = '\\N'; +ESCAPE_SEQUENCES[0xA0] = '\\_'; +ESCAPE_SEQUENCES[0x2028] = '\\L'; +ESCAPE_SEQUENCES[0x2029] = '\\P'; + +var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' +]; + +var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; + +function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (map === null) return {}; + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); } - } + type = schema.compiledTypeMap['fallback'][tag]; - if (tagName && !PATTERN_TAG_URI$1.test(tagName)) { - throwError$2(state, 'tag name cannot contain such characters: ' + tagName); - } + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } - try { - tagName = decodeURIComponent(tagName); - } catch (err) { - throwError$2(state, 'tag name is malformed: ' + tagName); + result[tag] = style; } - if (isVerbatim) { - state.tag = tagName; - - } else if (_hasOwnProperty$2$1.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; + return result; +} - } else if (tagHandle === '!') { - state.tag = '!' + tagName; +function encodeHex(character) { + var string, handle, length; - } else if (tagHandle === '!!') { - state.tag = 'tag:yaml.org,2002:' + tagName; + string = character.toString(16).toUpperCase(); + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; } else { - throwError$2(state, 'undeclared tag handle "' + tagHandle + '"'); + throw new exception('code point within a string may not be greater than 0xFFFFFFFF'); } - return true; + return '\\' + handle + common.repeat('0', length - string.length) + string; } -function readAnchorProperty$1(state) { - var _position, - ch; - ch = state.input.charCodeAt(state.position); +var QUOTING_TYPE_SINGLE = 1, + QUOTING_TYPE_DOUBLE = 2; - if (ch !== 0x26/* & */) return false; +function State(options) { + this.schema = options['schema'] || _default; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options['forceQuotes'] || false; + this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; +} + +// Indents every line in a string. Empty lines (\n only) are not indented. +function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; - if (state.anchor !== null) { - throwError$2(state, 'duplication of an anchor property'); - } + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } - ch = state.input.charCodeAt(++state.position); - _position = state.position; + if (line.length && line !== '\n') result += ind; - while (ch !== 0 && !is_WS_OR_EOL$1(ch) && !is_FLOW_INDICATOR$1(ch)) { - ch = state.input.charCodeAt(++state.position); + result += line; } - if (state.position === _position) { - throwError$2(state, 'name of an anchor node must contain at least one character'); - } + return result; +} - state.anchor = state.input.slice(_position, state.position); - return true; +function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); } -function readAlias$1(state) { - var _position, alias, - ch; +function testImplicitResolving(state, str) { + var index, length, type; - ch = state.input.charCodeAt(state.position); + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; - if (ch !== 0x2A/* * */) return false; + if (type.resolve(str)) { + return true; + } + } - ch = state.input.charCodeAt(++state.position); - _position = state.position; + return false; +} - while (ch !== 0 && !is_WS_OR_EOL$1(ch) && !is_FLOW_INDICATOR$1(ch)) { - ch = state.input.charCodeAt(++state.position); - } +// [33] s-white ::= s-space | s-tab +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; +} - if (state.position === _position) { - throwError$2(state, 'name of an alias node must contain at least one character'); - } +// Returns true if the character can be printed without escaping. +// From YAML 1.2: "any allowed characters known to be non-printable +// should also be escaped. [However,] This isn’t mandatory" +// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. +function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) + || (0x10000 <= c && c <= 0x10FFFF); +} - alias = state.input.slice(_position, state.position); +// [34] ns-char ::= nb-char - s-white +// [27] nb-char ::= c-printable - b-char - c-byte-order-mark +// [26] b-char ::= b-line-feed | b-carriage-return +// Including s-white (for some reason, examples doesn't match specs in this aspect) +// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark +function isNsCharOrWhitespace(c) { + return isPrintable(c) + && c !== CHAR_BOM + // - b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; +} - if (!_hasOwnProperty$2$1.call(state.anchorMap, alias)) { - throwError$2(state, 'unidentified alias "' + alias + '"'); - } +// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out +// c = flow-in ⇒ ns-plain-safe-in +// c = block-key ⇒ ns-plain-safe-out +// c = flow-key ⇒ ns-plain-safe-in +// [128] ns-plain-safe-out ::= ns-char +// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator +// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) +// | ( /* An ns-char preceding */ “#” ) +// | ( “:” /* Followed by an ns-plain-safe(c) */ ) +function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + inblock ? // c = flow-in + cIsNsCharOrWhitespace + : cIsNsCharOrWhitespace + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + ) + // ns-plain-char + && c !== CHAR_SHARP // false on '#' + && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' + || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' + || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' +} - state.result = state.anchorMap[alias]; - skipSeparationSpace$1(state, true, -1); - return true; +// Simplified test for values allowed as the first character in plain style. +function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part + return isPrintable(c) && c !== CHAR_BOM + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | “%” | “@” | “`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; } -function composeNode$1(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, - allowBlockScalars, - allowBlockCollections, - indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 0xDC00 && second <= 0xDFFF) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; + } } + return first; +} - state.tag = null; - state.anchor = null; - state.kind = null; - state.result = null; +// Determines whether block indentation indicator is required. +function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); +} - allowBlockStyles = allowBlockScalars = allowBlockCollections = - CONTEXT_BLOCK_OUT$1 === nodeContext || - CONTEXT_BLOCK_IN$1 === nodeContext; +var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; - if (allowToSeek) { - if (skipSeparationSpace$1(state, true, -1)) { - atNewLine = true; +// Determines which scalar styles are possible and returns the preferred style. +// lineWidth = -1 => no limit. +// Pre-conditions: str.length > 0. +// Post-conditions: +// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. +// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). +// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). +function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, + testAmbiguousType, quotingType, forceQuotes, inblock) { - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(codePointAt(string, 0)) + && isPlainSafeLast(codePointAt(string, string.length - 1)); + + if (singleLineOnly || forceQuotes) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; } - } - - if (indentStatus === 1) { - while (readTagProperty$1(state) || readAnchorProperty$1(state)) { - if (skipSeparationSpace$1(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; } - } else { - allowBlockCollections = false; + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); } - - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; +} - if (indentStatus === 1 || CONTEXT_BLOCK_OUT$1 === nodeContext) { - if (CONTEXT_FLOW_IN$1 === nodeContext || CONTEXT_FLOW_OUT$1 === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; +// Note: line breaking/folding is implemented for only the folded style. +// NB. We drop the last trailing newline (if any) of a returned block scalar +// since the dumper adds its own newline. This always works: +// • No ending newline => unaffected; already using strip "-" chomping. +// • Ending newline => removed then restored. +// Importantly, this keeps the "+" chomp indicator from gaining an extra line. +function writeScalar(state, string, level, iskey, inblock) { + state.dump = (function () { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; } - - blockIndent = state.position - state.lineStart; - - if (indentStatus === 1) { - if (allowBlockCollections && - (readBlockSequence$1(state, blockIndent) || - readBlockMapping$1(state, blockIndent, flowIndent)) || - readFlowCollection$1(state, flowIndent)) { - hasContent = true; - } else { - if ((allowBlockScalars && readBlockScalar$1(state, flowIndent)) || - readSingleQuotedScalar$1(state, flowIndent) || - readDoubleQuotedScalar$1(state, flowIndent)) { - hasContent = true; - - } else if (readAlias$1(state)) { - hasContent = true; - - if (state.tag !== null || state.anchor !== null) { - throwError$2(state, 'alias node should not have any properties'); - } - - } else if (readPlainScalar$1(state, flowIndent, CONTEXT_FLOW_IN$1 === nodeContext)) { - hasContent = true; - - if (state.tag === null) { - state.tag = '?'; - } - } - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); } - } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && readBlockSequence$1(state, blockIndent); } - } - if (state.tag === null) { - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); - } else if (state.tag === '?') { - // Implicit resolving is not allowed for non-scalar types, and '?' - // non-specific tag is only automatically assigned to plain scalars. - // - // We only need to check kind conformity in case user explicitly assigns '?' - // tag, for example like this: "! [0]" - // - if (state.result !== null && state.kind !== 'scalar') { - throwError$2(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); } - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type = state.implicitTypes[typeIndex]; - - if (type.resolve(state.result)) { // `state.result` updated in resolver if matched - state.result = type.construct(state.result); - state.tag = type.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - break; - } - } - } else if (state.tag !== '!') { - if (_hasOwnProperty$2$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) { - type = state.typeMap[state.kind || 'fallback'][state.tag]; - } else { - // looking for multi type - type = null; - typeList = state.typeMap.multi[state.kind || 'fallback']; + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, + testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { - for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { - if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { - type = typeList[typeIndex]; - break; - } - } + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string) + '"'; + default: + throw new exception('impossible error: invalid scalar style'); } + }()); +} - if (!type) { - throwError$2(state, 'unknown tag !<' + state.tag + '>'); - } +// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. +function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; - if (state.result !== null && type.kind !== state.kind) { - throwError$2(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); - } + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); - if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched - throwError$2(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); - } else { - state.result = type.construct(state.result, state.tag); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } + return indentIndicator + chomp + '\n'; +} - if (state.listener !== null) { - state.listener('close', state); - } - return state.tag !== null || state.anchor !== null || hasContent; +// (See the note for writeScalar.) +function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; } -function readDocument$1(state) { - var documentStart = state.position, - _position, - directiveName, - directiveArgs, - hasDirectives = false, - ch; +// Note: a long line without a suitable break point will exceed the width limit. +// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. +function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlines— + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = Object.create(null); - state.anchorMap = Object.create(null); + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace$1(state, true, -1); + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; + } - ch = state.input.charCodeAt(state.position); + return result; +} - if (state.lineIndent > 0 || ch !== 0x25/* % */) { - break; - } +// Greedy line breaking. +// Picks the longest line under the limit each time, +// otherwise settles for the shortest line over the limit. +// NB. More-indented lines *cannot* be folded, as that would add an extra \n. +function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; - while (ch !== 0 && !is_WS_OR_EOL$1(ch)) { - ch = state.input.charCodeAt(++state.position); + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 } + curr = next; + } - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); + } + + return result.slice(1); // drop extra \n joiner +} - if (directiveName.length < 1) { - throwError$2(state, 'directive name must not be less than one character in length'); - } +// Escapes a double-quoted string. +function escapeString(string) { + var result = ''; + var char = 0; + var escapeSeq; - while (ch !== 0) { - while (is_WHITE_SPACE$1(ch)) { - ch = state.input.charCodeAt(++state.position); - } + for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + escapeSeq = ESCAPE_SEQUENCES[char]; - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && !is_EOL$1(ch)); - break; - } + if (!escapeSeq && isPrintable(char)) { + result += string[i]; + if (char >= 0x10000) result += string[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } + } - if (is_EOL$1(ch)) break; + return result; +} - _position = state.position; +function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length, + value; - while (ch !== 0 && !is_WS_OR_EOL$1(ch)) { - ch = state.input.charCodeAt(++state.position); - } + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; - directiveArgs.push(state.input.slice(_position, state.position)); + if (state.replacer) { + value = state.replacer.call(object, String(index), value); } - if (ch !== 0) readLineBreak$1(state); + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level, value, false, false) || + (typeof value === 'undefined' && + writeNode(state, level, null, false, false))) { - if (_hasOwnProperty$2$1.call(directiveHandlers$1, directiveName)) { - directiveHandlers$1[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning$1(state, 'unknown document directive "' + directiveName + '"'); + if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; } } - skipSeparationSpace$1(state, true, -1); + state.tag = _tag; + state.dump = '[' + _result + ']'; +} - if (state.lineIndent === 0 && - state.input.charCodeAt(state.position) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { - state.position += 3; - skipSeparationSpace$1(state, true, -1); +function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length, + value; - } else if (hasDirectives) { - throwError$2(state, 'directives end mark is expected'); - } + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; - composeNode$1(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT$1, false, true); - skipSeparationSpace$1(state, true, -1); + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } - if (state.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS$1.test(state.input.slice(documentStart, state.position))) { - throwWarning$1(state, 'non-ASCII line breaks are interpreted as content'); - } + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level + 1, value, true, true, false, true) || + (typeof value === 'undefined' && + writeNode(state, level + 1, null, true, true, false, true))) { - state.documents.push(state.result); + if (!compact || _result !== '') { + _result += generateNextLine(state, level); + } - if (state.position === state.lineStart && testDocumentSeparator$1(state)) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; + } - if (state.input.charCodeAt(state.position) === 0x2E/* . */) { - state.position += 3; - skipSeparationSpace$1(state, true, -1); + _result += state.dump; } - return; } - if (state.position < (state.length - 1)) { - throwError$2(state, 'end of the stream or a document separator is expected'); - } else { - return; - } + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. } +function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; -function loadDocuments$1(input, options) { - input = String(input); - options = options || {}; + for (index = 0, length = objectKeyList.length; index < length; index += 1) { - if (input.length !== 0) { + pairBuffer = ''; + if (_result !== '') pairBuffer += ', '; - // Add tailing `\n` if not exists - if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && - input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { - input += '\n'; - } + if (state.condenseFlow) pairBuffer += '"'; - // Strip BOM - if (input.charCodeAt(0) === 0xFEFF) { - input = input.slice(1); + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); } - } - var state = new State$2(input, options); + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } - var nullpos = input.indexOf('\0'); + if (state.dump.length > 1024) pairBuffer += '? '; - if (nullpos !== -1) { - state.position = nullpos; - throwError$2(state, 'null byte is not allowed in input'); - } + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); - // Use 0 as string terminator. That significantly simplifies bounds check. - state.input += '\0'; + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } - while (state.input.charCodeAt(state.position) === 0x20/* Space */) { - state.lineIndent += 1; - state.position += 1; - } + pairBuffer += state.dump; - while (state.position < (state.length - 1)) { - readDocument$1(state); + // Both key and value are valid. + _result += pairBuffer; } - return state.documents; + state.tag = _tag; + state.dump = '{' + _result + '}'; } +function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; -function loadAll$2(input, iterator, options) { - if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { - options = iterator; - iterator = null; + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new exception('sortKeys must be a boolean or a function'); } - var documents = loadDocuments$1(input, options); + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; - if (typeof iterator !== 'function') { - return documents; - } + if (!compact || _result !== '') { + pairBuffer += generateNextLine(state, level); + } - for (var index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } -function load$3(input, options) { - var documents = loadDocuments$1(input, options); + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } - if (documents.length === 0) { - /*eslint-disable no-undefined*/ - return undefined; - } else if (documents.length === 1) { - return documents[0]; - } - throw new exception$1('expected a single document in the stream, but found more'); -} + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } -var loadAll_1$1 = loadAll$2; -var load_1$1 = load$3; + pairBuffer += state.dump; -var loader$1 = { - loadAll: loadAll_1$1, - load: load_1$1 -}; + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } -/*eslint-disable no-use-before-define*/ + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + pairBuffer += state.dump; + // Both key and value are valid. + _result += pairBuffer; + } + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. +} -var _toString$2$1 = Object.prototype.toString; -var _hasOwnProperty$3$1 = Object.prototype.hasOwnProperty; +function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; -var CHAR_BOM = 0xFEFF; -var CHAR_TAB$1 = 0x09; /* Tab */ -var CHAR_LINE_FEED$1 = 0x0A; /* LF */ -var CHAR_CARRIAGE_RETURN$1 = 0x0D; /* CR */ -var CHAR_SPACE$1 = 0x20; /* Space */ -var CHAR_EXCLAMATION$1 = 0x21; /* ! */ -var CHAR_DOUBLE_QUOTE$2 = 0x22; /* " */ -var CHAR_SHARP$1 = 0x23; /* # */ -var CHAR_PERCENT$1 = 0x25; /* % */ -var CHAR_AMPERSAND$1 = 0x26; /* & */ -var CHAR_SINGLE_QUOTE$2 = 0x27; /* ' */ -var CHAR_ASTERISK$2 = 0x2A; /* * */ -var CHAR_COMMA$3 = 0x2C; /* , */ -var CHAR_MINUS$1 = 0x2D; /* - */ -var CHAR_COLON$1 = 0x3A; /* : */ -var CHAR_EQUALS$1 = 0x3D; /* = */ -var CHAR_GREATER_THAN$1 = 0x3E; /* > */ -var CHAR_QUESTION$1 = 0x3F; /* ? */ -var CHAR_COMMERCIAL_AT$1 = 0x40; /* @ */ -var CHAR_LEFT_SQUARE_BRACKET$3 = 0x5B; /* [ */ -var CHAR_RIGHT_SQUARE_BRACKET$3 = 0x5D; /* ] */ -var CHAR_GRAVE_ACCENT$1 = 0x60; /* ` */ -var CHAR_LEFT_CURLY_BRACKET$1 = 0x7B; /* { */ -var CHAR_VERTICAL_LINE$1 = 0x7C; /* | */ -var CHAR_RIGHT_CURLY_BRACKET$1 = 0x7D; /* } */ + typeList = explicit ? state.explicitTypes : state.implicitTypes; -var ESCAPE_SEQUENCES$1 = {}; + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; -ESCAPE_SEQUENCES$1[0x00] = '\\0'; -ESCAPE_SEQUENCES$1[0x07] = '\\a'; -ESCAPE_SEQUENCES$1[0x08] = '\\b'; -ESCAPE_SEQUENCES$1[0x09] = '\\t'; -ESCAPE_SEQUENCES$1[0x0A] = '\\n'; -ESCAPE_SEQUENCES$1[0x0B] = '\\v'; -ESCAPE_SEQUENCES$1[0x0C] = '\\f'; -ESCAPE_SEQUENCES$1[0x0D] = '\\r'; -ESCAPE_SEQUENCES$1[0x1B] = '\\e'; -ESCAPE_SEQUENCES$1[0x22] = '\\"'; -ESCAPE_SEQUENCES$1[0x5C] = '\\\\'; -ESCAPE_SEQUENCES$1[0x85] = '\\N'; -ESCAPE_SEQUENCES$1[0xA0] = '\\_'; -ESCAPE_SEQUENCES$1[0x2028] = '\\L'; -ESCAPE_SEQUENCES$1[0x2029] = '\\P'; + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { -var DEPRECATED_BOOLEANS_SYNTAX$1 = [ - 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', - 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' -]; + if (explicit) { + if (type.multi && type.representName) { + state.tag = type.representName(object); + } else { + state.tag = type.tag; + } + } else { + state.tag = '?'; + } -var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; -function compileStyleMap$1(schema, map) { - var result, keys, index, length, tag, style, type; + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } - if (map === null) return {}; + state.dump = _result; + } - result = {}; - keys = Object.keys(map); + return true; + } + } - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map[tag]); + return false; +} - if (tag.slice(0, 2) === '!!') { - tag = 'tag:yaml.org,2002:' + tag.slice(2); - } - type = schema.compiledTypeMap['fallback'][tag]; +// Serializes `object` and writes it to global `result`. +// Returns true on success, or false on invalid object. +// +function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; - if (type && _hasOwnProperty$3$1.call(type.styleAliases, style)) { - style = type.styleAliases[style]; - } + if (!detectType(state, object, false)) { + detectType(state, object, true); + } - result[tag] = style; + var type = _toString.call(state.dump); + var inblock = block; + var tagStr; + + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); } - return result; -} + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; -function encodeHex$1(character) { - var string, handle, length; + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } - string = character.toString(16).toUpperCase(); + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; + } - if (character <= 0xFF) { - handle = 'x'; - length = 2; - } else if (character <= 0xFFFF) { - handle = 'u'; - length = 4; - } else if (character <= 0xFFFFFFFF) { - handle = 'U'; - length = 8; + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; } else { - throw new exception$1('code point within a string may not be greater than 0xFFFFFFFF'); - } + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + if (block && (state.dump.length !== 0)) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey, inblock); + } + } else if (type === '[object Undefined]') { + return false; + } else { + if (state.skipInvalid) return false; + throw new exception('unacceptable kind of an object to dump ' + type); + } - return '\\' + handle + common$3.repeat('0', length - string.length) + string; -} + if (state.tag !== null && state.tag !== '?') { + // Need to encode all characters except those allowed by the spec: + // + // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ + // [36] ns-hex-digit ::= ns-dec-digit + // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ + // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ + // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” + // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” + // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” + // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” + // + // Also need to encode '!' because it has special meaning (end of tag prefix). + // + tagStr = encodeURI( + state.tag[0] === '!' ? state.tag.slice(1) : state.tag + ).replace(/!/g, '%21'); + if (state.tag[0] === '!') { + tagStr = '!' + tagStr; + } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { + tagStr = '!!' + tagStr.slice(18); + } else { + tagStr = '!<' + tagStr + '>'; + } -var QUOTING_TYPE_SINGLE = 1, - QUOTING_TYPE_DOUBLE = 2; + state.dump = tagStr + ' ' + state.dump; + } + } -function State$1$1(options) { - this.schema = options['schema'] || _default$8; - this.indent = Math.max(1, (options['indent'] || 2)); - this.noArrayIndent = options['noArrayIndent'] || false; - this.skipInvalid = options['skipInvalid'] || false; - this.flowLevel = (common$3.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); - this.styleMap = compileStyleMap$1(this.schema, options['styles'] || null); - this.sortKeys = options['sortKeys'] || false; - this.lineWidth = options['lineWidth'] || 80; - this.noRefs = options['noRefs'] || false; - this.noCompatMode = options['noCompatMode'] || false; - this.condenseFlow = options['condenseFlow'] || false; - this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; - this.forceQuotes = options['forceQuotes'] || false; - this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; + return true; +} - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; +function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; - this.tag = null; - this.result = ''; + inspectNode(object, objects, duplicatesIndexes); - this.duplicates = []; - this.usedDuplicates = null; + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); } -// Indents every line in a string. Empty lines (\n only) are not indented. -function indentString$1(string, spaces) { - var ind = common$3.repeat(' ', spaces), - position = 0, - next = -1, - result = '', - line, - length = string.length; +function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; - while (position < length) { - next = string.indexOf('\n', position); - if (next === -1) { - line = string.slice(position); - position = length; + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } } else { - line = string.slice(position, next + 1); - position = next + 1; + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } } - - if (line.length && line !== '\n') result += ind; - - result += line; } - - return result; } -function generateNextLine$1(state, level) { - return '\n' + common$3.repeat(' ', state.indent * level); -} +function dump$1(input, options) { + options = options || {}; -function testImplicitResolving$1(state, str) { - var index, length, type; + var state = new State(options); - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type = state.implicitTypes[index]; + if (!state.noRefs) getDuplicateReferences(input, state); - if (type.resolve(str)) { - return true; - } - } + var value = input; - return false; -} + if (state.replacer) { + value = state.replacer.call({ '': value }, '', value); + } -// [33] s-white ::= s-space | s-tab -function isWhitespace$1(c) { - return c === CHAR_SPACE$1 || c === CHAR_TAB$1; -} + if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; -// Returns true if the character can be printed without escaping. -// From YAML 1.2: "any allowed characters known to be non-printable -// should also be escaped. [However,] This isn’t mandatory" -// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. -function isPrintable$1(c) { - return (0x00020 <= c && c <= 0x00007E) - || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) - || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) - || (0x10000 <= c && c <= 0x10FFFF); + return ''; } -// [34] ns-char ::= nb-char - s-white -// [27] nb-char ::= c-printable - b-char - c-byte-order-mark -// [26] b-char ::= b-line-feed | b-carriage-return -// Including s-white (for some reason, examples doesn't match specs in this aspect) -// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark -function isNsCharOrWhitespace(c) { - return isPrintable$1(c) - && c !== CHAR_BOM - // - b-char - && c !== CHAR_CARRIAGE_RETURN$1 - && c !== CHAR_LINE_FEED$1; -} +var dump_1 = dump$1; -// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out -// c = flow-in ⇒ ns-plain-safe-in -// c = block-key ⇒ ns-plain-safe-out -// c = flow-key ⇒ ns-plain-safe-in -// [128] ns-plain-safe-out ::= ns-char -// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator -// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) -// | ( /* An ns-char preceding */ “#” ) -// | ( “:” /* Followed by an ns-plain-safe(c) */ ) -function isPlainSafe$1(c, prev, inblock) { - var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); - var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace$1(c); - return ( - // ns-plain-safe - inblock ? // c = flow-in - cIsNsCharOrWhitespace - : cIsNsCharOrWhitespace - // - c-flow-indicator - && c !== CHAR_COMMA$3 - && c !== CHAR_LEFT_SQUARE_BRACKET$3 - && c !== CHAR_RIGHT_SQUARE_BRACKET$3 - && c !== CHAR_LEFT_CURLY_BRACKET$1 - && c !== CHAR_RIGHT_CURLY_BRACKET$1 - ) - // ns-plain-char - && c !== CHAR_SHARP$1 // false on '#' - && !(prev === CHAR_COLON$1 && !cIsNsChar) // false on ': ' - || (isNsCharOrWhitespace(prev) && !isWhitespace$1(prev) && c === CHAR_SHARP$1) // change to true on '[^ ]#' - || (prev === CHAR_COLON$1 && cIsNsChar); // change to true on ':[^ ]' -} +var dumper = { + dump: dump_1 +}; -// Simplified test for values allowed as the first character in plain style. -function isPlainSafeFirst$1(c) { - // Uses a subset of ns-char - c-indicator - // where ns-char = nb-char - s-white. - // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part - return isPrintable$1(c) && c !== CHAR_BOM - && !isWhitespace$1(c) // - s-white - // - (c-indicator ::= - // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” - && c !== CHAR_MINUS$1 - && c !== CHAR_QUESTION$1 - && c !== CHAR_COLON$1 - && c !== CHAR_COMMA$3 - && c !== CHAR_LEFT_SQUARE_BRACKET$3 - && c !== CHAR_RIGHT_SQUARE_BRACKET$3 - && c !== CHAR_LEFT_CURLY_BRACKET$1 - && c !== CHAR_RIGHT_CURLY_BRACKET$1 - // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” - && c !== CHAR_SHARP$1 - && c !== CHAR_AMPERSAND$1 - && c !== CHAR_ASTERISK$2 - && c !== CHAR_EXCLAMATION$1 - && c !== CHAR_VERTICAL_LINE$1 - && c !== CHAR_EQUALS$1 - && c !== CHAR_GREATER_THAN$1 - && c !== CHAR_SINGLE_QUOTE$2 - && c !== CHAR_DOUBLE_QUOTE$2 - // | “%” | “@” | “`”) - && c !== CHAR_PERCENT$1 - && c !== CHAR_COMMERCIAL_AT$1 - && c !== CHAR_GRAVE_ACCENT$1; +function renamed(from, to) { + return function () { + throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + + 'Use yaml.' + to + ' instead, which is now safe by default.'); + }; } -// Simplified test for values allowed as the last character in plain style. -function isPlainSafeLast(c) { - // just not whitespace or colon, it will be checked to be plain character later - return !isWhitespace$1(c) && c !== CHAR_COLON$1; -} -// Same as 'string'.codePointAt(pos), but works in older browsers. -function codePointAt(string, pos) { - var first = string.charCodeAt(pos), second; - if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { - second = string.charCodeAt(pos + 1); - if (second >= 0xDC00 && second <= 0xDFFF) { - // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - } - } - return first; -} +var Type = type; +var Schema = schema; +var FAILSAFE_SCHEMA = failsafe; +var JSON_SCHEMA = json; +var CORE_SCHEMA = core; +var DEFAULT_SCHEMA = _default; +var load = loader.load; +var loadAll = loader.loadAll; +var dump = dumper.dump; +var YAMLException = exception; + +// Re-export all types in case user wants to create custom schema +var types = { + binary: binary, + float: float, + map: map, + null: _null, + pairs: pairs, + set: set, + timestamp: timestamp, + bool: bool, + int: int, + merge: merge, + omap: omap, + seq: seq, + str: str +}; -// Determines whether block indentation indicator is required. -function needIndentIndicator$1(string) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); -} +// Removed functions from JS-YAML 3.0.x +var safeLoad = renamed('safeLoad', 'load'); +var safeLoadAll = renamed('safeLoadAll', 'loadAll'); +var safeDump = renamed('safeDump', 'dump'); -var STYLE_PLAIN$1 = 1, - STYLE_SINGLE$1 = 2, - STYLE_LITERAL$1 = 3, - STYLE_FOLDED$1 = 4, - STYLE_DOUBLE$1 = 5; +var jsYaml = { + Type: Type, + Schema: Schema, + FAILSAFE_SCHEMA: FAILSAFE_SCHEMA, + JSON_SCHEMA: JSON_SCHEMA, + CORE_SCHEMA: CORE_SCHEMA, + DEFAULT_SCHEMA: DEFAULT_SCHEMA, + load: load, + loadAll: loadAll, + dump: dump, + YAMLException: YAMLException, + types: types, + safeLoad: safeLoad, + safeLoadAll: safeLoadAll, + safeDump: safeDump +}; -// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). -function chooseScalarStyle$1(string, singleLineOnly, indentPerLevel, lineWidth, - testAmbiguousType, quotingType, forceQuotes, inblock) { +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * + * @typedef {string} Type + * @typedef {Object} Props + * + * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test + */ - var i; - var char = 0; - var prevChar = null; - var hasLineBreak = false; - var hasFoldableLine = false; // only checked if shouldTrackWidth - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; // count the first line correctly - var plain = isPlainSafeFirst$1(codePointAt(string, 0)) - && isPlainSafeLast(codePointAt(string, string.length - 1)); +const convert$8 = + /** + * @type {( + * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & + * ((test?: Test) => AssertAnything) + * )} + */ + ( + /** + * Generate an assertion from a check. + * @param {Test} [test] + * When nullish, checks if `node` is a `Node`. + * When `string`, works like passing `function (node) {return node.type === test}`. + * When `function` checks if function passed the node is true. + * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values. + * When `array`, checks any one of the subtests pass. + * @returns {AssertAnything} + */ + function (test) { + if (test === undefined || test === null) { + return ok$7 + } - if (singleLineOnly || forceQuotes) { - // Case: no block styles. - // Check for disallowed characters to rule out plain and single. - for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { - char = codePointAt(string, i); - if (!isPrintable$1(char)) { - return STYLE_DOUBLE$1; + if (typeof test === 'string') { + return typeFactory$7(test) } - plain = plain && isPlainSafe$1(char, prevChar, inblock); - prevChar = char; - } - } else { - // Case: block styles permitted. - for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { - char = codePointAt(string, i); - if (char === CHAR_LINE_FEED$1) { - hasLineBreak = true; - // Check if any line can be folded. - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || - // Foldable line = too long, and not more-indented. - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' '); - previousLineBreak = i; - } - } else if (!isPrintable$1(char)) { - return STYLE_DOUBLE$1; + + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$7(test) : propsFactory$6(test) } - plain = plain && isPlainSafe$1(char, prevChar, inblock); - prevChar = char; - } - // in case the end is missing a \n - hasFoldableLine = hasFoldableLine || (shouldTrackWidth && - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' ')); - } - // Although every style can represent \n without escaping, prefer block styles - // for multiline, since they're more readable and they don't add empty lines. - // Also prefer folding a super-long line. - if (!hasLineBreak && !hasFoldableLine) { - // Strings interpretable as another type have to be quoted; - // e.g. the string 'true' vs. the boolean true. - if (plain && !forceQuotes && !testAmbiguousType(string)) { - return STYLE_PLAIN$1; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE$1 : STYLE_SINGLE$1; - } - // Edge case: block indentation indicator can only have one digit. - if (indentPerLevel > 9 && needIndentIndicator$1(string)) { - return STYLE_DOUBLE$1; - } - // At this point we know block styles are valid. - // Prefer literal style unless we want to fold. - if (!forceQuotes) { - return hasFoldableLine ? STYLE_FOLDED$1 : STYLE_LITERAL$1; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE$1 : STYLE_SINGLE$1; -} -// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// • No ending newline => unaffected; already using strip "-" chomping. -// • Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar$1(state, string, level, iskey, inblock) { - state.dump = (function () { - if (string.length === 0) { - return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; - } - if (!state.noCompatMode) { - if (DEPRECATED_BOOLEANS_SYNTAX$1.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { - return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); + if (typeof test === 'function') { + return castFactory$6(test) } + + throw new Error('Expected function, string, or object as test') } + ); +/** + * @param {Array.} tests + * @returns {AssertAnything} + */ +function anyFactory$7(tests) { + /** @type {Array.} */ + const checks = []; + let index = -1; - var indent = state.indent * Math.max(1, level); // no 0-indent scalars - // As indentation gets deeper, let the width decrease monotonically - // to the lower bound min(state.lineWidth, 40). - // Note that this implies - // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. - // state.lineWidth > 40 + state.indent: width decreases until the lower bound. - // This behaves better than a constant minimum width which disallows narrower options, - // or an indent threshold which causes the width to suddenly increase. - var lineWidth = state.lineWidth === -1 - ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + while (++index < tests.length) { + checks[index] = convert$8(tests[index]); + } - // Without knowing if keys are implicit/explicit, assume implicit for safety. - var singleLineOnly = iskey - // No block styles in flow mode. - || (state.flowLevel > -1 && level >= state.flowLevel); - function testAmbiguity(string) { - return testImplicitResolving$1(state, string); - } + return castFactory$6(any) - switch (chooseScalarStyle$1(string, singleLineOnly, state.indent, lineWidth, - testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { + /** + * @this {unknown} + * @param {unknown[]} parameters + * @returns {boolean} + */ + function any(...parameters) { + let index = -1; - case STYLE_PLAIN$1: - return string; - case STYLE_SINGLE$1: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL$1: - return '|' + blockHeader$1(string, state.indent) - + dropEndingNewline$1(indentString$1(string, indent)); - case STYLE_FOLDED$1: - return '>' + blockHeader$1(string, state.indent) - + dropEndingNewline$1(indentString$1(foldString$1(string, lineWidth), indent)); - case STYLE_DOUBLE$1: - return '"' + escapeString$1(string) + '"'; - default: - throw new exception$1('impossible error: invalid scalar style'); + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true } - }()); + + return false + } } -// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader$1(string, indentPerLevel) { - var indentIndicator = needIndentIndicator$1(string) ? String(indentPerLevel) : ''; +/** + * Utility to assert each property in `test` is represented in `node`, and each + * values are strictly equal. + * + * @param {Props} check + * @returns {AssertAnything} + */ +function propsFactory$6(check) { + return castFactory$6(all) - // note the special case: the string '\n' counts as a "trailing" empty line. - var clip = string[string.length - 1] === '\n'; - var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); - var chomp = keep ? '+' : (clip ? '' : '-'); + /** + * @param {Node} node + * @returns {boolean} + */ + function all(node) { + /** @type {string} */ + let key; - return indentIndicator + chomp + '\n'; -} + for (key in check) { + // @ts-expect-error: hush, it sure works as an index. + if (node[key] !== check[key]) return false + } -// (See the note for writeScalar.) -function dropEndingNewline$1(string) { - return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; + return true + } } -// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString$1(string, width) { - // In folded style, $k$ consecutive newlines output as $k+1$ newlines— - // unless they're before or after a more-indented line, or at the very - // beginning or end, in which case $k$ maps to $k$. - // Therefore, parse each chunk as newline(s) followed by a content line. - var lineRe = /(\n+)([^\n]*)/g; - - // first line (possibly an empty line) - var result = (function () { - var nextLF = string.indexOf('\n'); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine$1(string.slice(0, nextLF), width); - }()); - // If we haven't reached the first content line yet, don't add an extra \n. - var prevMoreIndented = string[0] === '\n' || string[0] === ' '; - var moreIndented; +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * + * @param {Type} check + * @returns {AssertAnything} + */ +function typeFactory$7(check) { + return castFactory$6(type) - // rest of the lines - var match; - while ((match = lineRe.exec(string))) { - var prefix = match[1], line = match[2]; - moreIndented = (line[0] === ' '); - result += prefix - + (!prevMoreIndented && !moreIndented && line !== '' - ? '\n' : '') - + foldLine$1(line, width); - prevMoreIndented = moreIndented; + /** + * @param {Node} node + */ + function type(node) { + return node && node.type === check } - - return result; } -// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine$1(line, width) { - if (line === '' || line[0] === ' ') return line; - - // Since a more-indented line adds a \n, breaks can't be followed by a space. - var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. - var match; - // start is an inclusive index. end, curr, and next are exclusive. - var start = 0, end, curr = 0, next = 0; - var result = ''; +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * @param {TestFunctionAnything} check + * @returns {AssertAnything} + */ +function castFactory$6(check) { + return assertion - // Invariants: 0 <= start <= length-1. - // 0 <= curr <= next <= max(0, length-2). curr - start <= width. - // Inside the loop: - // A match implies length >= 2, so curr and next are <= length-2. - while ((match = breakRe.exec(line))) { - next = match.index; - // maintain invariant: curr - start <= width - if (next - start > width) { - end = (curr > start) ? curr : next; // derive end <= length-2 - result += '\n' + line.slice(start, end); - // skip the space that was output as \n - start = end + 1; // derive start <= length-1 - } - curr = next; + /** + * @this {unknown} + * @param {Array.} parameters + * @returns {boolean} + */ + function assertion(...parameters) { + // @ts-expect-error: spreading is fine. + return Boolean(check.call(this, ...parameters)) } +} - // By the invariants, start <= length-1, so there is something left over. - // It is either the whole string or a part starting from non-whitespace. - result += '\n'; - // Insert a break if the remainder is too long and there is a break available. - if (line.length - start > width && curr > start) { - result += line.slice(start, curr) + '\n' + line.slice(curr + 1); - } else { - result += line.slice(start); - } +// Utility to return true. +function ok$7() { + return true +} - return result.slice(1); // drop extra \n joiner +/** + * @param {string} d + * @returns {string} + */ +function color$8(d) { + return '\u001B[33m' + d + '\u001B[39m' } -// Escapes a double-quoted string. -function escapeString$1(string) { - var result = ''; - var char = 0; - var escapeSeq; +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + */ + +/** + * Continue traversing as normal + */ +const CONTINUE$8 = true; +/** + * Do not traverse this node’s children + */ +const SKIP$8 = 'skip'; +/** + * Stop traversing immediately + */ +const EXIT$8 = false; + +/** + * Visit children of tree which pass a test + * + * @param tree Abstract syntax tree to walk + * @param test Test node, optional + * @param visitor Function to run for each node + * @param reverse Visit the tree in reverse order, defaults to false + */ +const visitParents$8 = + /** + * @type {( + * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & + * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) + * )} + */ + ( + /** + * @param {Node} tree + * @param {Test} test + * @param {Visitor} visitor + * @param {boolean} [reverse] + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + // @ts-expect-error no visitor given, so `visitor` is test. + visitor = test; + test = null; + } - for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { - char = codePointAt(string, i); - escapeSeq = ESCAPE_SEQUENCES$1[char]; + const is = convert$8(test); + const step = reverse ? -1 : 1; - if (!escapeSeq && isPrintable$1(char)) { - result += string[i]; - if (char >= 0x10000) result += string[i + 1]; - } else { - result += escapeSeq || encodeHex$1(char); - } - } + factory(tree, null, [])(); - return result; -} + /** + * @param {Node} node + * @param {number?} index + * @param {Array.} parents + */ + function factory(node, index, parents) { + /** @type {Object.} */ + // @ts-expect-error: hush + const value = typeof node === 'object' && node !== null ? node : {}; + /** @type {string|undefined} */ + let name; -function writeFlowSequence$1(state, level, object) { - var _result = '', - _tag = state.tag, - index, - length, - value; + if (typeof value.type === 'string') { + name = + typeof value.tagName === 'string' + ? value.tagName + : typeof value.name === 'string' + ? value.name + : undefined; - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; + Object.defineProperty(visit, 'name', { + value: + 'node (' + + color$8(value.type + (name ? '<' + name + '>' : '')) + + ')' + }); + } - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } + return visit - // Write only valid elements, put null instead of invalid elements. - if (writeNode$1(state, level, value, false, false) || - (typeof value === 'undefined' && - writeNode$1(state, level, null, false, false))) { + function visit() { + /** @type {ActionTuple} */ + let result = []; + /** @type {ActionTuple} */ + let subresult; + /** @type {number} */ + let offset; + /** @type {Array.} */ + let grandparents; - if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); - _result += state.dump; - } - } + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$7(visitor(node, parents)); - state.tag = _tag; - state.dump = '[' + _result + ']'; -} + if (result[0] === EXIT$8) { + return result + } + } -function writeBlockSequence$1(state, level, object, compact) { - var _result = '', - _tag = state.tag, - index, - length, - value; + // @ts-expect-error looks like a parent. + if (node.children && result[0] !== SKIP$8) { + // @ts-expect-error looks like a parent. + offset = (reverse ? node.children.length : -1) + step; + // @ts-expect-error looks like a parent. + grandparents = parents.concat(node); - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; + // @ts-expect-error looks like a parent. + while (offset > -1 && offset < node.children.length) { + // @ts-expect-error looks like a parent. + subresult = factory(node.children[offset], offset, grandparents)(); - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } + if (subresult[0] === EXIT$8) { + return subresult + } - // Write only valid elements, put null instead of invalid elements. - if (writeNode$1(state, level + 1, value, true, true, false, true) || - (typeof value === 'undefined' && - writeNode$1(state, level + 1, null, true, true, false, true))) { + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } - if (!compact || _result !== '') { - _result += generateNextLine$1(state, level); + return result + } } + } + ); - if (state.dump && CHAR_LINE_FEED$1 === state.dump.charCodeAt(0)) { - _result += '-'; - } else { - _result += '- '; - } +/** + * @param {VisitorResult} value + * @returns {ActionTuple} + */ +function toResult$7(value) { + if (Array.isArray(value)) { + return value + } - _result += state.dump; - } + if (typeof value === 'number') { + return [CONTINUE$8, value] } - state.tag = _tag; - state.dump = _result || '[]'; // Empty sequence if no valid values. + return [value] } -function writeFlowMapping$1(state, level, object) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - pairBuffer; - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - - pairBuffer = ''; - if (_result !== '') pairBuffer += ', '; - - if (state.condenseFlow) pairBuffer += '"'; - - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } - - if (!writeNode$1(state, level, objectKey, false, false)) { - continue; // Skip this pair because of invalid key; - } +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult + */ - if (state.dump.length > 1024) pairBuffer += '? '; +/** + * Visit children of tree which pass a test + * + * @param tree Abstract syntax tree to walk + * @param test Test, optional + * @param visitor Function to run for each node + * @param reverse Fisit the tree in reverse, defaults to false + */ +const visit$7 = + /** + * @type {( + * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & + * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) + * )} + */ + ( + /** + * @param {Node} tree + * @param {Test} test + * @param {Visitor} visitor + * @param {boolean} [reverse] + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } - pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + visitParents$8(tree, test, overload, reverse); - if (!writeNode$1(state, level, objectValue, false, false)) { - continue; // Skip this pair because of invalid value. + /** + * @param {Node} node + * @param {Array.} parents + */ + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } } + ); - pairBuffer += state.dump; +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +const SEMVER_SPEC_VERSION = '2.0.0'; - // Both key and value are valid. - _result += pairBuffer; - } +const MAX_LENGTH$2 = 256; +const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ 9007199254740991; - state.tag = _tag; - state.dump = '{' + _result + '}'; -} +// Max safe segment length for coercion. +const MAX_SAFE_COMPONENT_LENGTH = 16; -function writeBlockMapping$1(state, level, object, compact) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - explicitPair, - pairBuffer; +var constants = { + SEMVER_SPEC_VERSION, + MAX_LENGTH: MAX_LENGTH$2, + MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1, + MAX_SAFE_COMPONENT_LENGTH +}; - // Allow sorting keys so that the output file is deterministic - if (state.sortKeys === true) { - // Default sorting - objectKeyList.sort(); - } else if (typeof state.sortKeys === 'function') { - // Custom sort function - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - // Something is wrong - throw new exception$1('sortKeys must be a boolean or a function'); - } +var re$2 = {exports: {}}; - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ''; +const debug$1 = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) +) ? (...args) => console.error('SEMVER', ...args) + : () => {}; - if (!compact || _result !== '') { - pairBuffer += generateNextLine$1(state, level); - } +var debug_1 = debug$1; - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; +(function (module, exports) { +const { MAX_SAFE_COMPONENT_LENGTH } = constants; +const debug = debug_1; +exports = module.exports = {}; - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } +// The actual regexps go on exports.re +const re = exports.re = []; +const src = exports.src = []; +const t = exports.t = {}; +let R = 0; - if (!writeNode$1(state, level + 1, objectKey, true, true, true)) { - continue; // Skip this pair because of invalid key. - } +const createToken = (name, value, isGlobal) => { + const index = R++; + debug(index, value); + t[name] = index; + src[index] = value; + re[index] = new RegExp(value, isGlobal ? 'g' : undefined); +}; - explicitPair = (state.tag !== null && state.tag !== '?') || - (state.dump && state.dump.length > 1024); +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED$1 === state.dump.charCodeAt(0)) { - pairBuffer += '?'; - } else { - pairBuffer += '? '; - } - } +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. - pairBuffer += state.dump; +createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); +createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); - if (explicitPair) { - pairBuffer += generateNextLine$1(state, level); - } +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. - if (!writeNode$1(state, level + 1, objectValue, true, explicitPair)) { - continue; // Skip this pair because of invalid value. - } +createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); - if (state.dump && CHAR_LINE_FEED$1 === state.dump.charCodeAt(0)) { - pairBuffer += ':'; - } else { - pairBuffer += ': '; - } +// ## Main Version +// Three dot-separated numeric identifiers. - pairBuffer += state.dump; +createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`); - // Both key and value are valid. - _result += pairBuffer; - } +createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); - state.tag = _tag; - state.dump = _result || '{}'; // Empty mapping if no valid pairs. -} +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. -function detectType$1(state, object, explicit) { - var _result, typeList, index, length, type, style; +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] +}|${src[t.NONNUMERICIDENTIFIER]})`); - typeList = explicit ? state.explicitTypes : state.implicitTypes; +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] +}|${src[t.NONNUMERICIDENTIFIER]})`); - for (index = 0, length = typeList.length; index < length; index += 1) { - type = typeList[index]; +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. - if ((type.instanceOf || type.predicate) && - (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && - (!type.predicate || type.predicate(object))) { +createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] +}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); - if (explicit) { - if (type.multi && type.representName) { - state.tag = type.representName(object); - } else { - state.tag = type.tag; - } - } else { - state.tag = '?'; - } +createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] +}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); - if (type.represent) { - style = state.styleMap[type.tag] || type.defaultStyle; +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. - if (_toString$2$1.call(type.represent) === '[object Function]') { - _result = type.represent(object, style); - } else if (_hasOwnProperty$3$1.call(type.represent, style)) { - _result = type.represent[style](object, style); - } else { - throw new exception$1('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); - } +createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); - state.dump = _result; - } +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. - return true; - } - } +createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] +}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); - return false; -} +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. -// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// -function writeNode$1(state, level, object, block, compact, iskey, isblockseq) { - state.tag = null; - state.dump = object; +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. - if (!detectType$1(state, object, false)) { - detectType$1(state, object, true); - } +createToken('FULLPLAIN', `v?${src[t.MAINVERSION] +}${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`); - var type = _toString$2$1.call(state.dump); - var inblock = block; - var tagStr; +createToken('FULL', `^${src[t.FULLPLAIN]}$`); - if (block) { - block = (state.flowLevel < 0 || state.flowLevel > level); - } +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] +}${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`); - var objectOrArray = type === '[object Object]' || type === '[object Array]', - duplicateIndex, - duplicate; +createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } +createToken('GTLT', '((?:<|>)?=?)'); - if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { - compact = false; - } +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); +createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = '*ref_' + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type === '[object Object]') { - if (block && (Object.keys(state.dump).length !== 0)) { - writeBlockMapping$1(state, level, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowMapping$1(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object Array]') { - if (block && (state.dump.length !== 0)) { - if (state.noArrayIndent && !isblockseq && level > 0) { - writeBlockSequence$1(state, level - 1, state.dump, compact); - } else { - writeBlockSequence$1(state, level, state.dump, compact); - } - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowSequence$1(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object String]') { - if (state.tag !== '?') { - writeScalar$1(state, state.dump, level, iskey, inblock); - } - } else if (type === '[object Undefined]') { - return false; - } else { - if (state.skipInvalid) return false; - throw new exception$1('unacceptable kind of an object to dump ' + type); - } +createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`); - if (state.tag !== null && state.tag !== '?') { - // Need to encode all characters except those allowed by the spec: - // - // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ - // [36] ns-hex-digit ::= ns-dec-digit - // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ - // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ - // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” - // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” - // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” - // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” - // - // Also need to encode '!' because it has special meaning (end of tag prefix). - // - tagStr = encodeURI( - state.tag[0] === '!' ? state.tag.slice(1) : state.tag - ).replace(/!/g, '%21'); +createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`); - if (state.tag[0] === '!') { - tagStr = '!' + tagStr; - } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { - tagStr = '!!' + tagStr.slice(18); - } else { - tagStr = '!<' + tagStr + '>'; - } +createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); +createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); - state.dump = tagStr + ' ' + state.dump; - } - } +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +createToken('COERCE', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:$|[^\\d])`); +createToken('COERCERTL', src[t.COERCE], true); - return true; -} +// Tilde ranges. +// Meaning is "reasonably at or greater than" +createToken('LONETILDE', '(?:~>?)'); -function getDuplicateReferences$1(object, state) { - var objects = [], - duplicatesIndexes = [], - index, - length; +createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); +exports.tildeTrimReplace = '$1~'; - inspectNode$1(object, objects, duplicatesIndexes); +createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); +createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); - } - state.usedDuplicates = new Array(length); -} +// Caret ranges. +// Meaning is "at least and backwards compatible with" +createToken('LONECARET', '(?:\\^)'); -function inspectNode$1(object, objects, duplicatesIndexes) { - var objectKeyList, - index, - length; +createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); +exports.caretTrimReplace = '$1^'; - if (object !== null && typeof object === 'object') { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); +createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); +createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode$1(object[index], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); +// A simple gt/lt/eq thing, or just "" to indicate "any version" +createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); +createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode$1(object[objectKeyList[index]], objects, duplicatesIndexes); - } - } - } - } -} +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] +}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); +exports.comparatorTrimReplace = '$1$2$3'; -function dump$2(input, options) { - options = options || {}; +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`); - var state = new State$1$1(options); +createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`); - if (!state.noRefs) getDuplicateReferences$1(input, state); +// Star ranges basically just allow anything at all. +createToken('STAR', '(<|>)?=?\\s*\\*'); +// >=0.0.0 is like a star +createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$'); +createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$'); +}(re$2, re$2.exports)); - var value = input; +// parse out just the options we care about so we always get a consistent +// obj with keys in a consistent order. +const opts = ['includePrerelease', 'loose', 'rtl']; +const parseOptions$2 = options => + !options ? {} + : typeof options !== 'object' ? { loose: true } + : opts.filter(k => options[k]).reduce((options, k) => { + options[k] = true; + return options + }, {}); +var parseOptions_1 = parseOptions$2; - if (state.replacer) { - value = state.replacer.call({ '': value }, '', value); - } +const numeric = /^[0-9]+$/; +const compareIdentifiers$1 = (a, b) => { + const anum = numeric.test(a); + const bnum = numeric.test(b); - if (writeNode$1(state, 0, value, true, true)) return state.dump + '\n'; + if (anum && bnum) { + a = +a; + b = +b; + } - return ''; -} + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +}; -var dump_1$1 = dump$2; +const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); -var dumper$1 = { - dump: dump_1$1 +var identifiers = { + compareIdentifiers: compareIdentifiers$1, + rcompareIdentifiers }; -function renamed(from, to) { - return function () { - throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + - 'Use yaml.' + to + ' instead, which is now safe by default.'); - }; -} +const debug = debug_1; +const { MAX_LENGTH: MAX_LENGTH$1, MAX_SAFE_INTEGER } = constants; +const { re: re$1, t: t$1 } = re$2.exports; +const parseOptions$1 = parseOptions_1; +const { compareIdentifiers } = identifiers; +class SemVer$2 { + constructor (version, options) { + options = parseOptions$1(options); -var Type$1$1 = type$1; -var Schema$1$1 = schema$2; -var FAILSAFE_SCHEMA$1 = failsafe$1; -var JSON_SCHEMA$1 = json$1; -var CORE_SCHEMA$1 = core$3; -var DEFAULT_SCHEMA$1 = _default$8; -var load$1$1 = loader$1.load; -var loadAll$1$1 = loader$1.loadAll; -var dump$1$1 = dumper$1.dump; -var YAMLException$1$1 = exception$1; + if (version instanceof SemVer$2) { + if (version.loose === !!options.loose && + version.includePrerelease === !!options.includePrerelease) { + return version + } else { + version = version.version; + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid Version: ${version}`) + } -// Removed functions from JS-YAML 3.0.x -var safeLoad$2 = renamed('safeLoad', 'load'); -var safeLoadAll$2 = renamed('safeLoadAll', 'loadAll'); -var safeDump$2 = renamed('safeDump', 'dump'); - -var jsYaml$2 = { - Type: Type$1$1, - Schema: Schema$1$1, - FAILSAFE_SCHEMA: FAILSAFE_SCHEMA$1, - JSON_SCHEMA: JSON_SCHEMA$1, - CORE_SCHEMA: CORE_SCHEMA$1, - DEFAULT_SCHEMA: DEFAULT_SCHEMA$1, - load: load$1$1, - loadAll: loadAll$1$1, - dump: dump$1$1, - YAMLException: YAMLException$1$1, - safeLoad: safeLoad$2, - safeLoadAll: safeLoadAll$2, - safeDump: safeDump$2 -}; + if (version.length > MAX_LENGTH$1) { + throw new TypeError( + `version is longer than ${MAX_LENGTH$1} characters` + ) + } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * - * @typedef {string} Type - * @typedef {Object} Props - * - * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test - */ + debug('SemVer', version, options); + this.options = options; + this.loose = !!options.loose; + // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + this.includePrerelease = !!options.includePrerelease; -const convert$y = - /** - * @type {( - * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & - * ((test?: Test) => AssertAnything) - * )} - */ - ( - /** - * Generate an assertion from a check. - * @param {Test} [test] - * When nullish, checks if `node` is a `Node`. - * When `string`, works like passing `function (node) {return node.type === test}`. - * When `function` checks if function passed the node is true. - * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values. - * When `array`, checks any one of the subtests pass. - * @returns {AssertAnything} - */ - function (test) { - if (test === undefined || test === null) { - return ok$w - } + const m = version.trim().match(options.loose ? re$1[t$1.LOOSE] : re$1[t$1.FULL]); - if (typeof test === 'string') { - return typeFactory$v(test) - } + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } - if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$v(test) : propsFactory$v(test) - } + this.raw = version; - if (typeof test === 'function') { - return castFactory$v(test) - } + // these are actually numbers + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; - throw new Error('Expected function, string, or object as test') + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') } - ); -/** - * @param {Array.} tests - * @returns {AssertAnything} - */ -function anyFactory$v(tests) { - /** @type {Array.} */ - const checks = []; - let index = -1; - while (++index < tests.length) { - checks[index] = convert$y(tests[index]); + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split('.').map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }); + } + + this.build = m[5] ? m[5].split('.') : []; + this.format(); } - return castFactory$v(any) + format () { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}`; + } + return this.version + } - /** - * @this {unknown} - * @param {unknown[]} parameters - * @returns {boolean} - */ - function any(...parameters) { - let index = -1; + toString () { + return this.version + } - while (++index < checks.length) { - if (checks[index].call(this, ...parameters)) return true + compare (other) { + debug('SemVer.compare', this.version, this.options, other); + if (!(other instanceof SemVer$2)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer$2(other, this.options); } - return false + if (other.version === this.version) { + return 0 + } + + return this.compareMain(other) || this.comparePre(other) } -} -/** - * Utility to assert each property in `test` is represented in `node`, and each - * values are strictly equal. - * - * @param {Props} check - * @returns {AssertAnything} - */ -function propsFactory$v(check) { - return castFactory$v(all) + compareMain (other) { + if (!(other instanceof SemVer$2)) { + other = new SemVer$2(other, this.options); + } - /** - * @param {Node} node - * @returns {boolean} - */ - function all(node) { - /** @type {string} */ - let key; + return ( + compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) + ) + } - for (key in check) { - // @ts-expect-error: hush, it sure works as an index. - if (node[key] !== check[key]) return false + comparePre (other) { + if (!(other instanceof SemVer$2)) { + other = new SemVer$2(other, this.options); } - return true + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + let i = 0; + do { + const a = this.prerelease[i]; + const b = other.prerelease[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) } -} -/** - * Utility to convert a string into a function which checks a given node’s type - * for said string. - * - * @param {Type} check - * @returns {AssertAnything} - */ -function typeFactory$v(check) { - return castFactory$v(type) + compareBuild (other) { + if (!(other instanceof SemVer$2)) { + other = new SemVer$2(other, this.options); + } - /** - * @param {Node} node - */ - function type(node) { - return node && node.type === check + let i = 0; + do { + const a = this.build[i]; + const b = other.build[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) } -} -/** - * Utility to convert a string into a function which checks a given node’s type - * for said string. - * @param {TestFunctionAnything} check - * @returns {AssertAnything} - */ -function castFactory$v(check) { - return assertion + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc (release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', identifier); + break + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', identifier); + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0; + this.inc('patch', identifier); + this.inc('pre', identifier); + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier); + } + this.inc('pre', identifier); + break - /** - * @this {unknown} - * @param {Array.} parameters - * @returns {boolean} - */ - function assertion(...parameters) { - // @ts-expect-error: spreading is fine. - return Boolean(check.call(this, ...parameters)) + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if ( + this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0 + ) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0]; + } else { + let i = this.prerelease.length; + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++; + i = -2; + } + } + if (i === -1) { + // didn't increment anything + this.prerelease.push(0); + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0]; + } + } else { + this.prerelease = [identifier, 0]; + } + } + break + + default: + throw new Error(`invalid increment argument: ${release}`) + } + this.format(); + this.raw = this.version; + return this } } -// Utility to return true. -function ok$w() { - return true -} +var semver = SemVer$2; -/** - * @param {string} d - * @returns {string} - */ -function color$w(d) { - return '\u001B[33m' + d + '\u001B[39m' -} +const {MAX_LENGTH} = constants; +const { re, t } = re$2.exports; +const SemVer$1 = semver; -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test - */ +const parseOptions = parseOptions_1; +const parse = (version, options) => { + options = parseOptions(options); -/** - * Continue traversing as normal - */ -const CONTINUE$v = true; -/** - * Do not traverse this node’s children - */ -const SKIP$v = 'skip'; -/** - * Stop traversing immediately - */ -const EXIT$v = false; + if (version instanceof SemVer$1) { + return version + } -/** - * Visit children of tree which pass a test - * - * @param tree Abstract syntax tree to walk - * @param test Test node, optional - * @param visitor Function to run for each node - * @param reverse Visit the tree in reverse order, defaults to false - */ -const visitParents$v = - /** - * @type {( - * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & - * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) - * )} - */ - ( - /** - * @param {Node} tree - * @param {Test} test - * @param {Visitor} visitor - * @param {boolean} [reverse] - */ - function (tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - // @ts-expect-error no visitor given, so `visitor` is test. - visitor = test; - test = null; - } + if (typeof version !== 'string') { + return null + } - const is = convert$y(test); - const step = reverse ? -1 : 1; + if (version.length > MAX_LENGTH) { + return null + } - factory(tree, null, [])(); + const r = options.loose ? re[t.LOOSE] : re[t.FULL]; + if (!r.test(version)) { + return null + } - /** - * @param {Node} node - * @param {number?} index - * @param {Array.} parents - */ - function factory(node, index, parents) { - /** @type {Object.} */ - // @ts-expect-error: hush - const value = typeof node === 'object' && node !== null ? node : {}; - /** @type {string|undefined} */ - let name; + try { + return new SemVer$1(version, options) + } catch (er) { + return null + } +}; - if (typeof value.type === 'string') { - name = - typeof value.tagName === 'string' - ? value.tagName - : typeof value.name === 'string' - ? value.name - : undefined; +var parse_1 = parse; - Object.defineProperty(visit, 'name', { - value: - 'node (' + - color$w(value.type + (name ? '<' + name + '>' : '')) + - ')' - }); - } +const SemVer = semver; +const compare$1 = (a, b, loose) => + new SemVer(a, loose).compare(new SemVer(b, loose)); - return visit +var compare_1 = compare$1; - function visit() { - /** @type {ActionTuple} */ - let result = []; - /** @type {ActionTuple} */ - let subresult; - /** @type {number} */ - let offset; - /** @type {Array.} */ - let grandparents; +const compare = compare_1; +const lt = (a, b, loose) => compare(a, b, loose) < 0; +var lt_1 = lt; - if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$v(visitor(node, parents)); +const allowedKeys = [ + "added", + "napiVersion", + "deprecated", + "removed", + "changes", +]; +const changesExpectedKeys = ["version", "pr-url", "description"]; +const VERSION_PLACEHOLDER = "REPLACEME"; +const MAX_SAFE_SEMVER_VERSION = parse_1( + Array.from({ length: 3 }, () => Number.MAX_SAFE_INTEGER).join(".") +); +const validVersionNumberRegex = /^v\d+\.\d+\.\d+$/; +const prUrlRegex = new RegExp("^https://github.com/nodejs/node/pull/\\d+$"); +const privatePRUrl = "https://github.com/nodejs-private/node-private/pull/"; - if (result[0] === EXIT$v) { - return result - } - } +let releasedVersions; +let invalidVersionMessage = "version(s) must respect the pattern `vx.x.x` or"; +if (process.env.NODE_RELEASED_VERSIONS) { + console.log("Using release list from env..."); + releasedVersions = process.env.NODE_RELEASED_VERSIONS.split(",").map( + (v) => `v${v}` + ); + invalidVersionMessage = `version not listed in the changelogs, `; +} +invalidVersionMessage += `use the placeholder \`${VERSION_PLACEHOLDER}\``; - // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$v) { - // @ts-expect-error looks like a parent. - offset = (reverse ? node.children.length : -1) + step; - // @ts-expect-error looks like a parent. - grandparents = parents.concat(node); +const kContainsIllegalKey = Symbol("illegal key"); +const kWrongKeyOrder = Symbol("Wrong key order"); +function unorderedKeys(meta) { + const keys = Object.keys(meta); + let previousKeyIndex = -1; + for (const key of keys) { + const keyIndex = allowedKeys.indexOf(key); + if (keyIndex <= previousKeyIndex) { + return keyIndex === -1 ? kContainsIllegalKey : kWrongKeyOrder; + } + previousKeyIndex = keyIndex; + } +} - // @ts-expect-error looks like a parent. - while (offset > -1 && offset < node.children.length) { - // @ts-expect-error looks like a parent. - subresult = factory(node.children[offset], offset, grandparents)(); +function containsInvalidVersionNumber(version) { + if (Array.isArray(version)) { + return version.some(containsInvalidVersionNumber); + } - if (subresult[0] === EXIT$v) { - return subresult - } + if (version === undefined || version === VERSION_PLACEHOLDER) return false; - offset = - typeof subresult[1] === 'number' ? subresult[1] : offset + step; - } - } + if ( + releasedVersions && + // Always ignore 0.0.x and 0.1.x release numbers: + (version[1] !== "0" || (version[3] !== "0" && version[3] !== "1")) + ) + return !releasedVersions.includes(version); - return result - } - } - } - ); + return !validVersionNumberRegex.test(version); +} +const getValidSemver = (version) => + version === VERSION_PLACEHOLDER ? MAX_SAFE_SEMVER_VERSION : version; +function areVersionsUnordered(versions) { + if (!Array.isArray(versions)) return false; -/** - * @param {VisitorResult} value - * @returns {ActionTuple} - */ -function toResult$v(value) { - if (Array.isArray(value)) { - return value + for (let index = 1; index < versions.length; index++) { + if ( + lt_1( + getValidSemver(versions[index - 1]), + getValidSemver(versions[index]) + ) + ) { + return true; + } } +} - if (typeof value === 'number') { - return [CONTINUE$v, value] +function invalidChangesKeys(change) { + const keys = Object.keys(change); + const { length } = keys; + if (length !== changesExpectedKeys.length) return true; + for (let index = 0; index < length; index++) { + if (keys[index] !== changesExpectedKeys[index]) return true; } +} +function validateSecurityChange(file, node, change, index) { + if ("commit" in change) { + if (typeof change.commit !== "string" || isNaN(`0x${change.commit}`)) { + file.message( + `changes[${index}]: Ill-formed security change commit ID`, + node + ); + } - return [value] + if (Object.keys(change)[1] === "commit") { + change = { ...change }; + delete change.commit; + } + } + if (invalidChangesKeys(change)) { + const securityChangeExpectedKeys = [...changesExpectedKeys]; + securityChangeExpectedKeys[0] += "[, commit]"; + file.message( + `changes[${index}]: Invalid keys. Expected keys are: ` + + securityChangeExpectedKeys.join(", "), + node + ); + } } +function validateChanges(file, node, changes) { + if (!Array.isArray(changes)) + return file.message("`changes` must be a YAML list", node); -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test - * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult - */ + const changesVersions = []; + for (let index = 0; index < changes.length; index++) { + const change = changes[index]; -/** - * Visit children of tree which pass a test - * - * @param tree Abstract syntax tree to walk - * @param test Test, optional - * @param visitor Function to run for each node - * @param reverse Fisit the tree in reverse, defaults to false - */ -const visit$v = - /** - * @type {( - * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & - * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) - * )} - */ - ( - /** - * @param {Node} tree - * @param {Test} test - * @param {Visitor} visitor - * @param {boolean} [reverse] - */ - function (tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; - } + const isAncient = + typeof change.version === "string" && change.version.startsWith("v0."); + const isSecurityChange = + !isAncient && + typeof change["pr-url"] === "string" && + change["pr-url"].startsWith(privatePRUrl); - visitParents$v(tree, test, overload, reverse); + if (isSecurityChange) { + validateSecurityChange(file, node, change, index); + } else if (!isAncient && invalidChangesKeys(change)) { + file.message( + `changes[${index}]: Invalid keys. Expected keys are: ` + + changesExpectedKeys.join(", "), + node + ); + } - /** - * @param {Node} node - * @param {Array.} parents - */ - function overload(node, parents) { - const parent = parents[parents.length - 1]; - return visitor( - node, - parent ? parent.children.indexOf(node) : null, - parent - ) - } + if (containsInvalidVersionNumber(change.version)) { + file.message(`changes[${index}]: ${invalidVersionMessage}`, node); + } else if (areVersionsUnordered(change.version)) { + file.message(`changes[${index}]: list of versions is not in order`, node); } - ); -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -const SEMVER_SPEC_VERSION = '2.0.0'; + if (!isAncient && !isSecurityChange && !prUrlRegex.test(change["pr-url"])) { + file.message( + `changes[${index}]: PR-URL does not match the expected pattern`, + node + ); + } -const MAX_LENGTH$2 = 256; -const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || - /* istanbul ignore next */ 9007199254740991; + if (typeof change.description !== "string" || !change.description.length) { + file.message( + `changes[${index}]: must contain a non-empty description`, + node + ); + } else if (!change.description.endsWith(".")) { + file.message( + `changes[${index}]: description must end with a period`, + node + ); + } -// Max safe segment length for coercion. -const MAX_SAFE_COMPONENT_LENGTH = 16; + changesVersions.push( + Array.isArray(change.version) ? change.version[0] : change.version + ); + } -var constants$3 = { - SEMVER_SPEC_VERSION, - MAX_LENGTH: MAX_LENGTH$2, - MAX_SAFE_INTEGER, - MAX_SAFE_COMPONENT_LENGTH -}; + if (areVersionsUnordered(changesVersions)) { + file.message("Items in `changes` list are not in order", node); + } +} -const debug$b = ( - typeof process === 'object' && - process.env && - process.env.NODE_DEBUG && - /\bsemver\b/i.test(process.env.NODE_DEBUG) -) ? (...args) => console.error('SEMVER', ...args) - : () => {}; +function validateMeta(node, file, meta) { + switch (unorderedKeys(meta)) { + case kContainsIllegalKey: + file.message( + "YAML dictionary contains illegal keys. Accepted values are: " + + allowedKeys.join(", "), + node + ); + break; -var debug_1 = debug$b; + case kWrongKeyOrder: + file.message( + "YAML dictionary keys should be in this order: " + + allowedKeys.join(", "), + node + ); + break; + } -var re_1 = createCommonjsModule(function (module, exports) { -const { MAX_SAFE_COMPONENT_LENGTH } = constants$3; + if (containsInvalidVersionNumber(meta.added)) { + file.message(`Invalid \`added\` value: ${invalidVersionMessage}`, node); + } else if (areVersionsUnordered(meta.added)) { + file.message("Versions in `added` list are not in order", node); + } -exports = module.exports = {}; + if (containsInvalidVersionNumber(meta.deprecated)) { + file.message( + `Invalid \`deprecated\` value: ${invalidVersionMessage}`, + node + ); + } else if (areVersionsUnordered(meta.deprecated)) { + file.message("Versions in `deprecated` list are not in order", node); + } -// The actual regexps go on exports.re -const re = exports.re = []; -const src = exports.src = []; -const t = exports.t = {}; -let R = 0; + if (containsInvalidVersionNumber(meta.removed)) { + file.message(`Invalid \`removed\` value: ${invalidVersionMessage}`, node); + } else if (areVersionsUnordered(meta.removed)) { + file.message("Versions in `removed` list are not in order", node); + } -const createToken = (name, value, isGlobal) => { - const index = R++; - debug_1(index, value); - t[name] = index; - src[index] = value; - re[index] = new RegExp(value, isGlobal ? 'g' : undefined); + if ("changes" in meta) { + validateChanges(file, node, meta.changes); + } +} + +function validateYAMLComments(tree, file) { + visit$7(tree, "html", function visitor(node) { + if (node.value.startsWith("".length)); + + validateMeta(node, file, meta); + } catch (e) { + file.message(e, node); + } + }); +} + +const remarkLintNodejsYamlComments = lintRule$5( + "remark-lint:nodejs-yaml-comments", + validateYAMLComments +); + +var escapeStringRegexp$2 = string => { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); + } + + // Escape characters with special meaning either inside or outside character sets. + // Use a simple backslash escape when it’s always valid, and a \unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar. + return string + .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') + .replace(/-/g, '\\x2d'); }; -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. +var start$2 = factory$1('start'); +var end = factory$1('end'); -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. +var unistUtilPosition = position$1; -createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); -createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); +position$1.start = start$2; +position$1.end = end; -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. +function position$1(node) { + return {start: start$2(node), end: end(node)} +} -createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); +function factory$1(type) { + point.displayName = type; -// ## Main Version -// Three dot-separated numeric identifiers. + return point -createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + - `(${src[t.NUMERICIDENTIFIER]})\\.` + - `(${src[t.NUMERICIDENTIFIER]})`); + function point(node) { + var point = (node && node.position && node.position[type]) || {}; -createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + - `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + - `(${src[t.NUMERICIDENTIFIERLOOSE]})`); + return { + line: point.line || null, + column: point.column || null, + offset: isNaN(point.offset) ? null : point.offset + } + } +} -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. +var convert_1 = convert$7; -createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] -}|${src[t.NONNUMERICIDENTIFIER]})`); +function convert$7(test) { + if (test == null) { + return ok$6 + } -createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] -}|${src[t.NONNUMERICIDENTIFIER]})`); + if (typeof test === 'string') { + return typeFactory$6(test) + } -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. + if (typeof test === 'object') { + return 'length' in test ? anyFactory$6(test) : allFactory(test) + } -createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] -}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + if (typeof test === 'function') { + return test + } -createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] -}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + throw new Error('Expected function, string, or object as test') +} -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. +// Utility assert each property in `test` is represented in `node`, and each +// values are strictly equal. +function allFactory(test) { + return all -createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); + function all(node) { + var key; -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. + for (key in test) { + if (node[key] !== test[key]) return false + } -createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] -}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + return true + } +} -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. +function anyFactory$6(tests) { + var checks = []; + var index = -1; -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. + while (++index < tests.length) { + checks[index] = convert$7(tests[index]); + } -createToken('FULLPLAIN', `v?${src[t.MAINVERSION] -}${src[t.PRERELEASE]}?${ - src[t.BUILD]}?`); + return any -createToken('FULL', `^${src[t.FULLPLAIN]}$`); + function any() { + var index = -1; -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] -}${src[t.PRERELEASELOOSE]}?${ - src[t.BUILD]}?`); + while (++index < checks.length) { + if (checks[index].apply(this, arguments)) { + return true + } + } -createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); + return false + } +} -createToken('GTLT', '((?:<|>)?=?)'); +// Utility to convert a string into a function which checks a given node’s type +// for said string. +function typeFactory$6(test) { + return type -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); -createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + function type(node) { + return Boolean(node && node.type === test) + } +} -createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + - `(?:${src[t.PRERELEASE]})?${ - src[t.BUILD]}?` + - `)?)?`); +// Utility to return true. +function ok$6() { + return true +} + +var color_1 = color$7; +function color$7(d) { + return '\u001B[33m' + d + '\u001B[39m' +} -createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:${src[t.PRERELEASELOOSE]})?${ - src[t.BUILD]}?` + - `)?)?`); +var unistUtilVisitParents = visitParents$7; -createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); -createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); +var convert$6 = convert_1; +var color$6 = color_1; -// Coercion. -// Extract anything that could conceivably be a part of a valid semver -createToken('COERCE', `${'(^|[^\\d])' + - '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:$|[^\\d])`); -createToken('COERCERTL', src[t.COERCE], true); +var CONTINUE$7 = true; +var SKIP$7 = 'skip'; +var EXIT$7 = false; -// Tilde ranges. -// Meaning is "reasonably at or greater than" -createToken('LONETILDE', '(?:~>?)'); +visitParents$7.CONTINUE = CONTINUE$7; +visitParents$7.SKIP = SKIP$7; +visitParents$7.EXIT = EXIT$7; -createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); -exports.tildeTrimReplace = '$1~'; +function visitParents$7(tree, test, visitor, reverse) { + var step; + var is; -createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); -createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } -// Caret ranges. -// Meaning is "at least and backwards compatible with" -createToken('LONECARET', '(?:\\^)'); + is = convert$6(test); + step = reverse ? -1 : 1; -createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); -exports.caretTrimReplace = '$1^'; + factory(tree, null, [])(); -createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); -createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + function factory(node, index, parents) { + var value = typeof node === 'object' && node !== null ? node : {}; + var name; -// A simple gt/lt/eq thing, or just "" to indicate "any version" -createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); -createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + if (typeof value.type === 'string') { + name = + typeof value.tagName === 'string' + ? value.tagName + : typeof value.name === 'string' + ? value.name + : undefined; -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] -}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); -exports.comparatorTrimReplace = '$1$2$3'; + visit.displayName = + 'node (' + color$6(value.type + (name ? '<' + name + '>' : '')) + ')'; + } -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + - `\\s+-\\s+` + - `(${src[t.XRANGEPLAIN]})` + - `\\s*$`); + return visit -createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + - `\\s+-\\s+` + - `(${src[t.XRANGEPLAINLOOSE]})` + - `\\s*$`); + function visit() { + var grandparents = parents.concat(node); + var result = []; + var subresult; + var offset; -// Star ranges basically just allow anything at all. -createToken('STAR', '(<|>)?=?\\s*\\*'); -// >=0.0.0 is like a star -createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$'); -createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$'); -}); + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$6(visitor(node, parents)); -// parse out just the options we care about so we always get a consistent -// obj with keys in a consistent order. -const opts = ['includePrerelease', 'loose', 'rtl']; -const parseOptions = options => - !options ? {} - : typeof options !== 'object' ? { loose: true } - : opts.filter(k => options[k]).reduce((options, k) => { - options[k] = true; - return options - }, {}); -var parseOptions_1 = parseOptions; + if (result[0] === EXIT$7) { + return result + } + } -const numeric$1 = /^[0-9]+$/; -const compareIdentifiers = (a, b) => { - const anum = numeric$1.test(a); - const bnum = numeric$1.test(b); + if (node.children && result[0] !== SKIP$7) { + offset = (reverse ? node.children.length : -1) + step; - if (anum && bnum) { - a = +a; - b = +b; + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + + if (subresult[0] === EXIT$7) { + return subresult + } + + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + + return result + } } +} - return a === b ? 0 - : (anum && !bnum) ? -1 - : (bnum && !anum) ? 1 - : a < b ? -1 - : 1 -}; +function toResult$6(value) { + if (value !== null && typeof value === 'object' && 'length' in value) { + return value + } -const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a); + if (typeof value === 'number') { + return [CONTINUE$7, value] + } -var identifiers = { - compareIdentifiers, - rcompareIdentifiers -}; + return [value] +} -const { MAX_LENGTH: MAX_LENGTH$3, MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1 } = constants$3; -const { re: re$2, t } = re_1; +var unistUtilVisit = visit$6; +var visitParents$6 = unistUtilVisitParents; -const { compareIdentifiers: compareIdentifiers$1 } = identifiers; -class SemVer { - constructor (version, options) { - options = parseOptions_1(options); +var CONTINUE$6 = visitParents$6.CONTINUE; +var SKIP$6 = visitParents$6.SKIP; +var EXIT$6 = visitParents$6.EXIT; - if (version instanceof SemVer) { - if (version.loose === !!options.loose && - version.includePrerelease === !!options.includePrerelease) { - return version - } else { - version = version.version; - } - } else if (typeof version !== 'string') { - throw new TypeError(`Invalid Version: ${version}`) - } +visit$6.CONTINUE = CONTINUE$6; +visit$6.SKIP = SKIP$6; +visit$6.EXIT = EXIT$6; - if (version.length > MAX_LENGTH$3) { - throw new TypeError( - `version is longer than ${MAX_LENGTH$3} characters` - ) - } +function visit$6(tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } - debug_1('SemVer', version, options); - this.options = options; - this.loose = !!options.loose; - // this isn't actually relevant for versions, but keep it so that we - // don't run into trouble passing this.options around. - this.includePrerelease = !!options.includePrerelease; + visitParents$6(tree, test, overload, reverse); - const m = version.trim().match(options.loose ? re$2[t.LOOSE] : re$2[t.FULL]); + function overload(node, parents) { + var parent = parents[parents.length - 1]; + var index = parent ? parent.children.indexOf(node) : null; + return visitor(node, index, parent) + } +} - if (!m) { - throw new TypeError(`Invalid Version: ${version}`) - } +var vfileLocation$1 = factory; - this.raw = version; +function factory(file) { + var value = String(file); + var indices = []; + var search = /\r?\n|\r/g; - // these are actually numbers - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; + while (search.exec(value)) { + indices.push(search.lastIndex); + } - if (this.major > MAX_SAFE_INTEGER$1 || this.major < 0) { - throw new TypeError('Invalid major version') - } + indices.push(value.length + 1); - if (this.minor > MAX_SAFE_INTEGER$1 || this.minor < 0) { - throw new TypeError('Invalid minor version') - } + return { + toPoint: offsetToPoint, + toPosition: offsetToPoint, + toOffset: pointToOffset + } - if (this.patch > MAX_SAFE_INTEGER$1 || this.patch < 0) { - throw new TypeError('Invalid patch version') - } + // Get the line and column-based `point` for `offset` in the bound indices. + function offsetToPoint(offset) { + var index = -1; - // numberify any prerelease numeric ids - if (!m[4]) { - this.prerelease = []; - } else { - this.prerelease = m[4].split('.').map((id) => { - if (/^[0-9]+$/.test(id)) { - const num = +id; - if (num >= 0 && num < MAX_SAFE_INTEGER$1) { - return num + if (offset > -1 && offset < indices[indices.length - 1]) { + while (++index < indices.length) { + if (indices[index] > offset) { + return { + line: index + 1, + column: offset - (indices[index - 1] || 0) + 1, + offset: offset } } - return id - }); + } } - this.build = m[5] ? m[5].split('.') : []; - this.format(); + return {} } - format () { - this.version = `${this.major}.${this.minor}.${this.patch}`; - if (this.prerelease.length) { - this.version += `-${this.prerelease.join('.')}`; + // Get the `offset` for a line and column-based `point` in the bound + // indices. + function pointToOffset(point) { + var line = point && point.line; + var column = point && point.column; + var offset; + + if (!isNaN(line) && !isNaN(column) && line - 1 in indices) { + offset = (indices[line - 2] || 0) + column - 1 || 0; } - return this.version - } - toString () { - return this.version + return offset > -1 && offset < indices[indices.length - 1] ? offset : -1 } +} - compare (other) { - debug_1('SemVer.compare', this.version, this.options, other); - if (!(other instanceof SemVer)) { - if (typeof other === 'string' && other === this.version) { - return 0 - } - other = new SemVer(other, this.options); - } +const escapeStringRegexp$1 = escapeStringRegexp$2; +const position = unistUtilPosition; +const rule = unifiedLintRule; +const visit$5 = unistUtilVisit; +const vfileLocation = vfileLocation$1; - if (other.version === this.version) { - return 0 - } +const start$1 = position.start; - return this.compareMain(other) || this.comparePre(other) +var remarkLintProhibitedStrings = rule('remark-lint:prohibited-strings', prohibitedStrings); + +function testProhibited (val, content) { + let regexpFlags = 'g'; + let no = val.no; + + if (!no) { + no = escapeStringRegexp$1(val.yes); + regexpFlags += 'i'; } - compareMain (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); - } + let regexpString = '(? having one - if (this.prerelease.length && !other.prerelease.length) { - return -1 - } else if (!this.prerelease.length && other.prerelease.length) { - return 1 - } else if (!this.prerelease.length && !other.prerelease.length) { - return 0 - } + if (ignoreNextTo) { + regexpString += `(?!${ignoreNextTo})`; + } - let i = 0; - do { - const a = this.prerelease[i]; - const b = other.prerelease[i]; - debug_1('prerelease compare', i, a, b); - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers$1(a, b) - } - } while (++i) + // If it ends with a letter, make sure it is a word break. + if (/\b$/.test(no)) { + regexpString += '\\b'; } + regexpString += '(?!\\.\\w)'; + const re = new RegExp(regexpString, regexpFlags); - compareBuild (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); + const results = []; + let result = re.exec(content); + while (result) { + if (result[1] !== val.yes) { + results.push({ result: result[1], index: result.index }); } + result = re.exec(content); + } - let i = 0; - do { - const a = this.build[i]; - const b = other.build[i]; - debug_1('prerelease compare', i, a, b); - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers$1(a, b) + return results +} + +function prohibitedStrings (ast, file, strings) { + const location = vfileLocation(file); + + visit$5(ast, 'text', checkText); + + function checkText (node) { + const content = node.value; + const initial = start$1(node).offset; + + strings.forEach((val) => { + const results = testProhibited(val, content); + if (results.length) { + results.forEach(({ result, index }) => { + const message = val.yes ? `Use "${val.yes}" instead of "${result}"` : `Do not use "${result}"`; + file.message(message, { + start: location.toPoint(initial + index), + end: location.toPoint(initial + index + [...result].length) + }); + }); } - } while (++i) + }); } +} - // preminor will bump the version up to the next minor release, and immediately - // down to pre-release. premajor and prepatch work the same way. - inc (release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - break - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) { - this.inc('patch', identifier); - } - this.inc('pre', identifier); - break +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile + * + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple + * + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} + */ - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if ( - this.minor !== 0 || - this.patch !== 0 || - this.prerelease.length === 0 - ) { - this.major++; - } - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) { - this.minor++; - } - this.patch = 0; - this.prerelease = []; - break - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) { - this.patch++; - } - this.prerelease = []; - break - // This probably shouldn't be used publicly. - // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) { - this.prerelease = [0]; - } else { - let i = this.prerelease.length; - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } - } - if (i === -1) { - // didn't increment anything - this.prerelease.push(0); - } +const primitives$4 = new Set(['string', 'number', 'boolean']); + +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule$4(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; + + Object.defineProperty(plugin, 'name', {value: id}); + + return plugin + + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$4(ruleId, raw); + + if (!severity) return + + const fatal = severity === 2; + + return (tree, file, next) => { + let index = file.messages.length - 1; + + wrap(rule, (error) => { + const messages = file.messages; + + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) { - this.prerelease = [identifier, 0]; - } - } else { - this.prerelease = [identifier, 0]; - } + + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); } - break - default: - throw new Error(`invalid increment argument: ${release}`) + next(); + })(tree, file, options); + } + } +} + +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$4(name, value) { + /** @type {unknown[]} */ + let result; + + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$4.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + 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]; } - this.format(); - this.raw = this.version; - return this } -} -var semver = SemVer; + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) + } -const {MAX_LENGTH: MAX_LENGTH$4} = constants$3; -const { re: re$3, t: t$1 } = re_1; + result[0] = level; + // @ts-expect-error: it’s now a valid tuple. + return result +} +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * + * @typedef {string} Type + * @typedef {Object} Props + * + * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test + */ -const parse$9 = (version, options) => { - options = parseOptions_1(options); +const convert$5 = + /** + * @type {( + * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & + * ((test?: Test) => AssertAnything) + * )} + */ + ( + /** + * Generate an assertion from a check. + * @param {Test} [test] + * When nullish, checks if `node` is a `Node`. + * When `string`, works like passing `function (node) {return node.type === test}`. + * When `function` checks if function passed the node is true. + * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values. + * When `array`, checks any one of the subtests pass. + * @returns {AssertAnything} + */ + function (test) { + if (test === undefined || test === null) { + return ok$5 + } - if (version instanceof semver) { - return version - } + if (typeof test === 'string') { + return typeFactory$5(test) + } - if (typeof version !== 'string') { - return null - } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$5(test) : propsFactory$5(test) + } - if (version.length > MAX_LENGTH$4) { - return null - } + if (typeof test === 'function') { + return castFactory$5(test) + } - const r = options.loose ? re$3[t$1.LOOSE] : re$3[t$1.FULL]; - if (!r.test(version)) { - return null - } + throw new Error('Expected function, string, or object as test') + } + ); +/** + * @param {Array.} tests + * @returns {AssertAnything} + */ +function anyFactory$5(tests) { + /** @type {Array.} */ + const checks = []; + let index = -1; - try { - return new semver(version, options) - } catch (er) { - return null + while (++index < tests.length) { + checks[index] = convert$5(tests[index]); } -}; -var parse_1$4 = parse$9; + return castFactory$5(any) -const compare$2 = (a, b, loose) => - new semver(a, loose).compare(new semver(b, loose)); + /** + * @this {unknown} + * @param {unknown[]} parameters + * @returns {boolean} + */ + function any(...parameters) { + let index = -1; -var compare_1 = compare$2; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } -const lt$1 = (a, b, loose) => compare_1(a, b, loose) < 0; -var lt_1 = lt$1; + return false + } +} -const allowedKeys = [ - "added", - "napiVersion", - "deprecated", - "removed", - "changes", -]; -const changesExpectedKeys = ["version", "pr-url", "description"]; -const VERSION_PLACEHOLDER = "REPLACEME"; -const MAX_SAFE_SEMVER_VERSION = parse_1$4( - Array.from({ length: 3 }, () => Number.MAX_SAFE_INTEGER).join(".") -); -const validVersionNumberRegex = /^v\d+\.\d+\.\d+$/; -const prUrlRegex = new RegExp("^https://github.com/nodejs/node/pull/\\d+$"); -const privatePRUrl = "https://github.com/nodejs-private/node-private/pull/"; +/** + * Utility to assert each property in `test` is represented in `node`, and each + * values are strictly equal. + * + * @param {Props} check + * @returns {AssertAnything} + */ +function propsFactory$5(check) { + return castFactory$5(all) -let releasedVersions; -let invalidVersionMessage = "version(s) must respect the pattern `vx.x.x` or"; -if (process.env.NODE_RELEASED_VERSIONS) { - console.log("Using release list from env..."); - releasedVersions = process.env.NODE_RELEASED_VERSIONS.split(",").map( - (v) => `v${v}` - ); - invalidVersionMessage = `version not listed in the changelogs, `; -} -invalidVersionMessage += `use the placeholder \`${VERSION_PLACEHOLDER}\``; + /** + * @param {Node} node + * @returns {boolean} + */ + function all(node) { + /** @type {string} */ + let key; -const kContainsIllegalKey = Symbol("illegal key"); -const kWrongKeyOrder = Symbol("Wrong key order"); -function unorderedKeys(meta) { - const keys = Object.keys(meta); - let previousKeyIndex = -1; - for (const key of keys) { - const keyIndex = allowedKeys.indexOf(key); - if (keyIndex <= previousKeyIndex) { - return keyIndex === -1 ? kContainsIllegalKey : kWrongKeyOrder; + for (key in check) { + // @ts-expect-error: hush, it sure works as an index. + if (node[key] !== check[key]) return false } - previousKeyIndex = keyIndex; - } -} -function containsInvalidVersionNumber(version) { - if (Array.isArray(version)) { - return version.some(containsInvalidVersionNumber); + return true } +} - if (version === undefined || version === VERSION_PLACEHOLDER) return false; - - if ( - releasedVersions && - // Always ignore 0.0.x and 0.1.x release numbers: - (version[1] !== "0" || (version[3] !== "0" && version[3] !== "1")) - ) - return !releasedVersions.includes(version); +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * + * @param {Type} check + * @returns {AssertAnything} + */ +function typeFactory$5(check) { + return castFactory$5(type) - return !validVersionNumberRegex.test(version); + /** + * @param {Node} node + */ + function type(node) { + return node && node.type === check + } } -const getValidSemver = (version) => - version === VERSION_PLACEHOLDER ? MAX_SAFE_SEMVER_VERSION : version; -function areVersionsUnordered(versions) { - if (!Array.isArray(versions)) return false; - for (let index = 1; index < versions.length; index++) { - if ( - lt_1( - getValidSemver(versions[index - 1]), - getValidSemver(versions[index]) - ) - ) { - return true; - } +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * @param {TestFunctionAnything} check + * @returns {AssertAnything} + */ +function castFactory$5(check) { + return assertion + + /** + * @this {unknown} + * @param {Array.} parameters + * @returns {boolean} + */ + function assertion(...parameters) { + // @ts-expect-error: spreading is fine. + return Boolean(check.call(this, ...parameters)) } } -function invalidChangesKeys(change) { - const keys = Object.keys(change); - const { length } = keys; - if (length !== changesExpectedKeys.length) return true; - for (let index = 0; index < length; index++) { - if (keys[index] !== changesExpectedKeys[index]) return true; - } +// Utility to return true. +function ok$5() { + return true } -function validateSecurityChange(file, node, change, index) { - if ("commit" in change) { - if (typeof change.commit !== "string" || isNaN(`0x${change.commit}`)) { - file.message( - `changes[${index}]: Ill-formed security change commit ID`, - node - ); - } - if (Object.keys(change)[1] === "commit") { - change = { ...change }; - delete change.commit; - } - } - if (invalidChangesKeys(change)) { - const securityChangeExpectedKeys = [...changesExpectedKeys]; - securityChangeExpectedKeys[0] += "[, commit]"; - file.message( - `changes[${index}]: Invalid keys. Expected keys are: ` + - securityChangeExpectedKeys.join(", "), - node - ); - } +/** + * @param {string} d + * @returns {string} + */ +function color$5(d) { + return '\u001B[33m' + d + '\u001B[39m' } -function validateChanges(file, node, changes) { - if (!Array.isArray(changes)) - return file.message("`changes` must be a YAML list", node); - const changesVersions = []; - for (let index = 0; index < changes.length; index++) { - const change = changes[index]; +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + */ - const isAncient = - typeof change.version === "string" && change.version.startsWith("v0."); - const isSecurityChange = - !isAncient && - typeof change["pr-url"] === "string" && - change["pr-url"].startsWith(privatePRUrl); +/** + * Continue traversing as normal + */ +const CONTINUE$5 = true; +/** + * Do not traverse this node’s children + */ +const SKIP$5 = 'skip'; +/** + * Stop traversing immediately + */ +const EXIT$5 = false; - if (isSecurityChange) { - validateSecurityChange(file, node, change, index); - } else if (!isAncient && invalidChangesKeys(change)) { - file.message( - `changes[${index}]: Invalid keys. Expected keys are: ` + - changesExpectedKeys.join(", "), - node - ); - } +/** + * Visit children of tree which pass a test + * + * @param tree Abstract syntax tree to walk + * @param test Test node, optional + * @param visitor Function to run for each node + * @param reverse Visit the tree in reverse order, defaults to false + */ +const visitParents$5 = + /** + * @type {( + * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & + * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) + * )} + */ + ( + /** + * @param {Node} tree + * @param {Test} test + * @param {Visitor} visitor + * @param {boolean} [reverse] + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + // @ts-expect-error no visitor given, so `visitor` is test. + visitor = test; + test = null; + } - if (containsInvalidVersionNumber(change.version)) { - file.message(`changes[${index}]: ${invalidVersionMessage}`, node); - } else if (areVersionsUnordered(change.version)) { - file.message(`changes[${index}]: list of versions is not in order`, node); - } + const is = convert$5(test); + const step = reverse ? -1 : 1; - if (!isAncient && !isSecurityChange && !prUrlRegex.test(change["pr-url"])) { - file.message( - `changes[${index}]: PR-URL does not match the expected pattern`, - node - ); - } + factory(tree, null, [])(); - if (typeof change.description !== "string" || !change.description.length) { - file.message( - `changes[${index}]: must contain a non-empty description`, - node - ); - } else if (!change.description.endsWith(".")) { - file.message( - `changes[${index}]: description must end with a period`, - node - ); - } + /** + * @param {Node} node + * @param {number?} index + * @param {Array.} parents + */ + function factory(node, index, parents) { + /** @type {Object.} */ + // @ts-expect-error: hush + const value = typeof node === 'object' && node !== null ? node : {}; + /** @type {string|undefined} */ + let name; - changesVersions.push( - Array.isArray(change.version) ? change.version[0] : change.version - ); - } + if (typeof value.type === 'string') { + name = + typeof value.tagName === 'string' + ? value.tagName + : typeof value.name === 'string' + ? value.name + : undefined; - if (areVersionsUnordered(changesVersions)) { - file.message("Items in `changes` list are not in order", node); - } -} + Object.defineProperty(visit, 'name', { + value: + 'node (' + + color$5(value.type + (name ? '<' + name + '>' : '')) + + ')' + }); + } -function validateMeta(node, file, meta) { - switch (unorderedKeys(meta)) { - case kContainsIllegalKey: - file.message( - "YAML dictionary contains illegal keys. Accepted values are: " + - allowedKeys.join(", "), - node - ); - break; + return visit - case kWrongKeyOrder: - file.message( - "YAML dictionary keys should be in this order: " + - allowedKeys.join(", "), - node - ); - break; - } + function visit() { + /** @type {ActionTuple} */ + let result = []; + /** @type {ActionTuple} */ + let subresult; + /** @type {number} */ + let offset; + /** @type {Array.} */ + let grandparents; - if (containsInvalidVersionNumber(meta.added)) { - file.message(`Invalid \`added\` value: ${invalidVersionMessage}`, node); - } else if (areVersionsUnordered(meta.added)) { - file.message("Versions in `added` list are not in order", node); - } + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$5(visitor(node, parents)); - if (containsInvalidVersionNumber(meta.deprecated)) { - file.message( - `Invalid \`deprecated\` value: ${invalidVersionMessage}`, - node - ); - } else if (areVersionsUnordered(meta.deprecated)) { - file.message("Versions in `deprecated` list are not in order", node); - } + if (result[0] === EXIT$5) { + return result + } + } - if (containsInvalidVersionNumber(meta.removed)) { - file.message(`Invalid \`removed\` value: ${invalidVersionMessage}`, node); - } else if (areVersionsUnordered(meta.removed)) { - file.message("Versions in `removed` list are not in order", node); - } + // @ts-expect-error looks like a parent. + if (node.children && result[0] !== SKIP$5) { + // @ts-expect-error looks like a parent. + offset = (reverse ? node.children.length : -1) + step; + // @ts-expect-error looks like a parent. + grandparents = parents.concat(node); - if ("changes" in meta) { - validateChanges(file, node, meta.changes); - } -} + // @ts-expect-error looks like a parent. + while (offset > -1 && offset < node.children.length) { + // @ts-expect-error looks like a parent. + subresult = factory(node.children[offset], offset, grandparents)(); -function validateYAMLComments(tree, file) { - visit$v(tree, "html", function visitor(node) { - if (node.value.startsWith("".length)); + if (subresult[0] === EXIT$5) { + return subresult + } - validateMeta(node, file, meta); - } catch (e) { - file.message(e, node); + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + + return result + } + } } - }); -} + ); -const remarkLintNodejsYamlComments = lintRule$A( - "remark-lint:nodejs-yaml-comments", - validateYAMLComments -); +/** + * @param {VisitorResult} value + * @returns {ActionTuple} + */ +function toResult$5(value) { + if (Array.isArray(value)) { + return value + } -var escapeStringRegexp$1 = string => { - if (typeof string !== 'string') { - throw new TypeError('Expected a string'); - } + if (typeof value === 'number') { + return [CONTINUE$5, value] + } - // Escape characters with special meaning either inside or outside character sets. - // Use a simple backslash escape when it’s always valid, and a \unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar. - return string - .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') - .replace(/-/g, '\\x2d'); -}; + return [value] +} -var start$1 = factory$3('start'); -var end = factory$3('end'); +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult + */ -var unistUtilPosition = position$3; +/** + * Visit children of tree which pass a test + * + * @param tree Abstract syntax tree to walk + * @param test Test, optional + * @param visitor Function to run for each node + * @param reverse Fisit the tree in reverse, defaults to false + */ +const visit$4 = + /** + * @type {( + * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & + * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) + * )} + */ + ( + /** + * @param {Node} tree + * @param {Test} test + * @param {Visitor} visitor + * @param {boolean} [reverse] + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } -position$3.start = start$1; -position$3.end = end; + visitParents$5(tree, test, overload, reverse); -function position$3(node) { - return {start: start$1(node), end: end(node)} -} + /** + * @param {Node} node + * @param {Array.} parents + */ + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); -function factory$3(type) { - point.displayName = type; +/** + * @typedef {import('unist').Position} Position + * @typedef {import('unist').Point} Point + * + * @typedef {Partial} PointLike + * + * @typedef {Object} PositionLike + * @property {PointLike} [start] + * @property {PointLike} [end] + * + * @typedef {Object} NodeLike + * @property {PositionLike} [position] + */ +var pointStart$4 = point$4('start'); +var pointEnd$2 = point$4('end'); + +/** + * Get the positional info of `node`. + * + * @param {'start'|'end'} type + */ +function point$4(type) { return point + /** + * Get the positional info of `node`. + * + * @param {NodeLike} [node] + * @returns {Point} + */ function point(node) { + /** @type {Point} */ + // @ts-ignore looks like a point var point = (node && node.position && node.position[type]) || {}; return { line: point.line || null, column: point.column || null, - offset: isNaN(point.offset) ? null : point.offset + offset: point.offset > -1 ? point.offset : null } } } -var convert_1 = convert$z; - -function convert$z(test) { - if (test == null) { - return ok$x - } - - if (typeof test === 'string') { - return typeFactory$w(test) - } - - if (typeof test === 'object') { - return 'length' in test ? anyFactory$w(test) : allFactory(test) - } - - if (typeof test === 'function') { - return test - } - - throw new Error('Expected function, string, or object as test') -} - -// Utility assert each property in `test` is represented in `node`, and each -// values are strictly equal. -function allFactory(test) { - return all +/** + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT + * @module rule-style + * @fileoverview + * Warn when the thematic breaks (horizontal rules) violate a given or + * detected style. + * + * Options: `string`, either a corect thematic breaks such as `***`, or + * `'consistent'`, default: `'consistent'`. + * + * `'consistent'` detects the first used thematic break style and warns when + * subsequent rules use different styles. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) + * has three settings that define how rules are created: + * + * * [`rule`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsrule) + * (default: `*`) — Marker to use + * * [`ruleRepetition`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsrulerepetition) + * (default: `3`) — Number of markers to use + * * [`ruleSpaces`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsrulespaces) + * (default: `true`) — Whether to pad markers with spaces + * + * 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. + * + * @example + * {"name": "ok.md", "setting": "* * *"} + * + * * * * + * + * * * * + * + * @example + * {"name": "ok.md", "setting": "_______"} + * + * _______ + * + * _______ + * + * @example + * {"name": "not-ok.md", "label": "input"} + * + * *** + * + * * * * + * + * @example + * {"name": "not-ok.md", "label": "output"} + * + * 3:1-3:6: Rules should use `***` + * + * @example + * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} + * + * 1:1: Incorrect preferred rule style: provide a correct markdown rule or `'consistent'` + */ - function all(node) { - var key; +const remarkLintRuleStyle = lintRule$4( + 'remark-lint:rule-style', + /** @type {import('unified-lint-rule').Rule} */ + (tree, file, option = 'consistent') => { + const value = String(file); - for (key in test) { - if (node[key] !== test[key]) return false + if (option !== 'consistent' && /[^-_* ]/.test(option)) { + file.fail( + "Incorrect preferred rule style: provide a correct markdown rule or `'consistent'`" + ); } - return true - } -} - -function anyFactory$w(tests) { - var checks = []; - var index = -1; - - while (++index < tests.length) { - checks[index] = convert$z(tests[index]); - } - - return any + visit$4(tree, 'thematicBreak', (node) => { + const initial = pointStart$4(node).offset; + const final = pointEnd$2(node).offset; - function any() { - var index = -1; + if (typeof initial === 'number' && typeof final === 'number') { + const rule = value.slice(initial, final); - while (++index < checks.length) { - if (checks[index].apply(this, arguments)) { - return true + if (option === 'consistent') { + option = rule; + } else if (rule !== option) { + file.message('Rules should use `' + option + '`', node); + } } - } - - return false + }); } -} +); -// Utility to convert a string into a function which checks a given node’s type -// for said string. -function typeFactory$w(test) { - return type +/** + * @typedef {import('unist').Node} Node + * @typedef {import('vfile').VFile} VFile + * + * @typedef {0|1|2} Severity + * @typedef {'warn'|'on'|'off'|'error'} Label + * @typedef {[Severity, ...unknown[]]} SeverityTuple + * + * @callback Rule + * @param {Node} tree + * @param {VFile} file + * @param {unknown} options + * @returns {void} + */ - function type(node) { - return Boolean(node && node.type === test) - } -} +const primitives$3 = new Set(['string', 'number', 'boolean']); -// Utility to return true. -function ok$x() { - return true -} +/** + * @param {string} id + * @param {Rule} rule + */ +function lintRule$3(id, rule) { + const parts = id.split(':'); + // Possibly useful if externalised later. + /* c8 ignore next */ + const source = parts[1] ? parts[0] : undefined; + const ruleId = parts[1]; -var color_1 = color$x; -function color$x(d) { - return '\u001B[33m' + d + '\u001B[39m' -} + Object.defineProperty(plugin, 'name', {value: id}); + + return plugin -var unistUtilVisitParents = visitParents$w; + /** @type {import('unified').Plugin<[unknown]|void[]>} */ + function plugin(raw) { + const [severity, options] = coerce$3(ruleId, raw); + if (!severity) return + const fatal = severity === 2; + return (tree, file, next) => { + let index = file.messages.length - 1; -var CONTINUE$w = true; -var SKIP$w = 'skip'; -var EXIT$w = false; + wrap(rule, (error) => { + const messages = file.messages; -visitParents$w.CONTINUE = CONTINUE$w; -visitParents$w.SKIP = SKIP$w; -visitParents$w.EXIT = EXIT$w; + // Add the error, if not already properly added. + // Only happens for incorrect plugins. + /* c8 ignore next 6 */ + // @ts-expect-error: errors could be `messages`. + if (error && !messages.includes(error)) { + try { + file.fail(error); + } catch {} + } -function visitParents$w(tree, test, visitor, reverse) { - var step; - var is; + while (++index < messages.length) { + Object.assign(messages[index], {ruleId, source, fatal}); + } - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; + next(); + })(tree, file, options); + } } +} - is = convert_1(test); - step = reverse ? -1 : 1; - - factory(tree, null, [])(); +/** + * Coerce a value to a severity--options tuple. + * + * @param {string} name + * @param {unknown} value + * @returns {SeverityTuple} + */ +function coerce$3(name, value) { + /** @type {unknown[]} */ + let result; - function factory(node, index, parents) { - var value = typeof node === 'object' && node !== null ? node : {}; - var name; + if (typeof value === 'boolean') { + result = [value]; + } else if (value === null || value === undefined) { + result = [1]; + } else if ( + Array.isArray(value) && + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + primitives$3.has(typeof value[0]) + ) { + // `isArray(unknown)` is turned into `any[]`: + // type-coverage:ignore-next-line + result = [...value]; + } else { + result = [1, value]; + } - if (typeof value.type === 'string') { - name = - typeof value.tagName === 'string' - ? value.tagName - : typeof value.name === 'string' - ? value.name - : undefined; + let level = result[0]; - visit.displayName = - 'node (' + color_1(value.type + (name ? '<' + name + '>' : '')) + ')'; + 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]; } + } - return visit + if (typeof level !== 'number' || level < 0 || level > 2) { + throw new Error( + 'Incorrect severity `' + + level + + '` for `' + + name + + '`, ' + + 'expected 0, 1, or 2' + ) + } - function visit() { - var grandparents = parents.concat(node); - var result = []; - var subresult; - var offset; + result[0] = level; - if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$w(visitor(node, parents)); + // @ts-expect-error: it’s now a valid tuple. + return result +} - if (result[0] === EXIT$w) { - return result - } - } +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * + * @typedef {string} Type + * @typedef {Object} Props + * + * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test + */ - if (node.children && result[0] !== SKIP$w) { - offset = (reverse ? node.children.length : -1) + step; +const convert$4 = + /** + * @type {( + * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & + * ((test?: Test) => AssertAnything) + * )} + */ + ( + /** + * Generate an assertion from a check. + * @param {Test} [test] + * When nullish, checks if `node` is a `Node`. + * When `string`, works like passing `function (node) {return node.type === test}`. + * When `function` checks if function passed the node is true. + * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values. + * When `array`, checks any one of the subtests pass. + * @returns {AssertAnything} + */ + function (test) { + if (test === undefined || test === null) { + return ok$4 + } - while (offset > -1 && offset < node.children.length) { - subresult = factory(node.children[offset], offset, grandparents)(); + if (typeof test === 'string') { + return typeFactory$4(test) + } - if (subresult[0] === EXIT$w) { - return subresult - } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$4(test) : propsFactory$4(test) + } - offset = - typeof subresult[1] === 'number' ? subresult[1] : offset + step; - } + if (typeof test === 'function') { + return castFactory$4(test) } - return result + throw new Error('Expected function, string, or object as test') } - } -} + ); +/** + * @param {Array.} tests + * @returns {AssertAnything} + */ +function anyFactory$4(tests) { + /** @type {Array.} */ + const checks = []; + let index = -1; -function toResult$w(value) { - if (value !== null && typeof value === 'object' && 'length' in value) { - return value + while (++index < tests.length) { + checks[index] = convert$4(tests[index]); } - if (typeof value === 'number') { - return [CONTINUE$w, value] - } + return castFactory$4(any) - return [value] -} + /** + * @this {unknown} + * @param {unknown[]} parameters + * @returns {boolean} + */ + function any(...parameters) { + let index = -1; -var unistUtilVisit = visit$w; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +/** + * Utility to assert each property in `test` is represented in `node`, and each + * values are strictly equal. + * + * @param {Props} check + * @returns {AssertAnything} + */ +function propsFactory$4(check) { + return castFactory$4(all) -var CONTINUE$x = unistUtilVisitParents.CONTINUE; -var SKIP$x = unistUtilVisitParents.SKIP; -var EXIT$x = unistUtilVisitParents.EXIT; + /** + * @param {Node} node + * @returns {boolean} + */ + function all(node) { + /** @type {string} */ + let key; -visit$w.CONTINUE = CONTINUE$x; -visit$w.SKIP = SKIP$x; -visit$w.EXIT = EXIT$x; + for (key in check) { + // @ts-expect-error: hush, it sure works as an index. + if (node[key] !== check[key]) return false + } -function visit$w(tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; + return true } +} - unistUtilVisitParents(tree, test, overload, reverse); +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * + * @param {Type} check + * @returns {AssertAnything} + */ +function typeFactory$4(check) { + return castFactory$4(type) - function overload(node, parents) { - var parent = parents[parents.length - 1]; - var index = parent ? parent.children.indexOf(node) : null; - return visitor(node, index, parent) + /** + * @param {Node} node + */ + function type(node) { + return node && node.type === check } } -var vfileLocation = factory$4; - -function factory$4(file) { - var value = String(file); - var indices = []; - var search = /\r?\n|\r/g; +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * @param {TestFunctionAnything} check + * @returns {AssertAnything} + */ +function castFactory$4(check) { + return assertion - while (search.exec(value)) { - indices.push(search.lastIndex); + /** + * @this {unknown} + * @param {Array.} parameters + * @returns {boolean} + */ + function assertion(...parameters) { + // @ts-expect-error: spreading is fine. + return Boolean(check.call(this, ...parameters)) } +} - indices.push(value.length + 1); +// Utility to return true. +function ok$4() { + return true +} - return { - toPoint: offsetToPoint, - toPosition: offsetToPoint, - toOffset: pointToOffset - } +/** + * @param {string} d + * @returns {string} + */ +function color$4(d) { + return '\u001B[33m' + d + '\u001B[39m' +} - // Get the line and column-based `point` for `offset` in the bound indices. - function offsetToPoint(offset) { - var index = -1; +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + */ - if (offset > -1 && offset < indices[indices.length - 1]) { - while (++index < indices.length) { - if (indices[index] > offset) { - return { - line: index + 1, - column: offset - (indices[index - 1] || 0) + 1, - offset: offset - } - } +/** + * Continue traversing as normal + */ +const CONTINUE$4 = true; +/** + * Do not traverse this node’s children + */ +const SKIP$4 = 'skip'; +/** + * Stop traversing immediately + */ +const EXIT$4 = false; + +/** + * Visit children of tree which pass a test + * + * @param tree Abstract syntax tree to walk + * @param test Test node, optional + * @param visitor Function to run for each node + * @param reverse Visit the tree in reverse order, defaults to false + */ +const visitParents$4 = + /** + * @type {( + * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & + * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) + * )} + */ + ( + /** + * @param {Node} tree + * @param {Test} test + * @param {Visitor} visitor + * @param {boolean} [reverse] + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + // @ts-expect-error no visitor given, so `visitor` is test. + visitor = test; + test = null; } - } - return {} - } + const is = convert$4(test); + const step = reverse ? -1 : 1; - // Get the `offset` for a line and column-based `point` in the bound - // indices. - function pointToOffset(point) { - var line = point && point.line; - var column = point && point.column; - var offset; + factory(tree, null, [])(); - if (!isNaN(line) && !isNaN(column) && line - 1 in indices) { - offset = (indices[line - 2] || 0) + column - 1 || 0; - } + /** + * @param {Node} node + * @param {number?} index + * @param {Array.} parents + */ + function factory(node, index, parents) { + /** @type {Object.} */ + // @ts-expect-error: hush + const value = typeof node === 'object' && node !== null ? node : {}; + /** @type {string|undefined} */ + let name; - return offset > -1 && offset < indices[indices.length - 1] ? offset : -1 - } -} + if (typeof value.type === 'string') { + name = + typeof value.tagName === 'string' + ? value.tagName + : typeof value.name === 'string' + ? value.name + : undefined; -const start$2 = unistUtilPosition.start; + Object.defineProperty(visit, 'name', { + value: + 'node (' + + color$4(value.type + (name ? '<' + name + '>' : '')) + + ')' + }); + } -var remarkLintProhibitedStrings = unifiedLintRule('remark-lint:prohibited-strings', prohibitedStrings); + return visit -function testProhibited (val, content) { - let regexpFlags = 'g'; - let no = val.no; + function visit() { + /** @type {ActionTuple} */ + let result = []; + /** @type {ActionTuple} */ + let subresult; + /** @type {number} */ + let offset; + /** @type {Array.} */ + let grandparents; - if (!no) { - no = escapeStringRegexp$1(val.yes); - regexpFlags += 'i'; - } + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$4(visitor(node, parents)); - let regexpString = '(? -1 && offset < node.children.length) { + // @ts-expect-error looks like a parent. + subresult = factory(node.children[offset], offset, grandparents)(); - regexpString += `(${no})`; + if (subresult[0] === EXIT$4) { + return subresult + } - if (ignoreNextTo) { - regexpString += `(?!${ignoreNextTo})`; - } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } - // If it ends with a letter, make sure it is a word break. - if (/\b$/.test(no)) { - regexpString += '\\b'; + return result + } + } + } + ); + +/** + * @param {VisitorResult} value + * @returns {ActionTuple} + */ +function toResult$4(value) { + if (Array.isArray(value)) { + return value } - regexpString += '(?!\\.\\w)'; - const re = new RegExp(regexpString, regexpFlags); - const results = []; - let result = re.exec(content); - while (result) { - if (result[1] !== val.yes) { - results.push({ result: result[1], index: result.index }); - } - result = re.exec(content); + if (typeof value === 'number') { + return [CONTINUE$4, value] } - return results + return [value] } -function prohibitedStrings (ast, file, strings) { - const location = vfileLocation(file); +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult + */ - unistUtilVisit(ast, 'text', checkText); +/** + * Visit children of tree which pass a test + * + * @param tree Abstract syntax tree to walk + * @param test Test, optional + * @param visitor Function to run for each node + * @param reverse Fisit the tree in reverse, defaults to false + */ +const visit$3 = + /** + * @type {( + * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & + * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) + * )} + */ + ( + /** + * @param {Node} tree + * @param {Test} test + * @param {Visitor} visitor + * @param {boolean} [reverse] + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } - function checkText (node) { - const content = node.value; - const initial = start$2(node).offset; + visitParents$4(tree, test, overload, reverse); - strings.forEach((val) => { - const results = testProhibited(val, content); - if (results.length) { - results.forEach(({ result, index }) => { - const message = val.yes ? `Use "${val.yes}" instead of "${result}"` : `Do not use "${result}"`; - file.message(message, { - start: location.toPoint(initial + index), - end: location.toPoint(initial + index + [...result].length) - }); - }); + /** + * @param {Node} node + * @param {Array.} parents + */ + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) } - }); - } -} + } + ); /** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware + * @typedef {import('unist').Position} Position + * @typedef {import('unist').Point} Point * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline + * @typedef {Partial} PointLike + * + * @typedef {Object} PositionLike + * @property {PointLike} [start] + * @property {PointLike} [end] + * + * @typedef {Object} NodeLike + * @property {PositionLike} [position] */ +var pointStart$3 = point$3('start'); + /** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. + * Get the positional info of `node`. * - * @param {Middleware} middleware - * @param {Callback} callback + * @param {'start'|'end'} type */ -function wrap$C(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped +function point$3(type) { + return point /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} + * Get the positional info of `node`. + * + * @param {NodeLike} [node] + * @returns {Point} */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; + function point(node) { + /** @type {Point} */ + // @ts-ignore looks like a point + var point = (node && node.position && node.position[type]) || {}; - if (fnExpectsCallback) { - parameters.push(done); + return { + line: point.line || null, + column: point.column || null, + offset: point.offset > -1 ? point.offset : null } + } +} - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; +/** + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT + * @module strong-marker + * @fileoverview + * Warn for violating importance (strong) markers. + * + * Options: `'consistent'`, `'*'`, or `'_'`, default: `'consistent'`. + * + * `'consistent'` detects the first used importance style and warns when + * subsequent importance sequences use different styles. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) + * formats importance using an `*` (asterisk) by default. + * Pass + * [`strong: '_'`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsstrong) + * to use `_` (underscore) instead. + * + * 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. + * + * @example + * {"name": "ok.md"} + * + * **foo** and **bar**. + * + * @example + * {"name": "also-ok.md"} + * + * __foo__ and __bar__. + * + * @example + * {"name": "ok.md", "setting": "*"} + * + * **foo**. + * + * @example + * {"name": "ok.md", "setting": "_"} + * + * __foo__. + * + * @example + * {"name": "not-ok.md", "label": "input"} + * + * **foo** and __bar__. + * + * @example + * {"name": "not-ok.md", "label": "output"} + * + * 1:13-1:20: Strong should use `*` as a marker + * + * @example + * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} + * + * 1:1: Incorrect strong marker `💩`: use either `'consistent'`, `'*'`, or `'_'` + */ - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } +const remarkLintStrongMarker = lintRule$3( + 'remark-lint:strong-marker', + /** @type {import('unified-lint-rule').Rule} */ + (tree, file, option = 'consistent') => { + const value = String(file); - return done(exception) + if (option !== '*' && option !== '_' && option !== 'consistent') { + file.fail( + 'Incorrect strong marker `' + + option + + "`: use either `'consistent'`, `'*'`, or `'_'`" + ); } - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } + visit$3(tree, 'strong', (node) => { + const start = pointStart$3(node).offset; - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } + if (typeof start === 'number') { + const marker = /** @type {Marker} */ (value.charAt(start)); - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); + if (option === 'consistent') { + option = marker; + } else if (marker !== option) { + file.message('Strong should use `' + option + '` as a marker', node); + } + } + }); } -} +); /** * @typedef {import('unist').Node} Node @@ -70962,13 +79040,13 @@ function wrap$C(middleware, callback) { * @returns {void} */ -const primitives$B = new Set(['string', 'number', 'boolean']); +const primitives$2 = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$B(id, rule) { +function lintRule$2(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -70981,7 +79059,7 @@ function lintRule$B(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$C(ruleId, raw); + const [severity, options] = coerce$2(ruleId, raw); if (!severity) return @@ -70990,7 +79068,7 @@ function lintRule$B(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$C(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -71020,7 +79098,7 @@ function lintRule$B(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$C(name, value) { +function coerce$2(name, value) { /** @type {unknown[]} */ let result; @@ -71032,7 +79110,7 @@ function coerce$C(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$B.has(typeof value[0]) + primitives$2.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -71085,7 +79163,7 @@ function coerce$C(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$A = +const convert$3 = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -71105,19 +79183,19 @@ const convert$A = */ function (test) { if (test === undefined || test === null) { - return ok$y + return ok$3 } if (typeof test === 'string') { - return typeFactory$x(test) + return typeFactory$3(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$x(test) : propsFactory$w(test) + return Array.isArray(test) ? anyFactory$3(test) : propsFactory$3(test) } if (typeof test === 'function') { - return castFactory$w(test) + return castFactory$3(test) } throw new Error('Expected function, string, or object as test') @@ -71127,16 +79205,16 @@ const convert$A = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$x(tests) { +function anyFactory$3(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$A(tests[index]); + checks[index] = convert$3(tests[index]); } - return castFactory$w(any) + return castFactory$3(any) /** * @this {unknown} @@ -71161,8 +79239,8 @@ function anyFactory$x(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$w(check) { - return castFactory$w(all) +function propsFactory$3(check) { + return castFactory$3(all) /** * @param {Node} node @@ -71188,8 +79266,8 @@ function propsFactory$w(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$x(check) { - return castFactory$w(type) +function typeFactory$3(check) { + return castFactory$3(type) /** * @param {Node} node @@ -71205,7 +79283,7 @@ function typeFactory$x(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$w(check) { +function castFactory$3(check) { return assertion /** @@ -71220,7 +79298,7 @@ function castFactory$w(check) { } // Utility to return true. -function ok$y() { +function ok$3() { return true } @@ -71228,7 +79306,7 @@ function ok$y() { * @param {string} d * @returns {string} */ -function color$y(d) { +function color$3(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -71241,15 +79319,15 @@ function color$y(d) { /** * Continue traversing as normal */ -const CONTINUE$y = true; +const CONTINUE$3 = true; /** * Do not traverse this node’s children */ -const SKIP$y = 'skip'; +const SKIP$3 = 'skip'; /** * Stop traversing immediately */ -const EXIT$y = false; +const EXIT$3 = false; /** * Visit children of tree which pass a test @@ -71259,7 +79337,7 @@ const EXIT$y = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$x = +const visitParents$3 = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -71281,7 +79359,7 @@ const visitParents$x = test = null; } - const is = convert$A(test); + const is = convert$3(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -71309,7 +79387,7 @@ const visitParents$x = Object.defineProperty(visit, 'name', { value: 'node (' + - color$y(value.type + (name ? '<' + name + '>' : '')) + + color$3(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -71327,15 +79405,15 @@ const visitParents$x = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$x(visitor(node, parents)); + result = toResult$3(visitor(node, parents)); - if (result[0] === EXIT$y) { + if (result[0] === EXIT$3) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$y) { + if (node.children && result[0] !== SKIP$3) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -71346,7 +79424,7 @@ const visitParents$x = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$y) { + if (subresult[0] === EXIT$3) { return subresult } @@ -71365,13 +79443,13 @@ const visitParents$x = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$x(value) { +function toResult$3(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$y, value] + return [CONTINUE$3, value] } return [value] @@ -71392,7 +79470,7 @@ function toResult$x(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$x = +const visit$2 = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -71413,7 +79491,7 @@ const visit$x = test = null; } - visitParents$x(tree, test, overload, reverse); + visitParents$3(tree, test, overload, reverse); /** * @param {Node} node @@ -71444,15 +79522,15 @@ const visit$x = * @property {PositionLike} [position] */ -var pointStart$m = point$p('start'); -var pointEnd$c = point$p('end'); +var pointStart$2 = point$2('start'); +var pointEnd$1 = point$2('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$p(type) { +function point$2(type) { return point /** @@ -71478,177 +79556,335 @@ function point$p(type) { * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module rule-style + * @module table-cell-padding * @fileoverview - * Warn when the thematic breaks (horizontal rules) violate a given or - * detected style. + * Warn when table cells are incorrectly padded. * - * Options: `string`, either a corect thematic breaks such as `***`, or - * `'consistent'`, default: `'consistent'`. + * Options: `'consistent'`, `'padded'`, or `'compact'`, default: `'consistent'`. * - * `'consistent'` detects the first used thematic break style and warns when - * subsequent rules use different styles. + * `'consistent'` detects the first used cell padding style and warns when + * subsequent cells use different styles. * * ## Fix * * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * has three settings that define how rules are created: - * - * * [`rule`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsrule) - * (default: `*`) — Marker to use - * * [`ruleRepetition`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsrulerepetition) - * (default: `3`) — Number of markers to use - * * [`ruleSpaces`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsrulespaces) - * (default: `true`) — Whether to pad markers with spaces + * formats tables with padding by default. + * Pass + * [`spacedTable: false`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsspacedtable) + * to not use padding. * * 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. * * @example - * {"name": "ok.md", "setting": "* * *"} + * {"name": "ok.md", "setting": "padded", "gfm": true} * - * * * * + * | A | B | + * | ----- | ----- | + * | Alpha | Bravo | * - * * * * + * @example + * {"name": "not-ok.md", "label": "input", "setting": "padded", "gfm": true} + * + * | A | B | + * | :----|----: | + * | Alpha|Bravo | + * + * | C | D | + * | :----- | ---: | + * |Charlie | Delta| + * + * Too much padding isn’t good either: + * + * | E | F | G | H | + * | :---- | -------- | :----: | -----: | + * | Echo | Foxtrot | Golf | Hotel | * * @example - * {"name": "ok.md", "setting": "_______"} + * {"name": "not-ok.md", "label": "output", "setting": "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 * - * _______ + * @example + * {"name": "ok.md", "setting": "compact", "gfm": true} + * + * |A |B | + * |-----|-----| + * |Alpha|Bravo| * * @example - * {"name": "not-ok.md", "label": "input"} + * {"name": "not-ok.md", "label": "input", "setting": "compact", "gfm": true} * - * *** + * | A | B | + * | -----| -----| + * | Alpha| Bravo| * - * * * * + * |C | D| + * |:------|-----:| + * |Charlie|Delta | * * @example - * {"name": "not-ok.md", "label": "output"} + * {"name": "not-ok.md", "label": "output", "setting": "compact", "gfm": true} * - * 3:1-3:6: Rules should use `***` + * 3:2: Cell should be compact + * 3:11: Cell should be compact + * 7:16: Cell should be compact * * @example - * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} + * {"name": "ok-padded.md", "setting": "consistent", "gfm": true} * - * 1:1: Incorrect preferred rule style: provide a correct markdown rule or `'consistent'` + * | A | B | + * | ----- | ----- | + * | Alpha | Bravo | + * + * | C | D | + * | ------- | ----- | + * | Charlie | Delta | + * + * @example + * {"name": "not-ok-padded.md", "label": "input", "setting": "consistent", "gfm": true} + * + * | A | B | + * | ----- | ----- | + * | Alpha | Bravo | + * + * | C | D | + * | :----- | ----: | + * |Charlie | Delta | + * + * @example + * {"name": "not-ok-padded.md", "label": "output", "setting": "consistent", "gfm": true} + * + * 7:2: Cell should be padded + * + * @example + * {"name": "ok-compact.md", "setting": "consistent", "gfm": true} + * + * |A |B | + * |-----|-----| + * |Alpha|Bravo| + * + * |C |D | + * |-------|-----| + * |Charlie|Delta| + * + * @example + * {"name": "not-ok-compact.md", "label": "input", "setting": "consistent", "gfm": true} + * + * |A |B | + * |-----|-----| + * |Alpha|Bravo| + * + * |C | D| + * |:------|-----:| + * |Charlie|Delta | + * + * @example + * {"name": "not-ok-compact.md", "label": "output", "setting": "consistent", "gfm": true} + * + * 7:16: Cell should be compact + * + * @example + * {"name": "not-ok.md", "label": "output", "setting": "💩", "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} + * + * + * + * | | Alpha | Bravo| + * | ------ | ----- | ---: | + * | Charlie| | Echo| + * + * @example + * {"name": "empty.md", "label": "output", "setting": "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} + * + * + * + * | Alpha | Bravo | Charlie | + * | ----- | ------- | ------- | + * | Delta | + * | Echo | Foxtrot | */ -const remarkLintRuleStyle = lintRule$B( - 'remark-lint:rule-style', +const remarkLintTableCellPadding = lintRule$2( + 'remark-lint:table-cell-padding', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { - const value = String(file); - - if (option !== 'consistent' && /[^-_* ]/.test(option)) { + if ( + option !== 'padded' && + option !== 'compact' && + option !== 'consistent' + ) { file.fail( - "Incorrect preferred rule style: provide a correct markdown rule or `'consistent'`" + 'Incorrect table cell padding style `' + + option + + "`, expected `'padded'`, `'compact'`, or `'consistent'`" ); } - visit$x(tree, 'thematicBreak', (node) => { - const initial = pointStart$m(node).offset; - const final = pointEnd$c(node).offset; + visit$2(tree, 'table', (node) => { + const rows = node.children; + // To do: fix types to always have `align` defined. + /* c8 ignore next */ + const align = node.align || []; + /** @type {number[]} */ + const sizes = Array.from({length: align.length}); + /** @type {Entry[]} */ + const entries = []; + let index = -1; - if (typeof initial === 'number' && typeof final === 'number') { - const rule = value.slice(initial, final); + // Check rows. + while (++index < rows.length) { + const row = rows[index]; + let column = -1; - if (option === 'consistent') { - option = rule; - } else if (rule !== option) { - file.message('Rules should use `' + option + '`', node); + // Check fences (before, between, and after cells). + while (++column < row.children.length) { + const cell = row.children[column]; + + if (cell.children.length > 0) { + const cellStart = pointStart$2(cell).offset; + const cellEnd = pointEnd$1(cell).offset; + const contentStart = pointStart$2(cell.children[0]).offset; + const contentEnd = pointEnd$1( + 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 + }); + + // Detect max space per column. + sizes[column] = Math.max( + sizes[column] || 0, + contentEnd - contentStart + ); + } } } + + const style = + option === 'consistent' + ? entries[0] && (!entries[0].start || !entries[0].end) + ? 0 + : 1 + : option === 'padded' + ? 1 + : 0; + + index = -1; + + while (++index < entries.length) { + checkSide('start', entries[index], style, sizes); + checkSide('end', entries[index], style, sizes); + } + + return SKIP$3 }); - } -); -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ + /** + * @param {'start'|'end'} side + * @param {Entry} entry + * @param {0|1} style + * @param {number[]} sizes + */ + function checkSide(side, entry, style, sizes) { + const cell = entry.node; + const column = entry.column; + const spacing = entry[side]; -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$D(middleware, callback) { - /** @type {boolean} */ - let called; + if (spacing === undefined || spacing === style) { + return + } - return wrapped + let reason = 'Cell should be '; - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; + if (style === 0) { + // Ignore every cell except the biggest in the column. + if (size(cell) < sizes[column]) { + return + } - if (fnExpectsCallback) { - parameters.push(done); - } + reason += 'compact'; + } else { + reason += 'padded'; - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; + if (spacing > style) { + // May be right or center aligned. + if (size(cell) < sizes[column]) { + return + } - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception + reason += ' with 1 space, not ' + spacing; + } } - return done(exception) - } + /** @type {Point} */ + let point; - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); + if (side === 'start') { + point = pointStart$2(cell); + if (!column) { + point.column++; + + if (typeof point.offset === 'number') { + point.offset++; + } + } } else { - then(result); + point = pointEnd$1(cell); + point.column--; + + if (typeof point.offset === 'number') { + point.offset--; + } } - } - } - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); + file.message(reason, point); } } +); - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } +/** + * @param {TableCell} node + * @returns {number} + */ +function size(node) { + const head = pointStart$2(node.children[0]).offset; + const tail = pointEnd$1(node.children[node.children.length - 1]).offset; + // Only called when we’re sure offsets exist. + /* c8 ignore next */ + return typeof head === 'number' && typeof tail === 'number' ? tail - head : 0 } /** @@ -71666,13 +79902,13 @@ function wrap$D(middleware, callback) { * @returns {void} */ -const primitives$C = new Set(['string', 'number', 'boolean']); +const primitives$1 = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$C(id, rule) { +function lintRule$1(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -71685,7 +79921,7 @@ function lintRule$C(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$D(ruleId, raw); + const [severity, options] = coerce$1(ruleId, raw); if (!severity) return @@ -71694,7 +79930,7 @@ function lintRule$C(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$D(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -71724,7 +79960,7 @@ function lintRule$C(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$D(name, value) { +function coerce$1(name, value) { /** @type {unknown[]} */ let result; @@ -71736,7 +79972,7 @@ function coerce$D(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$C.has(typeof value[0]) + primitives$1.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -71789,7 +80025,7 @@ function coerce$D(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$B = +const convert$2 = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -71809,19 +80045,19 @@ const convert$B = */ function (test) { if (test === undefined || test === null) { - return ok$z + return ok$2 } if (typeof test === 'string') { - return typeFactory$y(test) + return typeFactory$2(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$y(test) : propsFactory$x(test) + return Array.isArray(test) ? anyFactory$2(test) : propsFactory$2(test) } if (typeof test === 'function') { - return castFactory$x(test) + return castFactory$2(test) } throw new Error('Expected function, string, or object as test') @@ -71831,16 +80067,16 @@ const convert$B = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$y(tests) { +function anyFactory$2(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$B(tests[index]); + checks[index] = convert$2(tests[index]); } - return castFactory$x(any) + return castFactory$2(any) /** * @this {unknown} @@ -71865,8 +80101,8 @@ function anyFactory$y(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$x(check) { - return castFactory$x(all) +function propsFactory$2(check) { + return castFactory$2(all) /** * @param {Node} node @@ -71892,8 +80128,8 @@ function propsFactory$x(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$y(check) { - return castFactory$x(type) +function typeFactory$2(check) { + return castFactory$2(type) /** * @param {Node} node @@ -71909,7 +80145,7 @@ function typeFactory$y(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$x(check) { +function castFactory$2(check) { return assertion /** @@ -71924,7 +80160,7 @@ function castFactory$x(check) { } // Utility to return true. -function ok$z() { +function ok$2() { return true } @@ -71932,7 +80168,7 @@ function ok$z() { * @param {string} d * @returns {string} */ -function color$z(d) { +function color$2(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -71945,15 +80181,15 @@ function color$z(d) { /** * Continue traversing as normal */ -const CONTINUE$z = true; +const CONTINUE$2 = true; /** * Do not traverse this node’s children */ -const SKIP$z = 'skip'; +const SKIP$2 = 'skip'; /** * Stop traversing immediately */ -const EXIT$z = false; +const EXIT$2 = false; /** * Visit children of tree which pass a test @@ -71963,7 +80199,7 @@ const EXIT$z = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$y = +const visitParents$2 = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -71985,7 +80221,7 @@ const visitParents$y = test = null; } - const is = convert$B(test); + const is = convert$2(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -72013,7 +80249,7 @@ const visitParents$y = Object.defineProperty(visit, 'name', { value: 'node (' + - color$z(value.type + (name ? '<' + name + '>' : '')) + + color$2(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -72031,15 +80267,15 @@ const visitParents$y = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$y(visitor(node, parents)); + result = toResult$2(visitor(node, parents)); - if (result[0] === EXIT$z) { + if (result[0] === EXIT$2) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$z) { + if (node.children && result[0] !== SKIP$2) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -72050,7 +80286,7 @@ const visitParents$y = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$z) { + if (subresult[0] === EXIT$2) { return subresult } @@ -72069,13 +80305,13 @@ const visitParents$y = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$y(value) { +function toResult$2(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$z, value] + return [CONTINUE$2, value] } return [value] @@ -72096,7 +80332,7 @@ function toResult$y(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$y = +const visit$1 = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -72117,7 +80353,7 @@ const visit$y = test = null; } - visitParents$y(tree, test, overload, reverse); + visitParents$2(tree, test, overload, reverse); /** * @param {Node} node @@ -72148,14 +80384,15 @@ const visit$y = * @property {PositionLike} [position] */ -var pointStart$n = point$q('start'); +var pointStart$1 = point$1('start'); +var pointEnd = point$1('end'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$q(type) { +function point$1(type) { return point /** @@ -72181,177 +80418,75 @@ function point$q(type) { * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module strong-marker + * @module table-pipes * @fileoverview - * Warn for violating importance (strong) markers. - * - * Options: `'consistent'`, `'*'`, or `'_'`, default: `'consistent'`. - * - * `'consistent'` detects the first used importance style and warns when - * subsequent importance sequences use different styles. + * Warn when table rows are not fenced with pipes. * * ## Fix * * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats importance using an `*` (asterisk) by default. - * Pass - * [`strong: '_'`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsstrong) - * to use `_` (underscore) instead. + * creates fenced rows with initial and final pipes by default. * * 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. * * @example - * {"name": "ok.md"} - * - * **foo** and **bar**. - * - * @example - * {"name": "also-ok.md"} - * - * __foo__ and __bar__. - * - * @example - * {"name": "ok.md", "setting": "*"} - * - * **foo**. - * - * @example - * {"name": "ok.md", "setting": "_"} - * - * __foo__. - * - * @example - * {"name": "not-ok.md", "label": "input"} - * - * **foo** and __bar__. - * - * @example - * {"name": "not-ok.md", "label": "output"} + * {"name": "ok.md", "gfm": true} * - * 1:13-1:20: Strong should use `*` as a marker + * | A | B | + * | ----- | ----- | + * | Alpha | Bravo | * * @example - * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} - * - * 1:1: Incorrect strong marker `💩`: use either `'consistent'`, `'*'`, or `'_'` - */ - -const remarkLintStrongMarker = lintRule$C( - 'remark-lint:strong-marker', - /** @type {import('unified-lint-rule').Rule} */ - (tree, file, option = 'consistent') => { - const value = String(file); - - if (option !== '*' && option !== '_' && option !== 'consistent') { - file.fail( - 'Incorrect strong marker `' + - option + - "`: use either `'consistent'`, `'*'`, or `'_'`" - ); - } - - visit$y(tree, 'strong', (node) => { - const start = pointStart$n(node).offset; - - if (typeof start === 'number') { - const marker = /** @type {Marker} */ (value.charAt(start)); - - if (option === 'consistent') { - option = marker; - } else if (marker !== option) { - file.message('Strong should use `' + option + '` as a marker', node); - } - } - }); - } -); - -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware + * {"name": "not-ok.md", "label": "input", "gfm": true} * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. + * A | B + * ----- | ----- + * Alpha | Bravo * - * @param {Middleware} middleware - * @param {Callback} callback + * @example + * {"name": "not-ok.md", "label": "output", "gfm": true} + * + * 1:1: Missing initial pipe in table fence + * 1:10: Missing final pipe in table fence + * 3:1: Missing initial pipe in table fence + * 3:14: Missing final pipe in table fence */ -function wrap$E(middleware, callback) { - /** @type {boolean} */ - let called; - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; +const reasonStart = 'Missing initial pipe in table fence'; +const reasonEnd = 'Missing final pipe in table fence'; - if (fnExpectsCallback) { - parameters.push(done); - } +const remarkLintTablePipes = lintRule$1( + 'remark-lint:table-pipes', + /** @type {import('unified-lint-rule').Rule} */ + (tree, file) => { + const value = String(file); - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; + visit$1(tree, 'table', (node) => { + let index = -1; - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } + while (++index < node.children.length) { + const row = node.children[index]; + const start = pointStart$1(row); + const end = pointEnd(row); - return done(exception) - } + if ( + typeof start.offset === 'number' && + value.charCodeAt(start.offset) !== 124 + ) { + file.message(reasonStart, start); + } - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); + if ( + typeof end.offset === 'number' && + value.charCodeAt(end.offset - 1) !== 124 + ) { + file.message(reasonEnd, end); + } } - } - } - - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } - } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); + }); } -} +); /** * @typedef {import('unist').Node} Node @@ -72368,13 +80503,13 @@ function wrap$E(middleware, callback) { * @returns {void} */ -const primitives$D = new Set(['string', 'number', 'boolean']); +const primitives = new Set(['string', 'number', 'boolean']); /** * @param {string} id * @param {Rule} rule */ -function lintRule$D(id, rule) { +function lintRule(id, rule) { const parts = id.split(':'); // Possibly useful if externalised later. /* c8 ignore next */ @@ -72387,7 +80522,7 @@ function lintRule$D(id, rule) { /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { - const [severity, options] = coerce$E(ruleId, raw); + const [severity, options] = coerce(ruleId, raw); if (!severity) return @@ -72396,7 +80531,7 @@ function lintRule$D(id, rule) { return (tree, file, next) => { let index = file.messages.length - 1; - wrap$E(rule, (error) => { + wrap(rule, (error) => { const messages = file.messages; // Add the error, if not already properly added. @@ -72426,7 +80561,7 @@ function lintRule$D(id, rule) { * @param {unknown} value * @returns {SeverityTuple} */ -function coerce$E(name, value) { +function coerce(name, value) { /** @type {unknown[]} */ let result; @@ -72438,7 +80573,7 @@ function coerce$E(name, value) { Array.isArray(value) && // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line - primitives$D.has(typeof value[0]) + primitives.has(typeof value[0]) ) { // `isArray(unknown)` is turned into `any[]`: // type-coverage:ignore-next-line @@ -72491,7 +80626,7 @@ function coerce$E(name, value) { * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test */ -const convert$C = +const convert$1 = /** * @type {( * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & @@ -72511,19 +80646,19 @@ const convert$C = */ function (test) { if (test === undefined || test === null) { - return ok$A + return ok$1 } if (typeof test === 'string') { - return typeFactory$z(test) + return typeFactory$1(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$z(test) : propsFactory$y(test) + return Array.isArray(test) ? anyFactory$1(test) : propsFactory$1(test) } if (typeof test === 'function') { - return castFactory$y(test) + return castFactory$1(test) } throw new Error('Expected function, string, or object as test') @@ -72533,16 +80668,16 @@ const convert$C = * @param {Array.} tests * @returns {AssertAnything} */ -function anyFactory$z(tests) { +function anyFactory$1(tests) { /** @type {Array.} */ const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert$C(tests[index]); + checks[index] = convert$1(tests[index]); } - return castFactory$y(any) + return castFactory$1(any) /** * @this {unknown} @@ -72567,8 +80702,8 @@ function anyFactory$z(tests) { * @param {Props} check * @returns {AssertAnything} */ -function propsFactory$y(check) { - return castFactory$y(all) +function propsFactory$1(check) { + return castFactory$1(all) /** * @param {Node} node @@ -72594,8 +80729,8 @@ function propsFactory$y(check) { * @param {Type} check * @returns {AssertAnything} */ -function typeFactory$z(check) { - return castFactory$y(type) +function typeFactory$1(check) { + return castFactory$1(type) /** * @param {Node} node @@ -72611,7 +80746,7 @@ function typeFactory$z(check) { * @param {TestFunctionAnything} check * @returns {AssertAnything} */ -function castFactory$y(check) { +function castFactory$1(check) { return assertion /** @@ -72626,7 +80761,7 @@ function castFactory$y(check) { } // Utility to return true. -function ok$A() { +function ok$1() { return true } @@ -72634,7 +80769,7 @@ function ok$A() { * @param {string} d * @returns {string} */ -function color$A(d) { +function color$1(d) { return '\u001B[33m' + d + '\u001B[39m' } @@ -72647,15 +80782,15 @@ function color$A(d) { /** * Continue traversing as normal */ -const CONTINUE$A = true; +const CONTINUE$1 = true; /** * Do not traverse this node’s children */ -const SKIP$A = 'skip'; +const SKIP$1 = 'skip'; /** * Stop traversing immediately */ -const EXIT$A = false; +const EXIT$1 = false; /** * Visit children of tree which pass a test @@ -72665,7 +80800,7 @@ const EXIT$A = false; * @param visitor Function to run for each node * @param reverse Visit the tree in reverse order, defaults to false */ -const visitParents$z = +const visitParents$1 = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -72687,7 +80822,7 @@ const visitParents$z = test = null; } - const is = convert$C(test); + const is = convert$1(test); const step = reverse ? -1 : 1; factory(tree, null, [])(); @@ -72715,7 +80850,7 @@ const visitParents$z = Object.defineProperty(visit, 'name', { value: 'node (' + - color$A(value.type + (name ? '<' + name + '>' : '')) + + color$1(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -72733,15 +80868,15 @@ const visitParents$z = let grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$z(visitor(node, parents)); + result = toResult$1(visitor(node, parents)); - if (result[0] === EXIT$A) { + if (result[0] === EXIT$1) { return result } } // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$A) { + if (node.children && result[0] !== SKIP$1) { // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; // @ts-expect-error looks like a parent. @@ -72752,7 +80887,7 @@ const visitParents$z = // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$A) { + if (subresult[0] === EXIT$1) { return subresult } @@ -72771,13 +80906,13 @@ const visitParents$z = * @param {VisitorResult} value * @returns {ActionTuple} */ -function toResult$z(value) { +function toResult$1(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$A, value] + return [CONTINUE$1, value] } return [value] @@ -72798,7 +80933,7 @@ function toResult$z(value) { * @param visitor Function to run for each node * @param reverse Fisit the tree in reverse, defaults to false */ -const visit$z = +const visit = /** * @type {( * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & @@ -72819,7 +80954,7 @@ const visit$z = test = null; } - visitParents$z(tree, test, overload, reverse); + visitParents$1(tree, test, overload, reverse); /** * @param {Node} node @@ -72850,15 +80985,14 @@ const visit$z = * @property {PositionLike} [position] */ -var pointStart$o = point$r('start'); -var pointEnd$d = point$r('end'); +var pointStart = point('start'); /** * Get the positional info of `node`. * * @param {'start'|'end'} type */ -function point$r(type) { +function point(type) { return point /** @@ -72884,3652 +81018,3700 @@ function point$r(type) { * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module table-cell-padding + * @module unordered-list-marker-style * @fileoverview - * Warn when table cells are incorrectly padded. + * Warn when the list item marker style of unordered lists violate a given + * style. * - * Options: `'consistent'`, `'padded'`, or `'compact'`, default: `'consistent'`. + * Options: `'consistent'`, `'-'`, `'*'`, or `'+'`, default: `'consistent'`. * - * `'consistent'` detects the first used cell padding style and warns when - * subsequent cells use different styles. + * `'consistent'` detects the first used list style and warns when subsequent + * lists use different styles. * * ## Fix * * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats tables with padding by default. + * formats unordered lists using `-` (hyphen-minus) by default. * Pass - * [`spacedTable: false`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsspacedtable) - * to not use padding. + * [`bullet: '*'` or `bullet: '+'`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsbullet) + * to use `*` (asterisk) or `+` (plus sign) instead. * * 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. * * @example - * {"name": "ok.md", "setting": "padded", "gfm": true} - * - * | A | B | - * | ----- | ----- | - * | Alpha | Bravo | - * - * @example - * {"name": "not-ok.md", "label": "input", "setting": "padded", "gfm": true} - * - * | A | B | - * | :----|----: | - * | Alpha|Bravo | - * - * | C | D | - * | :----- | ---: | - * |Charlie | Delta| - * - * Too much padding isn’t good either: - * - * | E | F | G | H | - * | :---- | -------- | :----: | -----: | - * | Echo | Foxtrot | Golf | Hotel | - * - * @example - * {"name": "not-ok.md", "label": "output", "setting": "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 - * - * @example - * {"name": "ok.md", "setting": "compact", "gfm": true} - * - * |A |B | - * |-----|-----| - * |Alpha|Bravo| - * - * @example - * {"name": "not-ok.md", "label": "input", "setting": "compact", "gfm": true} - * - * | A | B | - * | -----| -----| - * | Alpha| Bravo| - * - * |C | D| - * |:------|-----:| - * |Charlie|Delta | - * - * @example - * {"name": "not-ok.md", "label": "output", "setting": "compact", "gfm": true} - * - * 3:2: Cell should be compact - * 3:11: Cell should be compact - * 7:16: Cell should be compact - * - * @example - * {"name": "ok-padded.md", "setting": "consistent", "gfm": true} - * - * | A | B | - * | ----- | ----- | - * | Alpha | Bravo | - * - * | C | D | - * | ------- | ----- | - * | Charlie | Delta | - * - * @example - * {"name": "not-ok-padded.md", "label": "input", "setting": "consistent", "gfm": true} - * - * | A | B | - * | ----- | ----- | - * | Alpha | Bravo | - * - * | C | D | - * | :----- | ----: | - * |Charlie | Delta | - * - * @example - * {"name": "not-ok-padded.md", "label": "output", "setting": "consistent", "gfm": true} + * {"name": "ok.md"} * - * 7:2: Cell should be padded + * By default (`'consistent'`), if the file uses only one marker, + * that’s OK. * - * @example - * {"name": "ok-compact.md", "setting": "consistent", "gfm": true} + * * Foo + * * Bar + * * Baz * - * |A |B | - * |-----|-----| - * |Alpha|Bravo| + * Ordered lists are not affected. * - * |C |D | - * |-------|-----| - * |Charlie|Delta| + * 1. Foo + * 2. Bar + * 3. Baz * * @example - * {"name": "not-ok-compact.md", "label": "input", "setting": "consistent", "gfm": true} - * - * |A |B | - * |-----|-----| - * |Alpha|Bravo| + * {"name": "ok.md", "setting": "*"} * - * |C | D| - * |:------|-----:| - * |Charlie|Delta | + * * Foo * * @example - * {"name": "not-ok-compact.md", "label": "output", "setting": "consistent", "gfm": true} + * {"name": "ok.md", "setting": "-"} * - * 7:16: Cell should be compact + * - Foo * * @example - * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true, "gfm": true} + * {"name": "ok.md", "setting": "+"} * - * 1:1: Incorrect table cell padding style `💩`, expected `'padded'`, `'compact'`, or `'consistent'` + * + Foo * * @example - * {"name": "empty.md", "label": "input", "setting": "padded", "gfm": true} - * - * + * {"name": "not-ok.md", "label": "input"} * - * | | Alpha | Bravo| - * | ------ | ----- | ---: | - * | Charlie| | Echo| + * * Foo + * - Bar + * + Baz * * @example - * {"name": "empty.md", "label": "output", "setting": "padded", "gfm": true} + * {"name": "not-ok.md", "label": "output"} * - * 3:25: Cell should be padded - * 5:10: Cell should be padded - * 5:25: Cell should be padded + * 2:1-2:6: Marker style should be `*` + * 3:1-3:6: Marker style should be `*` * * @example - * {"name": "missing-body.md", "setting": "padded", "gfm": true} - * - * + * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} * - * | Alpha | Bravo | Charlie | - * | ----- | ------- | ------- | - * | Delta | - * | Echo | Foxtrot | + * 1:1: Incorrect unordered list item marker style `💩`: use either `'-'`, `'*'`, or `'+'` */ -const remarkLintTableCellPadding = lintRule$D( - 'remark-lint:table-cell-padding', +const markers = new Set(['-', '*', '+']); + +const remarkLintUnorderedListMarkerStyle = lintRule( + 'remark-lint:unordered-list-marker-style', /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { - if ( - option !== 'padded' && - option !== 'compact' && - option !== 'consistent' - ) { + const value = String(file); + + if (option !== 'consistent' && !markers.has(option)) { file.fail( - 'Incorrect table cell padding style `' + + 'Incorrect unordered list item marker style `' + option + - "`, expected `'padded'`, `'compact'`, or `'consistent'`" + "`: use either `'-'`, `'*'`, or `'+'`" ); } - visit$z(tree, 'table', (node) => { - const rows = node.children; - // To do: fix types to always have `align` defined. - /* c8 ignore next */ - const align = node.align || []; - /** @type {number[]} */ - const sizes = Array.from({length: align.length}); - /** @type {Entry[]} */ - const entries = []; - let index = -1; - - // Check rows. - while (++index < rows.length) { - const row = rows[index]; - let column = -1; - - // Check fences (before, between, and after cells). - while (++column < row.children.length) { - const cell = row.children[column]; + visit(tree, 'list', (node) => { + if (node.ordered) return - if (cell.children.length > 0) { - const cellStart = pointStart$o(cell).offset; - const cellEnd = pointEnd$d(cell).offset; - const contentStart = pointStart$o(cell.children[0]).offset; - const contentEnd = pointEnd$d( - cell.children[cell.children.length - 1] - ).offset; + let index = -1; - if ( - typeof cellStart !== 'number' || - typeof cellEnd !== 'number' || - typeof contentStart !== 'number' || - typeof contentEnd !== 'number' - ) { - continue - } + while (++index < node.children.length) { + const child = node.children[index]; - entries.push({ - node: cell, - start: contentStart - cellStart - (column ? 0 : 1), - end: cellEnd - contentEnd - 1, - column - }); + if (!generated(child)) { + const marker = /** @type {Marker} */ ( + value + .slice( + pointStart(child).offset, + pointStart(child.children[0]).offset + ) + .replace(/\[[x ]?]\s*$/i, '') + .replace(/\s/g, '') + ); - // Detect max space per column. - sizes[column] = Math.max( - sizes[column] || 0, - contentEnd - contentStart - ); + if (option === 'consistent') { + option = marker; + } else if (marker !== option) { + file.message('Marker style should be `' + option + '`', child); } } } - - const style = - option === 'consistent' - ? entries[0] && (!entries[0].start || !entries[0].end) - ? 0 - : 1 - : option === 'padded' - ? 1 - : 0; - - index = -1; - - while (++index < entries.length) { - checkSide('start', entries[index], style, sizes); - checkSide('end', entries[index], style, sizes); - } - - return SKIP$A }); + } +); - /** - * @param {'start'|'end'} side - * @param {Entry} entry - * @param {0|1} style - * @param {number[]} sizes - */ - function checkSide(side, entry, style, sizes) { - const cell = entry.node; - const column = entry.column; - const spacing = entry[side]; - - if (spacing === undefined || spacing === style) { - return - } - - let reason = 'Cell should be '; +// @see https://github.com/nodejs/node/blob/master/doc/guides/doc-style-guide.md - if (style === 0) { - // Ignore every cell except the biggest in the column. - if (size$1(cell) < sizes[column]) { - return - } +// Add in rules alphabetically +const remarkPresetLintNode = [ + // Leave preset at the top so it can be overridden + remarkPresetLintRecommended, + [remarkLintBlockquoteIndentation, 2], + [remarkLintCheckboxCharacterStyle, { checked: "x", unchecked: " " }], + remarkLintCheckboxContentIndent, + [remarkLintCodeBlockStyle, "fenced"], + remarkLintDefinitionSpacing, + [ + remarkLintFencedCodeFlag, + { + flags: [ + "bash", + "c", + "cjs", + "coffee", + "console", + "cpp", + "diff", + "http", + "js", + "json", + "markdown", + "mjs", + "powershell", + "r", + "text", + ], + }, + ], + [remarkLintFencedCodeMarker, "`"], + [remarkLintFileExtension, "md"], + remarkLintFinalDefinition, + [remarkLintFirstHeadingLevel, 1], + [remarkLintHeadingStyle, "atx"], + [remarkLintListItemIndent, "space"], + remarkLintMaximumLineLength, + remarkLintNoConsecutiveBlankLines, + remarkLintNoFileNameArticles, + remarkLintNoFileNameConsecutiveDashes, + remarkLintNofileNameOuterDashes, + remarkLintNoHeadingIndent, + remarkLintNoMultipleToplevelHeadings, + remarkLintNoShellDollars, + remarkLintNoTableIndentation, + remarkLintNoTabs, + remarkLintNoTrailingSpaces, + remarkLintNodejsLinks, + remarkLintNodejsYamlComments, + [ + remarkLintProhibitedStrings, + [ + { yes: "End-of-Life" }, + { yes: "GitHub" }, + { no: "hostname", yes: "host name" }, + { yes: "JavaScript" }, + { no: "[Ll]ong[ -][Tt]erm [Ss]upport", yes: "Long Term Support" }, + { no: "Node", yes: "Node.js", ignoreNextTo: "-API" }, + { yes: "Node.js" }, + { no: "Node[Jj][Ss]", yes: "Node.js" }, + { no: "Node\\.js's?", yes: "the Node.js" }, + { no: "[Nn]ote that", yes: "" }, + { yes: "RFC" }, + { no: "[Rr][Ff][Cc]\\d+", yes: "RFC " }, + { yes: "Unix" }, + { yes: "V8" }, + ], + ], + remarkLintRuleStyle, + [remarkLintStrongMarker, "*"], + [remarkLintTableCellPadding, "padded"], + remarkLintTablePipes, + [remarkLintUnorderedListMarkerStyle, "*"], +]; - reason += 'compact'; - } else { - reason += 'padded'; +var remarkPresetLintNode$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + 'default': remarkPresetLintNode +}); - if (spacing > style) { - // May be right or center aligned. - if (size$1(cell) < sizes[column]) { - return - } +var require$$5 = /*@__PURE__*/getAugmentedNamespace(remarkPresetLintNode$1); - reason += ' with 1 space, not ' + spacing; - } - } +/** + * Like `Array#splice`, but smarter for giant arrays. + * + * `Array#splice` takes all items to be inserted as individual argument which + * causes a stack overflow in V8 when trying to insert 100k items for instance. + * + * Otherwise, this does not return the removed items, and takes `items` as an + * array instead of rest parameters. + * + * @template {unknown} T + * @param {T[]} list + * @param {number} start + * @param {number} remove + * @param {T[]} items + * @returns {void} + */ +function splice(list, start, remove, items) { + const end = list.length; + let chunkStart = 0; + /** @type {unknown[]} */ - /** @type {Point} */ - let point; + let parameters; // Make start between zero and `end` (included). - if (side === 'start') { - point = pointStart$o(cell); - if (!column) { - point.column++; + if (start < 0) { + start = -start > end ? 0 : end + start; + } else { + start = start > end ? end : start; + } - if (typeof point.offset === 'number') { - point.offset++; - } - } - } else { - point = pointEnd$d(cell); - point.column--; + remove = remove > 0 ? remove : 0; // No need to chunk the items if there’s only a couple (10k) items. - if (typeof point.offset === 'number') { - point.offset--; - } - } + if (items.length < 10000) { + parameters = Array.from(items); + parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine. + ;[].splice.apply(list, parameters); + } else { + // Delete `remove` items starting from `start` + if (remove) [].splice.apply(list, [start, remove]); // Insert the items in chunks to not cause stack overflows. - file.message(reason, point); + while (chunkStart < items.length) { + parameters = items.slice(chunkStart, chunkStart + 10000); + parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine. + ;[].splice.apply(list, parameters); + chunkStart += 10000; + start += 10000; } } -); +} /** - * @param {TableCell} node - * @returns {number} + * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension */ -function size$1(node) { - const head = pointStart$o(node.children[0]).offset; - const tail = pointEnd$d(node.children[node.children.length - 1]).offset; - // Only called when we’re sure offsets exist. - /* c8 ignore next */ - return typeof head === 'number' && typeof tail === 'number' ? tail - head : 0 -} + +const hasOwnProperty = {}.hasOwnProperty; /** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware + * Combine several syntax extensions into one. * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline + * @param {Extension[]} extensions List of syntax extensions. + * @returns {NormalizedExtension} A single combined extension. */ +function combineExtensions(extensions) { + /** @type {NormalizedExtension} */ + const all = {}; + let index = -1; + + while (++index < extensions.length) { + syntaxExtension(all, extensions[index]); + } + + return all +} /** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. + * Merge `extension` into `all`. * - * @param {Middleware} middleware - * @param {Callback} callback + * @param {NormalizedExtension} all Extension to merge into. + * @param {Extension} extension Extension to merge. + * @returns {void} */ -function wrap$F(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped +function syntaxExtension(all, extension) { + /** @type {string} */ + let hook; - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; + for (hook in extension) { + const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined; + const left = maybe || (all[hook] = {}); + const right = extension[hook]; + /** @type {string} */ + let code; - if (fnExpectsCallback) { - parameters.push(done); + for (code in right) { + if (!hasOwnProperty.call(left, code)) left[code] = []; + const value = right[code]; + constructs( + // @ts-expect-error Looks like a list. + left[code], + Array.isArray(value) ? value : value ? [value] : [] + ); } + } +} - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; +/** + * Merge `list` into `existing` (both lists of constructs). + * Mutates `existing`. + * + * @param {unknown[]} existing + * @param {unknown[]} list + * @returns {void} + */ +function constructs(existing, list) { + let index = -1; + /** @type {unknown[]} */ + const before = []; - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } + while (++index < list.length) { +(list[index].add === 'after' ? existing : before).push(list[index]); + } - return done(exception) - } + splice(existing, 0, 0, before); +} - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } - } - } +/** + * Combine several HTML extensions into one. + * + * @param {HtmlExtension[]} htmlExtensions List of HTML extensions. + * @returns {HtmlExtension} A single combined extension. + */ +function combineHtmlExtensions(htmlExtensions) { + /** @type {HtmlExtension} */ + const handlers = {}; + let index = -1; - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } + while (++index < htmlExtensions.length) { + htmlExtension(handlers, htmlExtensions[index]); } - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); - } + return handlers } /** - * @typedef {import('unist').Node} Node - * @typedef {import('vfile').VFile} VFile - * - * @typedef {0|1|2} Severity - * @typedef {'warn'|'on'|'off'|'error'} Label - * @typedef {[Severity, ...unknown[]]} SeverityTuple + * Merge `extension` into `all`. * - * @callback Rule - * @param {Node} tree - * @param {VFile} file - * @param {unknown} options + * @param {HtmlExtension} all Extension to merge into. + * @param {HtmlExtension} extension Extension to merge. * @returns {void} */ +function htmlExtension(all, extension) { + /** @type {string} */ + let hook; -const primitives$E = new Set(['string', 'number', 'boolean']); + for (hook in extension) { + const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined; + const left = maybe || (all[hook] = {}); + const right = extension[hook]; + /** @type {string} */ + let type; + + if (right) { + for (type in right) { + left[type] = right[type]; + } + } + } +} + +// This module is generated by `script/`. +// +// CommonMark handles attention (emphasis, strong) markers based on what comes +// before or after them. +// One such difference is if those characters are Unicode punctuation. +// This script is generated from the Unicode data. +const unicodePunctuationRegex = + /[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/; /** - * @param {string} id - * @param {Rule} rule + * @typedef {import('micromark-util-types').Code} Code + */ +/** + * Check whether the character code represents an ASCII alpha (`a` through `z`, + * case insensitive). + * + * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha. + * + * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`) + * to U+005A (`Z`). + * + * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`) + * to U+007A (`z`). */ -function lintRule$E(id, rule) { - const parts = id.split(':'); - // Possibly useful if externalised later. - /* c8 ignore next */ - const source = parts[1] ? parts[0] : undefined; - const ruleId = parts[1]; - Object.defineProperty(plugin, 'name', {value: id}); +const asciiAlpha = regexCheck(/[A-Za-z]/); +/** + * Check whether the character code represents an ASCII digit (`0` through `9`). + * + * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to + * U+0039 (`9`). + */ - return plugin +const asciiDigit = regexCheck(/\d/); +/** + * Check whether the character code represents an ASCII alphanumeric (`a` + * through `z`, case insensitive, or `0` through `9`). + * + * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha + * (see `asciiAlpha`). + */ - /** @type {import('unified').Plugin<[unknown]|void[]>} */ - function plugin(raw) { - const [severity, options] = coerce$F(ruleId, raw); +const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/); +/** + * Check whether a character code is an ASCII control character. + * + * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL) + * to U+001F (US), or U+007F (DEL). + * + * @param {Code} code + * @returns {code is number} + */ - if (!severity) return +function asciiControl(code) { + return ( + // Special whitespace codes (which have negative values), C0 and Control + // character DEL + code !== null && (code < 32 || code === 127) + ) +} +/** + * Check whether a character code is a markdown line ending (see + * `markdownLineEnding`) or markdown space (see `markdownSpace`). + * + * @param {Code} code + * @returns {code is number} + */ - const fatal = severity === 2; +function markdownLineEndingOrSpace(code) { + return code !== null && (code < 0 || code === 32) +} +/** + * Check whether a character code is a markdown line ending. + * + * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN + * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR). + * + * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE + * RETURN (CR) are replaced by these virtual characters depending on whether + * they occurred together. + * + * @param {Code} code + * @returns {code is number} + */ - return (tree, file, next) => { - let index = file.messages.length - 1; +function markdownLineEnding(code) { + return code !== null && code < -2 +} +/** + * Check whether a character code is a markdown space. + * + * A **markdown space** is the concrete character U+0020 SPACE (SP) and the + * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT). + * + * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is + * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL + * SPACE (VS) characters, depending on the column at which the tab occurred. + * + * @param {Code} code + * @returns {code is number} + */ - wrap$F(rule, (error) => { - const messages = file.messages; +function markdownSpace(code) { + return code === -2 || code === -1 || code === 32 +} +/** + * Check whether the character code represents Unicode whitespace. + * + * Note that this does handle micromark specific markdown whitespace characters. + * See `markdownLineEndingOrSpace` to check that. + * + * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator, + * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF), + * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\[UNICODE]**). + * + * See: + * **\[UNICODE]**: + * [The Unicode Standard](https://www.unicode.org/versions/). + * Unicode Consortium. + */ - // Add the error, if not already properly added. - // Only happens for incorrect plugins. - /* c8 ignore next 6 */ - // @ts-expect-error: errors could be `messages`. - if (error && !messages.includes(error)) { - try { - file.fail(error); - } catch {} - } +const unicodeWhitespace = regexCheck(/\s/); +/** + * Check whether the character code represents Unicode punctuation. + * + * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation, + * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf` + * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po` + * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII + * punctuation (see `asciiPunctuation`). + * + * See: + * **\[UNICODE]**: + * [The Unicode Standard](https://www.unicode.org/versions/). + * Unicode Consortium. + */ +// Size note: removing ASCII from the regex and using `asciiPunctuation` here +// In fact adds to the bundle size. - while (++index < messages.length) { - Object.assign(messages[index], {ruleId, source, fatal}); - } +const unicodePunctuation = regexCheck(unicodePunctuationRegex); +/** + * Create a code check from a regex. + * + * @param {RegExp} regex + * @returns {(code: Code) => code is number} + */ - next(); - })(tree, file, options); - } +function regexCheck(regex) { + return check + /** + * Check whether a code matches the bound regex. + * + * @param {Code} code Character code + * @returns {code is number} Whether the character code matches the bound regex + */ + + function check(code) { + return code !== null && regex.test(String.fromCharCode(code)) } } /** - * Coerce a value to a severity--options tuple. - * - * @param {string} name - * @param {unknown} value - * @returns {SeverityTuple} + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Previous} Previous + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Event} Event + * @typedef {import('micromark-util-types').Code} Code */ -function coerce$F(name, value) { - /** @type {unknown[]} */ - let result; +const www = { + tokenize: tokenizeWww, + partial: true +}; +const domain = { + tokenize: tokenizeDomain, + partial: true +}; +const path = { + tokenize: tokenizePath, + partial: true +}; +const punctuation = { + tokenize: tokenizePunctuation, + partial: true +}; +const namedCharacterReference = { + tokenize: tokenizeNamedCharacterReference, + partial: true +}; +const wwwAutolink = { + tokenize: tokenizeWwwAutolink, + previous: previousWww +}; +const httpAutolink = { + tokenize: tokenizeHttpAutolink, + previous: previousHttp +}; +const emailAutolink = { + tokenize: tokenizeEmailAutolink, + previous: previousEmail +}; +/** @type {ConstructRecord} */ - if (typeof value === 'boolean') { - result = [value]; - } else if (value === null || value === undefined) { - result = [1]; - } else if ( - Array.isArray(value) && - // `isArray(unknown)` is turned into `any[]`: - // type-coverage:ignore-next-line - primitives$E.has(typeof value[0]) - ) { - // `isArray(unknown)` is turned into `any[]`: - // type-coverage:ignore-next-line - result = [...value]; - } else { - result = [1, value]; - } +const text = {}; +/** @type {Extension} */ - let level = result[0]; +const gfmAutolinkLiteral = { + text +}; +let code = 48; // Add alphanumerics. - 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]; +while (code < 123) { + text[code] = emailAutolink; + code++; + if (code === 58) code = 65; + else if (code === 91) code = 97; +} + +text[43] = emailAutolink; +text[45] = emailAutolink; +text[46] = emailAutolink; +text[95] = emailAutolink; +text[72] = [emailAutolink, httpAutolink]; +text[104] = [emailAutolink, httpAutolink]; +text[87] = [emailAutolink, wwwAutolink]; +text[119] = [emailAutolink, wwwAutolink]; +/** @type {Tokenizer} */ + +function tokenizeEmailAutolink(effects, ok, nok) { + const self = this; + /** @type {boolean} */ + + let hasDot; + /** @type {boolean|undefined} */ + + let hasDigitInLastSegment; + return start + /** @type {State} */ + + function start(code) { + if ( + !gfmAtext(code) || + !previousEmail(self.previous) || + previousUnbalanced(self.events) + ) { + return nok(code) } - } - if (typeof level !== 'number' || level < 0 || level > 2) { - throw new Error( - 'Incorrect severity `' + - level + - '` for `' + - name + - '`, ' + - 'expected 0, 1, or 2' - ) + effects.enter('literalAutolink'); + effects.enter('literalAutolinkEmail'); + return atext(code) } + /** @type {State} */ - result[0] = level; - - // @ts-expect-error: it’s now a valid tuple. - return result -} + function atext(code) { + if (gfmAtext(code)) { + effects.consume(code); + return atext + } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * - * @typedef {string} Type - * @typedef {Object} Props - * - * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test - */ + if (code === 64) { + effects.consume(code); + return label + } -const convert$D = - /** - * @type {( - * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & - * ((test?: Test) => AssertAnything) - * )} - */ - ( - /** - * Generate an assertion from a check. - * @param {Test} [test] - * When nullish, checks if `node` is a `Node`. - * When `string`, works like passing `function (node) {return node.type === test}`. - * When `function` checks if function passed the node is true. - * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values. - * When `array`, checks any one of the subtests pass. - * @returns {AssertAnything} - */ - function (test) { - if (test === undefined || test === null) { - return ok$B - } + return nok(code) + } + /** @type {State} */ - if (typeof test === 'string') { - return typeFactory$A(test) - } + function label(code) { + if (code === 46) { + return effects.check(punctuation, done, dotContinuation)(code) + } - if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$A(test) : propsFactory$z(test) - } + if (code === 45 || code === 95) { + return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code) + } - if (typeof test === 'function') { - return castFactory$z(test) + if (asciiAlphanumeric(code)) { + if (!hasDigitInLastSegment && asciiDigit(code)) { + hasDigitInLastSegment = true; } - throw new Error('Expected function, string, or object as test') + effects.consume(code); + return label } - ); -/** - * @param {Array.} tests - * @returns {AssertAnything} - */ -function anyFactory$A(tests) { - /** @type {Array.} */ - const checks = []; - let index = -1; - while (++index < tests.length) { - checks[index] = convert$D(tests[index]); + return done(code) } + /** @type {State} */ - return castFactory$z(any) + function dotContinuation(code) { + effects.consume(code); + hasDot = true; + hasDigitInLastSegment = undefined; + return label + } + /** @type {State} */ - /** - * @this {unknown} - * @param {unknown[]} parameters - * @returns {boolean} - */ - function any(...parameters) { - let index = -1; + function dashOrUnderscoreContinuation(code) { + effects.consume(code); + return afterDashOrUnderscore + } + /** @type {State} */ - while (++index < checks.length) { - if (checks[index].call(this, ...parameters)) return true + function afterDashOrUnderscore(code) { + if (code === 46) { + return effects.check(punctuation, nok, dotContinuation)(code) } - return false + return label(code) + } + /** @type {State} */ + + function done(code) { + if (hasDot && !hasDigitInLastSegment) { + effects.exit('literalAutolinkEmail'); + effects.exit('literalAutolink'); + return ok(code) + } + + return nok(code) } } +/** @type {Tokenizer} */ -/** - * Utility to assert each property in `test` is represented in `node`, and each - * values are strictly equal. - * - * @param {Props} check - * @returns {AssertAnything} - */ -function propsFactory$z(check) { - return castFactory$z(all) +function tokenizeWwwAutolink(effects, ok, nok) { + const self = this; + return start + /** @type {State} */ - /** - * @param {Node} node - * @returns {boolean} - */ - function all(node) { - /** @type {string} */ - let key; + function start(code) { + if ( + (code !== 87 && code !== 119) || + !previousWww(self.previous) || + previousUnbalanced(self.events) + ) { + return nok(code) + } - for (key in check) { - // @ts-expect-error: hush, it sure works as an index. - if (node[key] !== check[key]) return false + effects.enter('literalAutolink'); + effects.enter('literalAutolinkWww'); // For `www.` we check instead of attempt, because when it matches, GH + // treats it as part of a domain (yes, it says a valid domain must come + // after `www.`, but that’s not how it’s implemented by them). + + return effects.check( + www, + effects.attempt(domain, effects.attempt(path, done), nok), + nok + )(code) + } + /** @type {State} */ + + function done(code) { + effects.exit('literalAutolinkWww'); + effects.exit('literalAutolink'); + return ok(code) + } +} +/** @type {Tokenizer} */ + +function tokenizeHttpAutolink(effects, ok, nok) { + const self = this; + return start + /** @type {State} */ + + function start(code) { + if ( + (code !== 72 && code !== 104) || + !previousHttp(self.previous) || + previousUnbalanced(self.events) + ) { + return nok(code) } - return true + effects.enter('literalAutolink'); + effects.enter('literalAutolinkHttp'); + effects.consume(code); + return t1 } -} + /** @type {State} */ -/** - * Utility to convert a string into a function which checks a given node’s type - * for said string. - * - * @param {Type} check - * @returns {AssertAnything} - */ -function typeFactory$A(check) { - return castFactory$z(type) + function t1(code) { + if (code === 84 || code === 116) { + effects.consume(code); + return t2 + } - /** - * @param {Node} node - */ - function type(node) { - return node && node.type === check + return nok(code) } -} + /** @type {State} */ -/** - * Utility to convert a string into a function which checks a given node’s type - * for said string. - * @param {TestFunctionAnything} check - * @returns {AssertAnything} - */ -function castFactory$z(check) { - return assertion + function t2(code) { + if (code === 84 || code === 116) { + effects.consume(code); + return p + } - /** - * @this {unknown} - * @param {Array.} parameters - * @returns {boolean} - */ - function assertion(...parameters) { - // @ts-expect-error: spreading is fine. - return Boolean(check.call(this, ...parameters)) + return nok(code) } -} + /** @type {State} */ -// Utility to return true. -function ok$B() { - return true -} + function p(code) { + if (code === 80 || code === 112) { + effects.consume(code); + return s + } -/** - * @param {string} d - * @returns {string} - */ -function color$B(d) { - return '\u001B[33m' + d + '\u001B[39m' -} + return nok(code) + } + /** @type {State} */ -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test - */ + function s(code) { + if (code === 83 || code === 115) { + effects.consume(code); + return colon + } -/** - * Continue traversing as normal - */ -const CONTINUE$B = true; -/** - * Do not traverse this node’s children - */ -const SKIP$B = 'skip'; -/** - * Stop traversing immediately - */ -const EXIT$B = false; + return colon(code) + } + /** @type {State} */ -/** - * Visit children of tree which pass a test - * - * @param tree Abstract syntax tree to walk - * @param test Test node, optional - * @param visitor Function to run for each node - * @param reverse Visit the tree in reverse order, defaults to false - */ -const visitParents$A = - /** - * @type {( - * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & - * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) - * )} - */ - ( - /** - * @param {Node} tree - * @param {Test} test - * @param {Visitor} visitor - * @param {boolean} [reverse] - */ - function (tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - // @ts-expect-error no visitor given, so `visitor` is test. - visitor = test; - test = null; - } + function colon(code) { + if (code === 58) { + effects.consume(code); + return slash1 + } - const is = convert$D(test); - const step = reverse ? -1 : 1; + return nok(code) + } + /** @type {State} */ - factory(tree, null, [])(); + function slash1(code) { + if (code === 47) { + effects.consume(code); + return slash2 + } - /** - * @param {Node} node - * @param {number?} index - * @param {Array.} parents - */ - function factory(node, index, parents) { - /** @type {Object.} */ - // @ts-expect-error: hush - const value = typeof node === 'object' && node !== null ? node : {}; - /** @type {string|undefined} */ - let name; + return nok(code) + } + /** @type {State} */ - if (typeof value.type === 'string') { - name = - typeof value.tagName === 'string' - ? value.tagName - : typeof value.name === 'string' - ? value.name - : undefined; + function slash2(code) { + if (code === 47) { + effects.consume(code); + return after + } - Object.defineProperty(visit, 'name', { - value: - 'node (' + - color$B(value.type + (name ? '<' + name + '>' : '')) + - ')' - }); - } + return nok(code) + } + /** @type {State} */ - return visit + function after(code) { + return code === null || + asciiControl(code) || + unicodeWhitespace(code) || + unicodePunctuation(code) + ? nok(code) + : effects.attempt(domain, effects.attempt(path, done), nok)(code) + } + /** @type {State} */ - function visit() { - /** @type {ActionTuple} */ - let result = []; - /** @type {ActionTuple} */ - let subresult; - /** @type {number} */ - let offset; - /** @type {Array.} */ - let grandparents; + function done(code) { + effects.exit('literalAutolinkHttp'); + effects.exit('literalAutolink'); + return ok(code) + } +} +/** @type {Tokenizer} */ - if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$A(visitor(node, parents)); +function tokenizeWww(effects, ok, nok) { + return start + /** @type {State} */ - if (result[0] === EXIT$B) { - return result - } - } + function start(code) { + effects.consume(code); + return w2 + } + /** @type {State} */ - // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$B) { - // @ts-expect-error looks like a parent. - offset = (reverse ? node.children.length : -1) + step; - // @ts-expect-error looks like a parent. - grandparents = parents.concat(node); + function w2(code) { + if (code === 87 || code === 119) { + effects.consume(code); + return w3 + } - // @ts-expect-error looks like a parent. - while (offset > -1 && offset < node.children.length) { - // @ts-expect-error looks like a parent. - subresult = factory(node.children[offset], offset, grandparents)(); + return nok(code) + } + /** @type {State} */ - if (subresult[0] === EXIT$B) { - return subresult - } + function w3(code) { + if (code === 87 || code === 119) { + effects.consume(code); + return dot + } - offset = - typeof subresult[1] === 'number' ? subresult[1] : offset + step; - } - } + return nok(code) + } + /** @type {State} */ - return result - } - } + function dot(code) { + if (code === 46) { + effects.consume(code); + return after } - ); -/** - * @param {VisitorResult} value - * @returns {ActionTuple} - */ -function toResult$A(value) { - if (Array.isArray(value)) { - return value + return nok(code) } + /** @type {State} */ - if (typeof value === 'number') { - return [CONTINUE$B, value] + function after(code) { + return code === null || markdownLineEnding(code) ? nok(code) : ok(code) } - - return [value] } +/** @type {Tokenizer} */ -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test - * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult - */ - -/** - * Visit children of tree which pass a test - * - * @param tree Abstract syntax tree to walk - * @param test Test, optional - * @param visitor Function to run for each node - * @param reverse Fisit the tree in reverse, defaults to false - */ -const visit$A = - /** - * @type {( - * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & - * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) - * )} - */ - ( - /** - * @param {Node} tree - * @param {Test} test - * @param {Visitor} visitor - * @param {boolean} [reverse] - */ - function (tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; - } +function tokenizeDomain(effects, ok, nok) { + /** @type {boolean|undefined} */ + let hasUnderscoreInLastSegment; + /** @type {boolean|undefined} */ - visitParents$A(tree, test, overload, reverse); + let hasUnderscoreInLastLastSegment; + return domain + /** @type {State} */ - /** - * @param {Node} node - * @param {Array.} parents - */ - function overload(node, parents) { - const parent = parents[parents.length - 1]; - return visitor( - node, - parent ? parent.children.indexOf(node) : null, - parent - ) - } + function domain(code) { + if (code === 38) { + return effects.check( + namedCharacterReference, + done, + punctuationContinuation + )(code) } - ); -/** - * @typedef {import('unist').Position} Position - * @typedef {import('unist').Point} Point - * - * @typedef {Partial} PointLike - * - * @typedef {Object} PositionLike - * @property {PointLike} [start] - * @property {PointLike} [end] - * - * @typedef {Object} NodeLike - * @property {PositionLike} [position] - */ + if (code === 46 || code === 95) { + return effects.check(punctuation, done, punctuationContinuation)(code) + } // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can + // occur, which sounds like ASCII only, but they also support `www.點看.com`, + // so that’s Unicode. + // Instead of some new production for Unicode alphanumerics, markdown + // already has that for Unicode punctuation and whitespace, so use those. -var pointStart$p = point$s('start'); -var pointEnd$e = point$s('end'); + if ( + code === null || + asciiControl(code) || + unicodeWhitespace(code) || + (code !== 45 && unicodePunctuation(code)) + ) { + return done(code) + } -/** - * Get the positional info of `node`. - * - * @param {'start'|'end'} type - */ -function point$s(type) { - return point + effects.consume(code); + return domain + } + /** @type {State} */ - /** - * Get the positional info of `node`. - * - * @param {NodeLike} [node] - * @returns {Point} - */ - function point(node) { - /** @type {Point} */ - // @ts-ignore looks like a point - var point = (node && node.position && node.position[type]) || {}; + function punctuationContinuation(code) { + if (code === 46) { + hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment; + hasUnderscoreInLastSegment = undefined; + effects.consume(code); + return domain + } - return { - line: point.line || null, - column: point.column || null, - offset: point.offset > -1 ? point.offset : null + if (code === 95) hasUnderscoreInLastSegment = true; + effects.consume(code); + return domain + } + /** @type {State} */ + + function done(code) { + if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) { + return ok(code) } + + return nok(code) } } +/** @type {Tokenizer} */ -/** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module table-pipes - * @fileoverview - * Warn when table rows are not fenced with pipes. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * creates fenced rows with initial and final pipes by default. - * - * 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. - * - * @example - * {"name": "ok.md", "gfm": true} - * - * | A | B | - * | ----- | ----- | - * | Alpha | Bravo | - * - * @example - * {"name": "not-ok.md", "label": "input", "gfm": true} - * - * A | B - * ----- | ----- - * Alpha | Bravo - * - * @example - * {"name": "not-ok.md", "label": "output", "gfm": true} - * - * 1:1: Missing initial pipe in table fence - * 1:10: Missing final pipe in table fence - * 3:1: Missing initial pipe in table fence - * 3:14: Missing final pipe in table fence - */ +function tokenizePath(effects, ok) { + let balance = 0; + return inPath + /** @type {State} */ -const reasonStart = 'Missing initial pipe in table fence'; -const reasonEnd = 'Missing final pipe in table fence'; + function inPath(code) { + if (code === 38) { + return effects.check( + namedCharacterReference, + ok, + continuedPunctuation + )(code) + } -const remarkLintTablePipes = lintRule$E( - 'remark-lint:table-pipes', - /** @type {import('unified-lint-rule').Rule} */ - (tree, file) => { - const value = String(file); + if (code === 40) { + balance++; + } - visit$A(tree, 'table', (node) => { - let index = -1; + if (code === 41) { + return effects.check( + punctuation, + parenAtPathEnd, + continuedPunctuation + )(code) + } - while (++index < node.children.length) { - const row = node.children[index]; - const start = pointStart$p(row); - const end = pointEnd$e(row); + if (pathEnd(code)) { + return ok(code) + } - if ( - typeof start.offset === 'number' && - value.charCodeAt(start.offset) !== 124 - ) { - file.message(reasonStart, start); - } + if (trailingPunctuation(code)) { + return effects.check(punctuation, ok, continuedPunctuation)(code) + } - if ( - typeof end.offset === 'number' && - value.charCodeAt(end.offset - 1) !== 124 - ) { - file.message(reasonEnd, end); - } - } - }); + effects.consume(code); + return inPath } -); - -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ -function wrap$G(middleware, callback) { - /** @type {boolean} */ - let called; - - return wrapped + /** @type {State} */ - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ - function wrapped(...parameters) { - const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ - let result; + function continuedPunctuation(code) { + effects.consume(code); + return inPath + } + /** @type {State} */ - if (fnExpectsCallback) { - parameters.push(done); - } + function parenAtPathEnd(code) { + balance--; + return balance < 0 ? ok(code) : continuedPunctuation(code) + } +} +/** @type {Tokenizer} */ - try { - result = middleware(...parameters); - } catch (error) { - /** @type {Error} */ - const exception = error; +function tokenizeNamedCharacterReference(effects, ok, nok) { + return start + /** @type {State} */ - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. - if (fnExpectsCallback && called) { - throw exception - } + function start(code) { + effects.consume(code); + return inside + } + /** @type {State} */ - return done(exception) + function inside(code) { + if (asciiAlpha(code)) { + effects.consume(code); + return inside } - if (!fnExpectsCallback) { - if (result instanceof Promise) { - result.then(then, done); - } else if (result instanceof Error) { - done(result); - } else { - then(result); - } + if (code === 59) { + effects.consume(code); + return after } - } - /** - * Call `callback`, only once. - * @type {Callback} - */ - function done(error, ...output) { - if (!called) { - called = true; - callback(error, ...output); - } + return nok(code) } + /** @type {State} */ - /** - * Call `done` with one value. - * - * @param {any} [value] - */ - function then(value) { - done(null, value); + function after(code) { + // If the named character reference is followed by the end of the path, it’s + // not continued punctuation. + return pathEnd(code) ? ok(code) : nok(code) } } +/** @type {Tokenizer} */ -/** - * @typedef {import('unist').Node} Node - * @typedef {import('vfile').VFile} VFile - * - * @typedef {0|1|2} Severity - * @typedef {'warn'|'on'|'off'|'error'} Label - * @typedef {[Severity, ...unknown[]]} SeverityTuple - * - * @callback Rule - * @param {Node} tree - * @param {VFile} file - * @param {unknown} options - * @returns {void} - */ +function tokenizePunctuation(effects, ok, nok) { + return start + /** @type {State} */ -const primitives$F = new Set(['string', 'number', 'boolean']); + function start(code) { + effects.consume(code); + return after + } + /** @type {State} */ + + function after(code) { + // Check the next. + if (trailingPunctuation(code)) { + effects.consume(code); + return after + } // If the punctuation marker is followed by the end of the path, it’s not + // continued punctuation. + return pathEnd(code) ? ok(code) : nok(code) + } +} /** - * @param {string} id - * @param {Rule} rule + * @param {Code} code + * @returns {boolean} */ -function lintRule$F(id, rule) { - const parts = id.split(':'); - // Possibly useful if externalised later. - /* c8 ignore next */ - const source = parts[1] ? parts[0] : undefined; - const ruleId = parts[1]; - - Object.defineProperty(plugin, 'name', {value: id}); - - return plugin - - /** @type {import('unified').Plugin<[unknown]|void[]>} */ - function plugin(raw) { - const [severity, options] = coerce$G(ruleId, raw); - - if (!severity) return - - const fatal = severity === 2; - return (tree, file, next) => { - let index = file.messages.length - 1; +function trailingPunctuation(code) { + return ( + code === 33 || + code === 34 || + code === 39 || + code === 41 || + code === 42 || + code === 44 || + code === 46 || + code === 58 || + code === 59 || + code === 60 || + code === 63 || + code === 95 || + code === 126 + ) +} +/** + * @param {Code} code + * @returns {boolean} + */ - wrap$G(rule, (error) => { - const messages = file.messages; +function pathEnd(code) { + return code === null || code === 60 || markdownLineEndingOrSpace(code) +} +/** + * @param {Code} code + * @returns {boolean} + */ - // Add the error, if not already properly added. - // Only happens for incorrect plugins. - /* c8 ignore next 6 */ - // @ts-expect-error: errors could be `messages`. - if (error && !messages.includes(error)) { - try { - file.fail(error); - } catch {} - } +function gfmAtext(code) { + return ( + code === 43 || + code === 45 || + code === 46 || + code === 95 || + asciiAlphanumeric(code) + ) +} +/** @type {Previous} */ - while (++index < messages.length) { - Object.assign(messages[index], {ruleId, source, fatal}); - } +function previousWww(code) { + return ( + code === null || + code === 40 || + code === 42 || + code === 95 || + code === 126 || + markdownLineEndingOrSpace(code) + ) +} +/** @type {Previous} */ - next(); - })(tree, file, options); - } - } +function previousHttp(code) { + return code === null || !asciiAlpha(code) } +/** @type {Previous} */ +function previousEmail(code) { + return code !== 47 && previousHttp(code) +} /** - * Coerce a value to a severity--options tuple. - * - * @param {string} name - * @param {unknown} value - * @returns {SeverityTuple} + * @param {Event[]} events + * @returns {boolean} */ -function coerce$G(name, value) { - /** @type {unknown[]} */ - let result; - if (typeof value === 'boolean') { - result = [value]; - } else if (value === null || value === undefined) { - result = [1]; - } else if ( - Array.isArray(value) && - // `isArray(unknown)` is turned into `any[]`: - // type-coverage:ignore-next-line - primitives$F.has(typeof value[0]) - ) { - // `isArray(unknown)` is turned into `any[]`: - // type-coverage:ignore-next-line - result = [...value]; - } else { - result = [1, value]; - } +function previousUnbalanced(events) { + let index = events.length; + let result = false; - let level = result[0]; + while (index--) { + const token = events[index][1]; - 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]; + if ( + (token.type === 'labelLink' || token.type === 'labelImage') && + !token._balanced + ) { + result = true; + break + } // @ts-expect-error If we’ve seen this token, and it was marked as not + // having any unbalanced bracket before it, we can exit. + + if (token._gfmAutolinkLiteralWalkedInto) { + result = false; + break } } - if (typeof level !== 'number' || level < 0 || level > 2) { - throw new Error( - 'Incorrect severity `' + - level + - '` for `' + - name + - '`, ' + - 'expected 0, 1, or 2' - ) + if (events.length > 0 && !result) { + // @ts-expect-error Mark the last token as “walked into” w/o finding + // anything. + events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true; } - result[0] = level; - - // @ts-expect-error: it’s now a valid tuple. return result } +const characterReferences = {'"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}; + /** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent + * Encode only the dangerous HTML characters. * - * @typedef {string} Type - * @typedef {Object} Props + * This ensures that certain characters which have special meaning in HTML are + * dealt with. + * Technically, we can skip `>` and `"` in many cases, but CM includes them. * - * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test + * @param {string} value + * @returns {string} */ +function encode(value) { + return value.replace(/["&<>]/g, replace) -const convert$E = /** - * @type {( - * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & - * ((test?: Test) => AssertAnything) - * )} + * @param {string} value + * @returns {string} */ - ( - /** - * Generate an assertion from a check. - * @param {Test} [test] - * When nullish, checks if `node` is a `Node`. - * When `string`, works like passing `function (node) {return node.type === test}`. - * When `function` checks if function passed the node is true. - * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values. - * When `array`, checks any one of the subtests pass. - * @returns {AssertAnything} - */ - function (test) { - if (test === undefined || test === null) { - return ok$C - } + function replace(value) { + // @ts-expect-error Hush, it’s fine. + return '&' + characterReferences[value] + ';' + } +} - if (typeof test === 'string') { - return typeFactory$B(test) - } +/** + * Make a value safe for injection as a URL. + * + * This encodes unsafe characters with percent-encoding and skips already + * encoded sequences (see `normalizeUri` below). + * Further unsafe characters are encoded as character references (see + * `micromark-util-encode`). + * + * Then, a regex of allowed protocols can be given, in which case the URL is + * sanitized. + * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, + * or `/^https?$/i` for `img[src]`. + * If the URL includes an unknown protocol (one not matched by `protocol`, such + * as a dangerous example, `javascript:`), the value is ignored. + * + * @param {string|undefined} url + * @param {RegExp} [protocol] + * @returns {string} + */ +function sanitizeUri(url, protocol) { + const value = encode(normalizeUri(url || '')); - if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory$B(test) : propsFactory$A(test) - } + if (!protocol) { + return value + } - if (typeof test === 'function') { - return castFactory$A(test) - } + const colon = value.indexOf(':'); + const questionMark = value.indexOf('?'); + const numberSign = value.indexOf('#'); + const slash = value.indexOf('/'); - throw new Error('Expected function, string, or object as test') - } - ); + if ( + // If there is no protocol, it’s relative. + colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol. + (slash > -1 && colon > slash) || + (questionMark > -1 && colon > questionMark) || + (numberSign > -1 && colon > numberSign) || // It is a protocol, it should be allowed. + protocol.test(value.slice(0, colon)) + ) { + return value + } + + return '' +} /** - * @param {Array.} tests - * @returns {AssertAnything} + * Normalize a URL (such as used in definitions). + * + * Encode unsafe characters with percent-encoding, skipping already encoded + * sequences. + * + * @param {string} value + * @returns {string} */ -function anyFactory$B(tests) { - /** @type {Array.} */ - const checks = []; + +function normalizeUri(value) { + /** @type {string[]} */ + const result = []; let index = -1; + let start = 0; + let skip = 0; - while (++index < tests.length) { - checks[index] = convert$E(tests[index]); - } + while (++index < value.length) { + const code = value.charCodeAt(index); + /** @type {string} */ - return castFactory$A(any) + let replace = ''; // A correct percent encoded value. - /** - * @this {unknown} - * @param {unknown[]} parameters - * @returns {boolean} - */ - function any(...parameters) { - let index = -1; + if ( + code === 37 && + asciiAlphanumeric(value.charCodeAt(index + 1)) && + asciiAlphanumeric(value.charCodeAt(index + 2)) + ) { + skip = 2; + } // ASCII. + else if (code < 128) { + if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) { + replace = String.fromCharCode(code); + } + } // Astral. + else if (code > 55295 && code < 57344) { + const next = value.charCodeAt(index + 1); // A correct surrogate pair. + + if (code < 56320 && next > 56319 && next < 57344) { + replace = String.fromCharCode(code, next); + skip = 1; + } // Lone surrogate. + else { + replace = '\uFFFD'; + } + } // Unicode. + else { + replace = String.fromCharCode(code); + } - while (++index < checks.length) { - if (checks[index].call(this, ...parameters)) return true + if (replace) { + result.push(value.slice(start, index), encodeURIComponent(replace)); + start = index + skip + 1; + replace = ''; } - return false + if (skip) { + index += skip; + skip = 0; + } } + + return result.join('') + value.slice(start) } /** - * Utility to assert each property in `test` is represented in `node`, and each - * values are strictly equal. - * - * @param {Props} check - * @returns {AssertAnything} + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + * @typedef {import('micromark-util-types').Handle} Handle + * @typedef {import('micromark-util-types').CompileContext} CompileContext + * @typedef {import('micromark-util-types').Token} Token */ -function propsFactory$A(check) { - return castFactory$A(all) +/** @type {HtmlExtension} */ - /** - * @param {Node} node - * @returns {boolean} - */ - function all(node) { - /** @type {string} */ - let key; +const gfmAutolinkLiteralHtml = { + exit: { + literalAutolinkEmail, + literalAutolinkHttp, + literalAutolinkWww + } +}; +/** @type {Handle} */ - for (key in check) { - // @ts-expect-error: hush, it sure works as an index. - if (node[key] !== check[key]) return false - } +function literalAutolinkWww(token) { + anchorFromToken.call(this, token, 'http://'); +} +/** @type {Handle} */ - return true - } +function literalAutolinkEmail(token) { + anchorFromToken.call(this, token, 'mailto:'); } +/** @type {Handle} */ +function literalAutolinkHttp(token) { + anchorFromToken.call(this, token); +} /** - * Utility to convert a string into a function which checks a given node’s type - * for said string. - * - * @param {Type} check - * @returns {AssertAnything} + * @this CompileContext + * @param {Token} token + * @param {string} [protocol] + * @returns {void} */ -function typeFactory$B(check) { - return castFactory$A(type) - /** - * @param {Node} node - */ - function type(node) { - return node && node.type === check - } +function anchorFromToken(token, protocol) { + const url = this.sliceSerialize(token); + this.tag(''); + this.raw(this.encode(url)); + this.tag(''); } /** - * Utility to convert a string into a function which checks a given node’s type - * for said string. - * @param {TestFunctionAnything} check - * @returns {AssertAnything} + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension */ -function castFactory$A(check) { - return assertion - /** - * @this {unknown} - * @param {Array.} parameters - * @returns {boolean} - */ - function assertion(...parameters) { - // @ts-expect-error: spreading is fine. - return Boolean(check.call(this, ...parameters)) +/** @type {HtmlExtension} */ +const gfmStrikethroughHtml = { + enter: { + strikethrough() { + this.tag(''); + } + }, + exit: { + strikethrough() { + this.tag(''); + } } -} +}; -// Utility to return true. -function ok$C() { - return true -} +/** + * @typedef {import('micromark-util-types').Code} Code + */ /** - * @param {string} d - * @returns {string} + * Classify whether a character code represents whitespace, punctuation, or + * something else. + * + * Used for attention (emphasis, strong), whose sequences can open or close + * based on the class of surrounding characters. + * + * Note that eof (`null`) is seen as whitespace. + * + * @param {Code} code + * @returns {number|undefined} */ -function color$C(d) { - return '\u001B[33m' + d + '\u001B[39m' +function classifyCharacter(code) { + if ( + code === null || + markdownLineEndingOrSpace(code) || + unicodeWhitespace(code) + ) { + return 1 + } + + if (unicodePunctuation(code)) { + return 2 + } } /** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test + * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext + * @typedef {import('micromark-util-types').Event} Event + * @typedef {import('micromark-util-types').Resolver} Resolver */ /** - * Continue traversing as normal + * Call all `resolveAll`s. + * + * @param {{resolveAll?: Resolver}[]} constructs + * @param {Event[]} events + * @param {TokenizeContext} context + * @returns {Event[]} */ -const CONTINUE$C = true; +function resolveAll(constructs, events, context) { + /** @type {Resolver[]} */ + const called = []; + let index = -1; + + while (++index < constructs.length) { + const resolve = constructs[index].resolveAll; + + if (resolve && !called.includes(resolve)) { + events = resolve(events, context); + called.push(resolve); + } + } + + return events +} + /** - * Do not traverse this node’s children + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').Event} Event */ -const SKIP$C = 'skip'; + +/** + * @param {Options} [options] + * @returns {Extension} + */ +function gfmStrikethrough(options = {}) { + let single = options.singleTilde; + const tokenizer = { + tokenize: tokenizeStrikethrough, + resolveAll: resolveAllStrikethrough + }; + + if (single === null || single === undefined) { + single = true; + } + + return { + text: { + [126]: tokenizer + }, + insideSpan: { + null: [tokenizer] + } + } + /** + * Take events and resolve strikethrough. + * + * @type {Resolver} + */ + + function resolveAllStrikethrough(events, context) { + let index = -1; + /** @type {Token} */ + + let strikethrough; + /** @type {Token} */ + + let text; + /** @type {number} */ + + let open; + /** @type {Event[]} */ + + let nextEvents; // Walk through all events. + + while (++index < events.length) { + // Find a token that can close. + if ( + events[index][0] === 'enter' && + events[index][1].type === 'strikethroughSequenceTemporary' && + events[index][1]._close + ) { + open = index; // Now walk back to find an opener. + + while (open--) { + // Find a token that can open the closer. + if ( + events[open][0] === 'exit' && + events[open][1].type === 'strikethroughSequenceTemporary' && + events[open][1]._open && // If the sizes are the same: + events[index][1].end.offset - events[index][1].start.offset === + events[open][1].end.offset - events[open][1].start.offset + ) { + events[index][1].type = 'strikethroughSequence'; + events[open][1].type = 'strikethroughSequence'; + strikethrough = { + type: 'strikethrough', + start: Object.assign({}, events[open][1].start), + end: Object.assign({}, events[index][1].end) + }; + text = { + type: 'strikethroughText', + start: Object.assign({}, events[open][1].end), + end: Object.assign({}, events[index][1].start) + }; // Opening. + + nextEvents = [ + ['enter', strikethrough, context], + ['enter', events[open][1], context], + ['exit', events[open][1], context], + ['enter', text, context] + ]; // Between. + + splice( + nextEvents, + nextEvents.length, + 0, + resolveAll( + context.parser.constructs.insideSpan.null, + events.slice(open + 1, index), + context + ) + ); // Closing. + + splice(nextEvents, nextEvents.length, 0, [ + ['exit', text, context], + ['enter', events[index][1], context], + ['exit', events[index][1], context], + ['exit', strikethrough, context] + ]); + splice(events, open - 1, index - open + 3, nextEvents); + index = open + nextEvents.length - 2; + break + } + } + } + } + + index = -1; + + while (++index < events.length) { + if (events[index][1].type === 'strikethroughSequenceTemporary') { + events[index][1].type = 'data'; + } + } + + return events + } + /** @type {Tokenizer} */ + + function tokenizeStrikethrough(effects, ok, nok) { + const previous = this.previous; + const events = this.events; + let size = 0; + return start + /** @type {State} */ + + function start(code) { + if ( + code !== 126 || + (previous === 126 && + events[events.length - 1][1].type !== 'characterEscape') + ) { + return nok(code) + } + + effects.enter('strikethroughSequenceTemporary'); + return more(code) + } + /** @type {State} */ + + function more(code) { + const before = classifyCharacter(previous); + + if (code === 126) { + // If this is the third marker, exit. + if (size > 1) return nok(code) + effects.consume(code); + size++; + return more + } + + if (size < 2 && !single) return nok(code) + const token = effects.exit('strikethroughSequenceTemporary'); + const after = classifyCharacter(code); + token._open = !after || (after === 2 && Boolean(before)); + token._close = !before || (before === 2 && Boolean(after)); + return ok(code) + } + } +} + /** - * Stop traversing immediately + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension */ -const EXIT$C = false; /** - * Visit children of tree which pass a test - * - * @param tree Abstract syntax tree to walk - * @param test Test node, optional - * @param visitor Function to run for each node - * @param reverse Visit the tree in reverse order, defaults to false + * @typedef {import('./syntax.js').Align} Align */ -const visitParents$B = - /** - * @type {( - * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & - * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) - * )} - */ - ( - /** - * @param {Node} tree - * @param {Test} test - * @param {Visitor} visitor - * @param {boolean} [reverse] - */ - function (tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - // @ts-expect-error no visitor given, so `visitor` is test. - visitor = test; - test = null; - } +const alignment = { + null: '', + left: ' align="left"', + right: ' align="right"', + center: ' align="center"' +}; +/** @type {HtmlExtension} */ - const is = convert$E(test); - const step = reverse ? -1 : 1; +const gfmTableHtml = { + enter: { + table(token) { + this.lineEndingIfNeeded(); + this.tag(''); // @ts-expect-error Custom. - factory(tree, null, [])(); + this.setData('tableAlign', token._align); + }, - /** - * @param {Node} node - * @param {number?} index - * @param {Array.} parents - */ - function factory(node, index, parents) { - /** @type {Object.} */ - // @ts-expect-error: hush - const value = typeof node === 'object' && node !== null ? node : {}; - /** @type {string|undefined} */ - let name; + tableBody() { + // Clear slurping line ending from the delimiter row. + this.setData('slurpOneLineEnding'); + this.tag(''); + }, - if (typeof value.type === 'string') { - name = - typeof value.tagName === 'string' - ? value.tagName - : typeof value.name === 'string' - ? value.name - : undefined; + tableData() { + /** @type {string|undefined} */ + const align = // @ts-expect-error Custom. + alignment[this.getData('tableAlign')[this.getData('tableColumn')]]; - Object.defineProperty(visit, 'name', { - value: - 'node (' + - color$C(value.type + (name ? '<' + name + '>' : '')) + - ')' - }); - } + if (align === undefined) { + // Capture results to ignore them. + this.buffer(); + } else { + this.lineEndingIfNeeded(); + this.tag(''); + } + }, - return visit + tableHead() { + this.lineEndingIfNeeded(); + this.tag(''); + }, - function visit() { - /** @type {ActionTuple} */ - let result = []; - /** @type {ActionTuple} */ - let subresult; - /** @type {number} */ - let offset; - /** @type {Array.} */ - let grandparents; + tableHeader() { + this.lineEndingIfNeeded(); + this.tag( + '' + ); + }, - if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$B(visitor(node, parents)); + tableRow() { + this.setData('tableColumn', 0); + this.lineEndingIfNeeded(); + this.tag(''); + } + }, + exit: { + // Overwrite the default code text data handler to unescape escaped pipes when + // they are in tables. + codeTextData(token) { + let value = this.sliceSerialize(token); - if (result[0] === EXIT$C) { - return result - } - } + if (this.getData('tableAlign')) { + value = value.replace(/\\([\\|])/g, replace$1); + } - // @ts-expect-error looks like a parent. - if (node.children && result[0] !== SKIP$C) { - // @ts-expect-error looks like a parent. - offset = (reverse ? node.children.length : -1) + step; - // @ts-expect-error looks like a parent. - grandparents = parents.concat(node); + this.raw(this.encode(value)); + }, - // @ts-expect-error looks like a parent. - while (offset > -1 && offset < node.children.length) { - // @ts-expect-error looks like a parent. - subresult = factory(node.children[offset], offset, grandparents)(); + table() { + this.setData('tableAlign'); // If there was no table body, make sure the slurping from the delimiter row + // is cleared. - if (subresult[0] === EXIT$C) { - return subresult - } + this.setData('slurpAllLineEndings'); + this.lineEndingIfNeeded(); + this.tag('
'); + }, - offset = - typeof subresult[1] === 'number' ? subresult[1] : offset + step; - } - } + tableBody() { + this.lineEndingIfNeeded(); + this.tag(''); + }, - return result - } + tableData() { + /** @type {number} */ + // @ts-expect-error Custom. + const column = this.getData('tableColumn'); // @ts-expect-error Custom. + + if (column in this.getData('tableAlign')) { + this.tag(''); + this.setData('tableColumn', column + 1); + } else { + // Stop capturing. + this.resume(); } - } - ); + }, -/** - * @param {VisitorResult} value - * @returns {ActionTuple} - */ -function toResult$B(value) { - if (Array.isArray(value)) { - return value - } + tableHead() { + this.lineEndingIfNeeded(); + this.tag(''); + this.setData('slurpOneLineEnding', true); // Slurp the line ending from the delimiter row. + }, - if (typeof value === 'number') { - return [CONTINUE$C, value] - } + tableHeader() { + this.tag(''); // @ts-expect-error Custom. - return [value] -} + this.setData('tableColumn', this.getData('tableColumn') + 1); + }, -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test - * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult - */ + tableRow() { + /** @type {Align[]} */ + // @ts-expect-error Custom. + const align = this.getData('tableAlign'); + /** @type {number} */ + // @ts-expect-error Custom. -/** - * Visit children of tree which pass a test - * - * @param tree Abstract syntax tree to walk - * @param test Test, optional - * @param visitor Function to run for each node - * @param reverse Fisit the tree in reverse, defaults to false - */ -const visit$B = - /** - * @type {( - * ((tree: Tree, test: Check, visitor: Visitor, Check>>, reverse?: boolean) => void) & - * ((tree: Tree, visitor: Visitor>, reverse?: boolean) => void) - * )} - */ - ( - /** - * @param {Node} tree - * @param {Test} test - * @param {Visitor} visitor - * @param {boolean} [reverse] - */ - function (tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; - } + let column = this.getData('tableColumn'); - visitParents$B(tree, test, overload, reverse); + while (column < align.length) { + this.lineEndingIfNeeded(); // @ts-expect-error `null` is fine as an index. - /** - * @param {Node} node - * @param {Array.} parents - */ - function overload(node, parents) { - const parent = parents[parents.length - 1]; - return visitor( - node, - parent ? parent.children.indexOf(node) : null, - parent - ) + this.tag(''); + column++; } - } - ); + this.setData('tableColumn', column); + this.lineEndingIfNeeded(); + this.tag(''); + } + } +}; /** - * @typedef {import('unist').Position} Position - * @typedef {import('unist').Point} Point - * - * @typedef {Partial} PointLike - * - * @typedef {Object} PositionLike - * @property {PointLike} [start] - * @property {PointLike} [end] - * - * @typedef {Object} NodeLike - * @property {PositionLike} [position] + * @param {string} $0 + * @param {string} $1 + * @returns {string} */ -var pointStart$q = point$t('start'); +function replace$1($0, $1) { + // Pipes work, backslashes don’t (but can’t escape pipes). + return $1 === '|' ? $1 : $0 +} /** - * Get the positional info of `node`. - * - * @param {'start'|'end'} type + * @typedef {import('micromark-util-types').Effects} Effects + * @typedef {import('micromark-util-types').State} State + */ +/** + * @param {Effects} effects + * @param {State} ok + * @param {string} type + * @param {number} [max=Infinity] + * @returns {State} */ -function point$t(type) { - return point - /** - * Get the positional info of `node`. - * - * @param {NodeLike} [node] - * @returns {Point} - */ - function point(node) { - /** @type {Point} */ - // @ts-ignore looks like a point - var point = (node && node.position && node.position[type]) || {}; +function factorySpace(effects, ok, type, max) { + const limit = max ? max - 1 : Number.POSITIVE_INFINITY; + let size = 0; + return start + /** @type {State} */ - return { - line: point.line || null, - column: point.column || null, - offset: point.offset > -1 ? point.offset : null + function start(code) { + if (markdownSpace(code)) { + effects.enter(type); + return prefix(code) + } + + return ok(code) + } + /** @type {State} */ + + function prefix(code) { + if (markdownSpace(code) && size++ < limit) { + effects.consume(code); + return prefix } + + effects.exit(type); + return ok(code) } } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module unordered-list-marker-style - * @fileoverview - * Warn when the list item marker style of unordered lists violate a given - * style. - * - * Options: `'consistent'`, `'-'`, `'*'`, or `'+'`, default: `'consistent'`. - * - * `'consistent'` detects the first used list style and warns when subsequent - * lists use different styles. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats unordered lists using `-` (hyphen-minus) by default. - * Pass - * [`bullet: '*'` or `bullet: '+'`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsbullet) - * to use `*` (asterisk) or `+` (plus sign) instead. - * - * 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. - * - * @example - * {"name": "ok.md"} - * - * By default (`'consistent'`), if the file uses only one marker, - * that’s OK. - * - * * Foo - * * Bar - * * Baz - * - * Ordered lists are not affected. - * - * 1. Foo - * 2. Bar - * 3. Baz - * - * @example - * {"name": "ok.md", "setting": "*"} - * - * * Foo - * - * @example - * {"name": "ok.md", "setting": "-"} - * - * - Foo - * - * @example - * {"name": "ok.md", "setting": "+"} - * - * + Foo - * - * @example - * {"name": "not-ok.md", "label": "input"} - * - * * Foo - * - Bar - * + Baz - * - * @example - * {"name": "not-ok.md", "label": "output"} - * - * 2:1-2:6: Marker style should be `*` - * 3:1-3:6: Marker style should be `*` - * - * @example - * {"name": "not-ok.md", "label": "output", "setting": "💩", "positionless": true} - * - * 1:1: Incorrect unordered list item marker style `💩`: use either `'-'`, `'*'`, or `'+'` + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').Resolver} Resolver + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Token} Token */ -const markers = new Set(['-', '*', '+']); +/** @type {Extension} */ +const gfmTable = { + flow: { + null: { + tokenize: tokenizeTable, + resolve: resolveTable + } + } +}; +const setextUnderlineMini = { + tokenize: tokenizeSetextUnderlineMini, + partial: true +}; +const nextPrefixedOrBlank = { + tokenize: tokenizeNextPrefixedOrBlank, + partial: true +}; +/** @type {Resolver} */ -const remarkLintUnorderedListMarkerStyle = lintRule$F( - 'remark-lint:unordered-list-marker-style', - /** @type {import('unified-lint-rule').Rule} */ - (tree, file, option = 'consistent') => { - const value = String(file); +function resolveTable(events, context) { + let index = -1; + /** @type {Token} */ - if (option !== 'consistent' && !markers.has(option)) { - file.fail( - 'Incorrect unordered list item marker style `' + - option + - "`: use either `'-'`, `'*'`, or `'+'`" - ); - } + let token; + /** @type {boolean|undefined} */ - visit$B(tree, 'list', (node) => { - if (node.ordered) return + let inHead; + /** @type {boolean|undefined} */ - let index = -1; + let inDelimiterRow; + /** @type {boolean|undefined} */ - while (++index < node.children.length) { - const child = node.children[index]; + let inRow; + /** @type {Token} */ - if (!generated(child)) { - const marker = /** @type {Marker} */ ( - value - .slice( - pointStart$q(child).offset, - pointStart$q(child.children[0]).offset - ) - .replace(/\[[x ]?]\s*$/i, '') - .replace(/\s/g, '') - ); + let cell; + /** @type {Token} */ - if (option === 'consistent') { - option = marker; - } else if (marker !== option) { - file.message('Marker style should be `' + option + '`', child); - } - } + let content; + /** @type {Token} */ + + let text; + /** @type {number|undefined} */ + + let contentStart; + /** @type {number|undefined} */ + + let contentEnd; + /** @type {number|undefined} */ + + let cellStart; + + while (++index < events.length) { + token = events[index][1]; + + if (inRow) { + if (token.type === 'temporaryTableCellContent') { + contentStart = contentStart || index; + contentEnd = index; } - }); - } -); -// @see https://github.com/nodejs/node/blob/master/doc/guides/doc-style-guide.md + if ( + // Combine separate content parts into one. + (token.type === 'tableCellDivider' || token.type === 'tableRow') && + contentEnd + ) { + content = { + type: 'tableContent', + // @ts-expect-error `contentStart` is defined if `contentEnd` is too. + start: events[contentStart][1].start, + end: events[contentEnd][1].end + }; + text = { + type: 'chunkText', + start: content.start, + end: content.end, + // @ts-expect-error It’s fine. + contentType: 'text' + }; + events.splice( + // @ts-expect-error `contentStart` is defined if `contentEnd` is too. + contentStart, // @ts-expect-error `contentStart` is defined if `contentEnd` is too. + contentEnd - contentStart + 1, + ['enter', content, context], + ['enter', text, context], + ['exit', text, context], + ['exit', content, context] + ); // @ts-expect-error `contentStart` is defined if `contentEnd` is too. -// Add in rules alphabetically -const remarkPresetLintNode = [ - // Leave preset at the top so it can be overridden - remarkPresetLintRecommended, - [remarkLintBlockquoteIndentation, 2], - [remarkLintCheckboxCharacterStyle, { checked: "x", unchecked: " " }], - remarkLintCheckboxContentIndent, - [remarkLintCodeBlockStyle, "fenced"], - remarkLintDefinitionSpacing, - [ - remarkLintFencedCodeFlag, - { - flags: [ - "bash", - "c", - "cjs", - "coffee", - "console", - "cpp", - "diff", - "http", - "js", - "json", - "markdown", - "mjs", - "powershell", - "r", - "text", - ], - }, - ], - [remarkLintFencedCodeMarker, "`"], - [remarkLintFileExtension, "md"], - remarkLintFinalDefinition, - [remarkLintFirstHeadingLevel, 1], - [remarkLintHeadingStyle, "atx"], - [remarkLintListItemIndent, "space"], - remarkLintMaximumLineLength, - remarkLintNoConsecutiveBlankLines, - remarkLintNoFileNameArticles, - remarkLintNoFileNameConsecutiveDashes, - remarkLintNofileNameOuterDashes, - remarkLintNoHeadingIndent, - remarkLintNoMultipleToplevelHeadings, - remarkLintNoShellDollars, - remarkLintNoTableIndentation, - remarkLintNoTabs, - remarkLintNoTrailingSpaces, - remarkLintNodejsLinks, - remarkLintNodejsYamlComments, - [ - remarkLintProhibitedStrings, - [ - { yes: "End-of-Life" }, - { yes: "GitHub" }, - { no: "hostname", yes: "host name" }, - { yes: "JavaScript" }, - { no: "[Ll]ong[ -][Tt]erm [Ss]upport", yes: "Long Term Support" }, - { no: "Node", yes: "Node.js", ignoreNextTo: "-API" }, - { yes: "Node.js" }, - { no: "Node[Jj][Ss]", yes: "Node.js" }, - { no: "Node\\.js's?", yes: "the Node.js" }, - { no: "[Nn]ote that", yes: "" }, - { yes: "RFC" }, - { no: "[Rr][Ff][Cc]\\d+", yes: "RFC " }, - { yes: "Unix" }, - { yes: "V8" }, - ], - ], - remarkLintRuleStyle, - [remarkLintStrongMarker, "*"], - [remarkLintTableCellPadding, "padded"], - remarkLintTablePipes, - [remarkLintUnorderedListMarkerStyle, "*"], -]; + index -= contentEnd - contentStart - 3; + contentStart = undefined; + contentEnd = undefined; + } + } -var remarkPresetLintNode$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': remarkPresetLintNode -}); + if ( + events[index][0] === 'exit' && + cellStart && + cellStart + 1 < index && + (token.type === 'tableCellDivider' || + (token.type === 'tableRow' && + (cellStart + 3 < index || + events[cellStart][1].type !== 'whitespace'))) + ) { + 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; + } + + if (token.type === 'tableRow') { + inRow = events[index][0] === 'enter'; + + if (inRow) { + cellStart = index + 1; + } + } + + if (token.type === 'tableDelimiterRow') { + inDelimiterRow = events[index][0] === 'enter'; + + if (inDelimiterRow) { + cellStart = index + 1; + } + } + + if (token.type === 'tableHead') { + inHead = events[index][0] === 'enter'; + } + } + + return events +} +/** @type {Tokenizer} */ -var www = {tokenize: tokenizeWww}; -var http = {tokenize: tokenizeHttp}; -var domain = {tokenize: tokenizeDomain}; -var path$1 = {tokenize: tokenizePath}; -var punctuation = {tokenize: tokenizePunctuation}; -var domainPunctuation = {tokenize: tokenizeDomainPunctuation}; -var paren = {tokenize: tokenizeParen}; -var namedCharacterReference = {tokenize: tokenizeNamedCharacterReference}; - -var wwwAutolink = {tokenize: tokenizeWwwAutolink, previous: previous$1}; -var httpAutolink = {tokenize: tokenizeHttpAutolink, previous: previous$1}; -var emailAutolink = {tokenize: tokenizeEmailAutolink, previous: previous$1}; - -var text$4 = {}; - -// Export hooked constructs. -var text_1$3 = text$4; - -// `0` -var code$2 = 48; - -// While the code is smaller than `{`. -while (code$2 < 123) { - text$4[code$2] = emailAutolink; - code$2++; - // Jump from `:` -> `A` - if (code$2 === 58) code$2 = 65; - // Jump from `[` -> `a` - else if (code$2 === 91) code$2 = 97; -} - -// `+` -text$4[43] = emailAutolink; -// `-` -text$4[45] = emailAutolink; -// `.` -text$4[46] = emailAutolink; -// `_` -text$4[95] = emailAutolink; -// `h`. -text$4[72] = [emailAutolink, httpAutolink]; -text$4[104] = [emailAutolink, httpAutolink]; -// `w`. -text$4[87] = [emailAutolink, wwwAutolink]; -text$4[119] = [emailAutolink, wwwAutolink]; +function tokenizeTable(effects, ok, nok) { + const self = this; + /** @type {Align[]} */ -function tokenizeEmailAutolink(effects, ok, nok) { - var self = this; - var hasDot; + const align = []; + let tableHeaderCount = 0; + /** @type {boolean|undefined} */ + let seenDelimiter; + /** @type {boolean|undefined} */ + + let hasDash; return start + /** @type {State} */ function start(code) { - /* istanbul ignore next - hooks. */ - if (!gfmAtext(code) || !previous$1(self.previous)) { - return nok(code) - } - - effects.enter('literalAutolink'); - effects.enter('literalAutolinkEmail'); - return atext(code) - } + // @ts-expect-error Custom. + effects.enter('table')._align = align; + effects.enter('tableHead'); + effects.enter('tableRow'); // If we start with a pipe, we open a cell marker. - function atext(code) { - if (gfmAtext(code)) { - effects.consume(code); - return atext + if (code === 124) { + return cellDividerHead(code) } - // `@` - if (code === 64) { - effects.consume(code); - return label - } + tableHeaderCount++; + effects.enter('temporaryTableCellContent'); // Can’t be space or eols at the start of a construct, so we’re in a cell. - return nok(code) + return inCellContentHead(code) } + /** @type {State} */ - function label(code) { - // `.` - if (code === 46) { - return effects.check(punctuation, done, dotContinuation)(code) - } + function cellDividerHead(code) { + effects.enter('tableCellDivider'); + effects.consume(code); + effects.exit('tableCellDivider'); + seenDelimiter = true; + return cellBreakHead + } + /** @type {State} */ - if ( - // `-` - code === 45 || - // `_` - code === 95 - ) { - return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code) + function cellBreakHead(code) { + if (code === null || markdownLineEnding(code)) { + return atRowEndHead(code) } - if (asciiAlphanumeric_1(code)) { + if (markdownSpace(code)) { + effects.enter('whitespace'); effects.consume(code); - return label + return inWhitespaceHead } - return done(code) - } + if (seenDelimiter) { + seenDelimiter = undefined; + tableHeaderCount++; + } - function dotContinuation(code) { - effects.consume(code); - hasDot = true; - return label - } + if (code === 124) { + return cellDividerHead(code) + } // Anything else is cell content. - function dashOrUnderscoreContinuation(code) { - effects.consume(code); - return afterDashOrUnderscore + effects.enter('temporaryTableCellContent'); + return inCellContentHead(code) } + /** @type {State} */ - function afterDashOrUnderscore(code) { - // `.` - if (code === 46) { - return effects.check(punctuation, nok, dotContinuation)(code) + function inWhitespaceHead(code) { + if (markdownSpace(code)) { + effects.consume(code); + return inWhitespaceHead } - return label(code) + effects.exit('whitespace'); + return cellBreakHead(code) } + /** @type {State} */ - function done(code) { - if (hasDot) { - effects.exit('literalAutolinkEmail'); - effects.exit('literalAutolink'); - return ok(code) + function inCellContentHead(code) { + // EOF, whitespace, pipe + if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { + effects.exit('temporaryTableCellContent'); + return cellBreakHead(code) } - return nok(code) + effects.consume(code); + return code === 92 ? inCellContentEscapeHead : inCellContentHead } -} + /** @type {State} */ -function tokenizeWwwAutolink(effects, ok, nok) { - var self = this; + function inCellContentEscapeHead(code) { + if (code === 92 || code === 124) { + effects.consume(code); + return inCellContentHead + } // Anything else. - return start + return inCellContentHead(code) + } + /** @type {State} */ - function start(code) { - /* istanbul ignore next - hooks. */ - if ((code !== 87 && code - 32 !== 87) || !previous$1(self.previous)) { + function atRowEndHead(code) { + if (code === null) { return nok(code) } - effects.enter('literalAutolink'); - effects.enter('literalAutolinkWww'); - return effects.check( - www, - effects.attempt(domain, effects.attempt(path$1, done), nok), + effects.exit('tableRow'); + effects.exit('tableHead'); + return effects.attempt( + { + tokenize: tokenizeRowEnd, + partial: true + }, + atDelimiterLineStart, nok )(code) } + /** @type {State} */ - function done(code) { - effects.exit('literalAutolinkWww'); - effects.exit('literalAutolink'); - return ok(code) + function atDelimiterLineStart(code) { + // To do: is the lazy setext thing still needed? + return effects.check( + setextUnderlineMini, + nok, // Support an indent before the delimiter row. + factorySpace(effects, rowStartDelimiter, 'linePrefix', 4) + )(code) } -} - -function tokenizeHttpAutolink(effects, ok, nok) { - var self = this; - - return start + /** @type {State} */ - function start(code) { - /* istanbul ignore next - hooks. */ - if ((code !== 72 && code - 32 !== 72) || !previous$1(self.previous)) { + 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('literalAutolink'); - effects.enter('literalAutolinkHttp'); - return effects.check( - http, - effects.attempt(domain, effects.attempt(path$1, done), nok), - nok - )(code) - } - - function done(code) { - effects.exit('literalAutolinkHttp'); - effects.exit('literalAutolink'); - return ok(code) + effects.enter('tableDelimiterRow'); + return atDelimiterRowBreak(code) } -} - -function tokenizeHttp(effects, ok, nok) { - return start + /** @type {State} */ - function start(code) { - // Assume a `h`. - effects.consume(code); - return t1 - } + function atDelimiterRowBreak(code) { + if (code === null || markdownLineEnding(code)) { + return rowEndDelimiter(code) + } - function t1(code) { - // `t` - if (code === 84 || code - 32 === 84) { + if (markdownSpace(code)) { + effects.enter('whitespace'); effects.consume(code); - return t2 + return inWhitespaceDelimiter } - return nok(code) - } - - function t2(code) { - // `t` - if (code === 84 || code - 32 === 84) { + if (code === 45) { + effects.enter('tableDelimiterFiller'); effects.consume(code); - return p + hasDash = true; + align.push(null); + return inFillerDelimiter } - return nok(code) - } + if (code === 58) { + effects.enter('tableDelimiterAlignment'); + effects.consume(code); + effects.exit('tableDelimiterAlignment'); + align.push('left'); + return afterLeftAlignment + } // If we start with a pipe, we open a cell marker. - function p(code) { - // `p` - if (code === 80 || code - 32 === 80) { + if (code === 124) { + effects.enter('tableCellDivider'); effects.consume(code); - return s + effects.exit('tableCellDivider'); + return atDelimiterRowBreak } return nok(code) } + /** @type {State} */ - function s(code) { - // `s` - if (code === 83 || code - 32 === 83) { + function inWhitespaceDelimiter(code) { + if (markdownSpace(code)) { effects.consume(code); - return colon + return inWhitespaceDelimiter } - return colon(code) + effects.exit('whitespace'); + return atDelimiterRowBreak(code) } + /** @type {State} */ - function colon(code) { - // `:` - if (code === 58) { + function inFillerDelimiter(code) { + if (code === 45) { effects.consume(code); - return slash1 + return inFillerDelimiter } - return nok(code) - } + effects.exit('tableDelimiterFiller'); - function slash1(code) { - // `/` - if (code === 47) { + if (code === 58) { + effects.enter('tableDelimiterAlignment'); effects.consume(code); - return slash2 + effects.exit('tableDelimiterAlignment'); + align[align.length - 1] = + align[align.length - 1] === 'left' ? 'center' : 'right'; + return afterRightAlignment } - return nok(code) + return atDelimiterRowBreak(code) } + /** @type {State} */ - function slash2(code) { - // `/` - if (code === 47) { + function afterLeftAlignment(code) { + if (code === 45) { + effects.enter('tableDelimiterFiller'); effects.consume(code); - return after - } + hasDash = true; + return inFillerDelimiter + } // Anything else is not ok. return nok(code) } + /** @type {State} */ - function after(code) { - return asciiControl_1(code) || - unicodeWhitespace_1(code) || - unicodePunctuation_1(code) - ? nok(code) - : ok(code) - } -} - -function tokenizeWww(effects, ok, nok) { - return start - - function start(code) { - // Assume a `w`. - effects.consume(code); - return w2 - } - - function w2(code) { - // `w` - if (code === 87 || code - 32 === 87) { - effects.consume(code); - return w3 + function afterRightAlignment(code) { + if (code === null || markdownLineEnding(code)) { + return rowEndDelimiter(code) } - return nok(code) - } - - function w3(code) { - // `w` - if (code === 87 || code - 32 === 87) { + if (markdownSpace(code)) { + effects.enter('whitespace'); effects.consume(code); - return dot - } - - return nok(code) - } + return inWhitespaceDelimiter + } // `|` - function dot(code) { - // `.` - if (code === 46) { + if (code === 124) { + effects.enter('tableCellDivider'); effects.consume(code); - return after + effects.exit('tableCellDivider'); + return atDelimiterRowBreak } return nok(code) } + /** @type {State} */ - function after(code) { - return code === null || markdownLineEnding_1(code) ? nok(code) : ok(code) - } -} - -function tokenizeDomain(effects, ok, nok) { - var opened; - var hasUnderscoreInLastSegment; - var hasUnderscoreInLastLastSegment; - - return domain - - function domain(code) { - if ( - // `/` - code === 47 || - asciiControl_1(code) || - unicodeWhitespace_1(code) - ) { - return done(code) - } + function rowEndDelimiter(code) { + effects.exit('tableDelimiterRow'); // Exit if there was no dash at all, or if the header cell count is not the + // delimiter cell count. - // `&` - if (code === 38) { - return effects.check( - namedCharacterReference, - done, - punctuationContinuation - )(code) + if (!hasDash || tableHeaderCount !== align.length) { + return nok(code) } - if ( - // `.` - code === 46 || - trailingPunctuation(code) - ) { - return effects.check( - domainPunctuation, - done, - punctuationContinuation - )(code) + if (code === null) { + return tableClose(code) } - open(); - effects.consume(code); - return domain + return effects.check( + nextPrefixedOrBlank, + tableClose, + effects.attempt( + { + tokenize: tokenizeRowEnd, + partial: true + }, + factorySpace(effects, bodyStart, 'linePrefix', 4), + tableClose + ) + )(code) } + /** @type {State} */ - function punctuationContinuation(code) { - // `.` - if (code === 46) { - hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment; - hasUnderscoreInLastSegment = undefined; - open(); - effects.consume(code); - return domain - } - - // `_` - if (code === 95) hasUnderscoreInLastSegment = true; - - open(); - effects.consume(code); - return domain + function tableClose(code) { + effects.exit('table'); + return ok(code) } + /** @type {State} */ - function open() { - if (!opened) { - effects.enter('literalAutolinkDomain'); - opened = true; - } + function bodyStart(code) { + effects.enter('tableBody'); + return rowStartBody(code) } + /** @type {State} */ - function done(code) { - if ( - opened && - !hasUnderscoreInLastLastSegment && - !hasUnderscoreInLastSegment - ) { - effects.exit('literalAutolinkDomain'); - return ok(code) - } - - return nok(code) - } -} + function rowStartBody(code) { + effects.enter('tableRow'); // If we start with a pipe, we open a cell marker. -function tokenizePath(effects, ok) { - var balance = 0; + if (code === 124) { + return cellDividerBody(code) + } - return start + effects.enter('temporaryTableCellContent'); // Can’t be space or eols at the start of a construct, so we’re in a cell. - function start(code) { - // `/` - return code === 47 ? atPathStart(code) : ok(code) + return inCellContentBody(code) } + /** @type {State} */ - function atPathStart(code) { - effects.enter('literalAutolinkPath'); - return inPath(code) + function cellDividerBody(code) { + effects.enter('tableCellDivider'); + effects.consume(code); + effects.exit('tableCellDivider'); + return cellBreakBody } + /** @type {State} */ - function inPath(code) { - // `&` - if (code === 38) { - return effects.check( - namedCharacterReference, - atPathEnd, - continuedPunctuation - )(code) - } - - // `(` - if (code === 40) { - balance++; - } - - // `)` - if (code === 41) { - return effects.check(paren, parenAtPathEnd, continuedPunctuation)(code) - } - - if (pathEnd(code)) { - return atPathEnd(code) + function cellBreakBody(code) { + if (code === null || markdownLineEnding(code)) { + return atRowEndBody(code) } - if (trailingPunctuation(code)) { - return effects.check(punctuation, atPathEnd, continuedPunctuation)(code) - } + if (markdownSpace(code)) { + effects.enter('whitespace'); + effects.consume(code); + return inWhitespaceBody + } // `|` - effects.consume(code); - return inPath - } + if (code === 124) { + return cellDividerBody(code) + } // Anything else is cell content. - function continuedPunctuation(code) { - effects.consume(code); - return inPath + effects.enter('temporaryTableCellContent'); + return inCellContentBody(code) } + /** @type {State} */ - function parenAtPathEnd(code) { - balance--; - return balance < 0 ? atPathEnd(code) : continuedPunctuation(code) - } + function inWhitespaceBody(code) { + if (markdownSpace(code)) { + effects.consume(code); + return inWhitespaceBody + } - function atPathEnd(code) { - effects.exit('literalAutolinkPath'); - return ok(code) + effects.exit('whitespace'); + return cellBreakBody(code) } -} + /** @type {State} */ -function tokenizeNamedCharacterReference(effects, ok, nok) { - return start + function inCellContentBody(code) { + // EOF, whitespace, pipe + if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { + effects.exit('temporaryTableCellContent'); + return cellBreakBody(code) + } - function start(code) { - // Assume an ampersand. - effects.enter('literalAutolinkCharacterReferenceNamed'); effects.consume(code); - return inside + return code === 92 ? inCellContentEscapeBody : inCellContentBody } + /** @type {State} */ - function inside(code) { - if (asciiAlpha_1(code)) { - effects.consume(code); - return inside - } - - // `;` - if (code === 59) { + function inCellContentEscapeBody(code) { + if (code === 92 || code === 124) { effects.consume(code); - return after - } + return inCellContentBody + } // Anything else. - return nok(code) + return inCellContentBody(code) } + /** @type {State} */ - function after(code) { - // If the named character reference is followed by the end of the path, it’s - // not continued punctuation. - effects.exit('literalAutolinkCharacterReferenceNamed'); - return pathEnd(code) ? ok(code) : nok(code) - } -} + function atRowEndBody(code) { + effects.exit('tableRow'); -function tokenizeParen(effects, ok, nok) { - return start + if (code === null) { + return tableBodyClose(code) + } - function start(code) { - // Assume a right paren. - effects.enter('literalAutolinkParen'); - effects.consume(code); - return after + return effects.check( + nextPrefixedOrBlank, + tableBodyClose, + effects.attempt( + { + tokenize: tokenizeRowEnd, + partial: true + }, + factorySpace(effects, rowStartBody, 'linePrefix', 4), + tableBodyClose + ) + )(code) } + /** @type {State} */ - function after(code) { - // If the punctuation marker is followed by the end of the path, it’s not - // continued punctuation. - effects.exit('literalAutolinkParen'); - return pathEnd(code) || - // `)` - code === 41 - ? ok(code) - : nok(code) + function tableBodyClose(code) { + effects.exit('tableBody'); + return tableClose(code) } -} + /** @type {Tokenizer} */ -function tokenizePunctuation(effects, ok, nok) { - return start + function tokenizeRowEnd(effects, ok, nok) { + return start + /** @type {State} */ - function start(code) { - effects.enter('literalAutolinkPunctuation'); - // Always a valid trailing punctuation marker. - effects.consume(code); - return after - } + function start(code) { + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return lineStart + } + /** @type {State} */ - function after(code) { - // If the punctuation marker is followed by the end of the path, it’s not - // continued punctuation. - effects.exit('literalAutolinkPunctuation'); - return pathEnd(code) ? ok(code) : nok(code) + 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. +// -function tokenizeDomainPunctuation(effects, ok, nok) { +/** @type {Tokenizer} */ + +function tokenizeSetextUnderlineMini(effects, ok, nok) { return start + /** @type {State} */ function start(code) { - effects.enter('literalAutolinkPunctuation'); - // Always a valid trailing punctuation marker. - effects.consume(code); - return after - } - - function after(code) { - // Check the next. - if (trailingPunctuation(code)) { - effects.consume(code); - return after + if (code !== 45) { + return nok(code) } - // If the punctuation marker is followed by the end of the path, it’s not - // continued punctuation. - effects.exit('literalAutolinkPunctuation'); - return pathEnd(code) ? ok(code) : nok(code) + effects.enter('setextUnderline'); + return sequence(code) } -} - -function trailingPunctuation(code) { - return ( - // `!` - code === 33 || - // `"` - code === 34 || - // `'` - code === 39 || - // `)` - code === 41 || - // `*` - code === 42 || - // `,` - code === 44 || - // `.` - code === 46 || - // `:` - code === 58 || - // `;` - code === 59 || - // `<` - code === 60 || - // `?` - code === 63 || - // `_`. - code === 95 || - // `~` - code === 126 - ) -} - -function pathEnd(code) { - return ( - // EOF. - code === null || - // CR, LF, CRLF, HT, VS. - code < 0 || - // Space. - code === 32 || - // `<` - code === 60 - ) -} - -function gfmAtext(code) { - return ( - // `+` - code === 43 || - // `-` - code === 45 || - // `.` - code === 46 || - // `_` - code === 95 || - asciiAlphanumeric_1(code) - ) -} + /** @type {State} */ -function previous$1(code) { - return ( - // EOF. - code === null || - // CR, LF, CRLF, HT, VS. - code < 0 || - // Space. - code === 32 || - // `(` - code === 40 || - // `*` - code === 42 || - // `_`. - code === 95 || - // `~` - code === 126 - ) -} + function sequence(code) { + if (code === 45) { + effects.consume(code); + return sequence + } -var syntax = { - text: text_1$3 -}; + return whitespace(code) + } + /** @type {State} */ -var micromarkExtensionGfmAutolinkLiteral = syntax; + function whitespace(code) { + if (code === null || markdownLineEnding(code)) { + return ok(code) + } -var micromarkExtensionGfmStrikethrough = create$2; + if (markdownSpace(code)) { + effects.consume(code); + return whitespace + } + return nok(code) + } +} +/** @type {Tokenizer} */ +function tokenizeNextPrefixedOrBlank(effects, ok, nok) { + let size = 0; + return start + /** @type {State} */ + function start(code) { + // This is a check, so we don’t care about tokens, but we open a bogus one + // so we’re valid. + effects.enter('check'); // EOL. + effects.consume(code); + return whitespace + } + /** @type {State} */ + function whitespace(code) { + if (code === -1 || code === 32) { + effects.consume(code); + size++; + return size === 4 ? ok : whitespace + } // EOF or whitespace -function create$2(options) { - var settings = options || {}; - var single = settings.singleTilde; - var tokenizer = { - tokenize: tokenizeStrikethrough, - resolveAll: resolveAllStrikethrough - }; + if (code === null || markdownLineEndingOrSpace(code)) { + return ok(code) + } // Anything else. - if (single === null || single === undefined) { - single = true; + return nok(code) } +} - return {text: {126: tokenizer}, insideSpan: {null: tokenizer}} - - // Take events and resolve strikethrough. - function resolveAllStrikethrough(events, context) { - var index = -1; - var strikethrough; - var text; - var open; - var nextEvents; +/** + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').CompileContext} CompileContext + */ - // Walk through all events. - while (++index < events.length) { - // Find a token that can close. - if ( - events[index][0] === 'enter' && - events[index][1].type === 'strikethroughSequenceTemporary' && - events[index][1]._close - ) { - open = index; +/** + * An opening or closing tag, followed by a case-insensitive specific tag name, + * followed by HTML whitespace, a greater than, or a slash. + */ +const reFlow = + /<(\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\t\n\f\r />])/gi; - // Now walk back to find an opener. - while (open--) { - // Find a token that can open the closer. - if ( - events[open][0] === 'exit' && - events[open][1].type === 'strikethroughSequenceTemporary' && - events[open][1]._open && - // If the sizes are the same: - events[index][1].end.offset - events[index][1].start.offset === - events[open][1].end.offset - events[open][1].start.offset - ) { - events[index][1].type = 'strikethroughSequence'; - events[open][1].type = 'strikethroughSequence'; +/** + * As HTML (text) parses tags separately (and v. strictly), we don’t need to be + * global. + */ +const reText = new RegExp('^' + reFlow.source, 'i'); - strikethrough = { - type: 'strikethrough', - start: shallow_1(events[open][1].start), - end: shallow_1(events[index][1].end) - }; +/** @type {HtmlExtension} */ +const gfmTagfilterHtml = { + exit: { + htmlFlowData(token) { + exitHtmlData.call(this, token, reFlow); + }, + htmlTextData(token) { + exitHtmlData.call(this, token, reText); + } + } +}; - text = { - type: 'strikethroughText', - start: shallow_1(events[open][1].end), - end: shallow_1(events[index][1].start) - }; +/** + * @this {CompileContext} + * @param {Token} token + * @param {RegExp} filter + */ +function exitHtmlData(token, filter) { + let value = this.sliceSerialize(token); - // Opening. - nextEvents = [ - ['enter', strikethrough, context], - ['enter', events[open][1], context], - ['exit', events[open][1], context], - ['enter', text, context] - ]; + if (this.options.allowDangerousHtml) { + value = value.replace(filter, '<$1$2'); + } - // Between. - chunkedSplice_1( - nextEvents, - nextEvents.length, - 0, - resolveAll_1( - context.parser.constructs.insideSpan.null, - events.slice(open + 1, index), - context - ) - ); + this.raw(this.encode(value)); +} - // Closing. - chunkedSplice_1(nextEvents, nextEvents.length, 0, [ - ['exit', text, context], - ['enter', events[index][1], context], - ['exit', events[index][1], context], - ['exit', strikethrough, context] - ]); +/** + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + */ - chunkedSplice_1(events, open - 1, index - open + 3, nextEvents); +/** @type {HtmlExtension} */ +const gfmTaskListItemHtml = { + enter: { + taskListCheck() { + this.tag(''); + }, - index = open + nextEvents.length - 2; - break - } - } - } + taskListCheckValueChecked() { + this.tag('checked="" '); } + } +}; - return removeRemainingSequences(events) +/** + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord + * @typedef {import('micromark-util-types').Tokenizer} Tokenizer + * @typedef {import('micromark-util-types').Previous} Previous + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Event} Event + * @typedef {import('micromark-util-types').Code} Code + */ +const tasklistCheck = { + tokenize: tokenizeTasklistCheck +}; +const gfmTaskListItem = { + text: { + [91]: tasklistCheck } +}; +/** @type {Tokenizer} */ - function removeRemainingSequences(events) { - var index = -1; - var length = events.length; +function tokenizeTasklistCheck(effects, ok, nok) { + const self = this; + return open + /** @type {State} */ - while (++index < length) { - if (events[index][1].type === 'strikethroughSequenceTemporary') { - events[index][1].type = 'data'; - } + function open(code) { + if ( + // Exit if there’s stuff before. + self.previous !== null || // Exit if not in the first content that is the first child of a list + // item. + !self._gfmTasklistFirstContentOfListItem + ) { + return nok(code) } - return events + effects.enter('taskListCheck'); + effects.enter('taskListCheckMarker'); + effects.consume(code); + effects.exit('taskListCheckMarker'); + return inside } + /** @type {State} */ - function tokenizeStrikethrough(effects, ok, nok) { - var previous = this.previous; - var events = this.events; - var size = 0; + function inside(code) { + if (markdownSpace(code)) { + effects.enter('taskListCheckValueUnchecked'); + effects.consume(code); + effects.exit('taskListCheckValueUnchecked'); + return close + } - return start + if (code === 88 || code === 120) { + effects.enter('taskListCheckValueChecked'); + effects.consume(code); + effects.exit('taskListCheckValueChecked'); + return close + } - function start(code) { - if ( - code !== 126 || - (previous === 126 && - events[events.length - 1][1].type !== 'characterEscape') - ) { - return nok(code) - } + return nok(code) + } + /** @type {State} */ - effects.enter('strikethroughSequenceTemporary'); - return more(code) + function close(code) { + if (code === 93) { + effects.enter('taskListCheckMarker'); + effects.consume(code); + effects.exit('taskListCheckMarker'); + effects.exit('taskListCheck'); + return effects.check( + { + tokenize: spaceThenNonSpace + }, + ok, + nok + ) } - function more(code) { - var before = classifyCharacter_1(previous); - var token; - var after; + return nok(code) + } +} +/** @type {Tokenizer} */ - if (code === 126) { - // If this is the third marker, exit. - if (size > 1) return nok(code) - effects.consume(code); - size++; - return more - } +function spaceThenNonSpace(effects, ok, nok) { + const self = this; + return factorySpace(effects, after, 'whitespace') + /** @type {State} */ - if (size < 2 && !single) return nok(code) - token = effects.exit('strikethroughSequenceTemporary'); - after = classifyCharacter_1(code); - token._open = !after || (after === 2 && before); - token._close = !before || (before === 2 && after); - return ok(code) - } + function after(code) { + const tail = self.events[self.events.length - 1]; + return tail && + tail[1].type === 'whitespace' && + code !== null && + !markdownLineEndingOrSpace(code) + ? ok(code) + : nok(code) } } -var flow$3 = { - null: {tokenize: tokenizeTable, resolve: resolveTable, interruptible: true} -}; +/** + * @typedef {import('micromark-util-types').Extension} Extension + * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension + * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options + */ +/** + * Support GFM or markdown on github.com. + * + * @param {Options} [options] + * @returns {Extension} + */ +function gfm$1(options) { + return combineExtensions([ + gfmAutolinkLiteral, + gfmStrikethrough(options), + gfmTable, + gfmTaskListItem + ]) +} + +/** @type {HtmlExtension} */ +combineHtmlExtensions([ + gfmAutolinkLiteralHtml, + gfmStrikethroughHtml, + gfmTableHtml, + gfmTagfilterHtml, + gfmTaskListItemHtml +]); +/** + * Get the total count of `character` in `value`. + * + * @param {any} value Content, coerced to string + * @param {string} character Single character 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; -var setextUnderlineMini = {tokenize: tokenizeSetextUnderlineMini, partial: true}; -var nextPrefixedOrBlank = {tokenize: tokenizeNextPrefixedOrBlank, partial: true}; + if (typeof character !== 'string') { + throw new Error('Expected character') + } -function resolveTable(events, context) { - var length = events.length; - var index = -1; - var token; - var inHead; - var inDelimiterRow; - var inRow; - var cell; - var content; - var text; - var contentStart; - var contentEnd; - var cellStart; + index = source.indexOf(character); - while (++index < length) { - token = events[index][1]; + while (index !== -1) { + count++; + index = source.indexOf(character, index + character.length); + } - if (inRow) { - if (token.type === 'temporaryTableCellContent') { - contentStart = contentStart || index; - contentEnd = index; - } + return count +} - if ( - // Combine separate content parts into one. - (token.type === 'tableCellDivider' || token.type === 'tableRow') && - contentEnd - ) { - content = { - type: 'tableContent', - start: events[contentStart][1].start, - end: events[contentEnd][1].end - }; - text = { - type: 'chunkText', - start: content.start, - end: content.end, - contentType: 'text' - }; +function escapeStringRegexp(string) { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); + } - events.splice( - contentStart, - contentEnd - contentStart + 1, - ['enter', content, context], - ['enter', text, context], - ['exit', text, context], - ['exit', content, context] - ); - index -= contentEnd - contentStart - 3; - length = events.length; - contentStart = undefined; - contentEnd = undefined; - } - } + // Escape characters with special meaning either inside or outside character sets. + // Use a simple backslash escape when it’s always valid, and a `\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar. + return string + .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') + .replace(/-/g, '\\x2d'); +} - if ( - events[index][0] === 'exit' && - (token.type === 'tableCellDivider' || token.type === 'tableRow') && - cellStart && - cellStart + 1 < index - ) { - 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; - length = events.length; - cellStart = index + 1; - } +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * + * @typedef {string} Type + * @typedef {Object} Props + * + * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test + */ - if (token.type === 'tableRow') { - inRow = events[index][0] === 'enter'; +const convert = + /** + * @type {( + * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & + * ((test?: Test) => AssertAnything) + * )} + */ + ( + /** + * Generate an assertion from a check. + * @param {Test} [test] + * When nullish, checks if `node` is a `Node`. + * When `string`, works like passing `function (node) {return node.type === test}`. + * When `function` checks if function passed the node is true. + * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values. + * When `array`, checks any one of the subtests pass. + * @returns {AssertAnything} + */ + function (test) { + if (test === undefined || test === null) { + return ok + } - if (inRow) { - cellStart = index + 1; + if (typeof test === 'string') { + return typeFactory(test) } - } - if (token.type === 'tableDelimiterRow') { - inDelimiterRow = events[index][0] === 'enter'; + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory(test) : propsFactory(test) + } - if (inDelimiterRow) { - cellStart = index + 1; + if (typeof test === 'function') { + return castFactory(test) } - } - if (token.type === 'tableHead') { - inHead = events[index][0] === 'enter'; + throw new Error('Expected function, string, or object as test') } - } - - return events -} - -function tokenizeTable(effects, ok, nok) { - var align = []; - var tableHeaderCount = 0; - var seenDelimiter; - var hasDash; + ); +/** + * @param {Array.} tests + * @returns {AssertAnything} + */ +function anyFactory(tests) { + /** @type {Array.} */ + const checks = []; + let index = -1; - return start + while (++index < tests.length) { + checks[index] = convert(tests[index]); + } - function start(code) { - /* istanbul ignore if - used to be passed in beta micromark versions. */ - if (code === null || code === -5 || code === -4 || code === -3) { - return nok(code) - } + return castFactory(any) - effects.enter('table')._align = align; - effects.enter('tableHead'); - effects.enter('tableRow'); + /** + * @this {unknown} + * @param {unknown[]} parameters + * @returns {boolean} + */ + function any(...parameters) { + let index = -1; - // If we start with a pipe, we open a cell marker. - if (code === 124) { - return cellDividerHead(code) + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true } - tableHeaderCount++; - effects.enter('temporaryTableCellContent'); - // Can’t be space or eols at the start of a construct, so we’re in a cell. - return inCellContentHead(code) + return false } +} - function cellDividerHead(code) { - // Always a pipe. - effects.enter('tableCellDivider'); - effects.consume(code); - effects.exit('tableCellDivider'); - seenDelimiter = true; - return cellBreakHead - } +/** + * Utility to assert each property in `test` is represented in `node`, and each + * values are strictly equal. + * + * @param {Props} check + * @returns {AssertAnything} + */ +function propsFactory(check) { + return castFactory(all) - function cellBreakHead(code) { - // EOF, CR, LF, CRLF. - if (code === null || code === -5 || code === -4 || code === -3) { - return atRowEndHead(code) - } + /** + * @param {Node} node + * @returns {boolean} + */ + function all(node) { + /** @type {string} */ + let key; - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { - effects.enter('whitespace'); - effects.consume(code); - return inWhitespaceHead + for (key in check) { + // @ts-expect-error: hush, it sure works as an index. + if (node[key] !== check[key]) return false } - if (seenDelimiter) { - seenDelimiter = undefined; - tableHeaderCount++; - } + return true + } +} - // `|` - if (code === 124) { - return cellDividerHead(code) - } +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * + * @param {Type} check + * @returns {AssertAnything} + */ +function typeFactory(check) { + return castFactory(type) - // Anything else is cell content. - effects.enter('temporaryTableCellContent'); - return inCellContentHead(code) + /** + * @param {Node} node + */ + function type(node) { + return node && node.type === check } +} - function inWhitespaceHead(code) { - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { - effects.consume(code); - return inWhitespaceHead - } +/** + * Utility to convert a string into a function which checks a given node’s type + * for said string. + * @param {TestFunctionAnything} check + * @returns {AssertAnything} + */ +function castFactory(check) { + return assertion - effects.exit('whitespace'); - return cellBreakHead(code) + /** + * @this {unknown} + * @param {Array.} parameters + * @returns {boolean} + */ + function assertion(...parameters) { + // @ts-expect-error: spreading is fine. + return Boolean(check.call(this, ...parameters)) } +} - function inCellContentHead(code) { - // EOF, whitespace, pipe - if (code === null || code < 0 || code === 32 || code === 124) { - effects.exit('temporaryTableCellContent'); - return cellBreakHead(code) - } +// Utility to return true. +function ok() { + return true +} - effects.consume(code); - // `\` - return code === 92 ? inCellContentEscapeHead : inCellContentHead - } +/** + * @param {string} d + * @returns {string} + */ +function color(d) { + return '\u001B[33m' + d + '\u001B[39m' +} - function inCellContentEscapeHead(code) { - // `\` or `|` - if (code === 92 || code === 124) { - effects.consume(code); - return inCellContentHead - } +/** + * @typedef {import('unist').Node} Node + * @typedef {import('unist').Parent} Parent + * @typedef {import('unist-util-is').Test} Test + */ + +/** + * Continue traversing as normal + */ +const CONTINUE = true; +/** + * Do not traverse this node’s children + */ +const SKIP = 'skip'; +/** + * Stop traversing immediately + */ +const EXIT = false; + +const visitParents = + /** + * @type {( + * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) & + * ((tree: Node, test: Test, visitor: Visitor, reverse?: boolean) => void) & + * ((tree: Node, visitor: Visitor, reverse?: boolean) => void) + * )} + */ + ( + /** + * Visit children of tree which pass a test + * + * @param {Node} tree Abstract syntax tree to walk + * @param {Test} test test Test node + * @param {Visitor} visitor Function to run for each node + * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false + */ + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + // @ts-ignore no visitor given, so `visitor` is test. + visitor = test; + test = null; + } + + var is = convert(test); + var step = reverse ? -1 : 1; - // Anything else. - return inCellContentHead(code) - } + factory(tree, null, [])(); - function atRowEndHead(code) { - if (code === null) { - return nok(code) - } + /** + * @param {Node} node + * @param {number?} index + * @param {Array.} parents + */ + function factory(node, index, parents) { + /** @type {Object.} */ + var value = typeof node === 'object' && node !== null ? node : {}; + /** @type {string} */ + var name; - effects.exit('tableRow'); - effects.exit('tableHead'); + if (typeof value.type === 'string') { + name = + typeof value.tagName === 'string' + ? value.tagName + : typeof value.name === 'string' + ? value.name + : undefined; - // Always a line ending. - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); + Object.defineProperty(visit, 'name', { + value: + 'node (' + + color(value.type + (name ? '<' + name + '>' : '')) + + ')' + }); + } - // If a setext heading, exit. - return effects.check( - setextUnderlineMini, - nok, - // Support an indent before the delimiter row. - factorySpace(effects, rowStartDelimiter, 'linePrefix', 4) - ) - } + return visit - function rowStartDelimiter(code) { - // If there’s another space, or we’re at the EOL/EOF, exit. - if (code === null || code < 0 || code === 32) { - return nok(code) - } + function visit() { + /** @type {ActionTuple} */ + var result = []; + /** @type {ActionTuple} */ + var subresult; + /** @type {number} */ + var offset; + /** @type {Array.} */ + var grandparents; - effects.enter('tableDelimiterRow'); - return atDelimiterRowBreak(code) - } + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult(visitor(node, parents)); - function atDelimiterRowBreak(code) { - // EOF, CR, LF, CRLF. - if (code === null || code === -5 || code === -4 || code === -3) { - return rowEndDelimiter(code) - } + if (result[0] === EXIT) { + return result + } + } - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { - effects.enter('whitespace'); - effects.consume(code); - return inWhitespaceDelimiter - } + if (node.children && result[0] !== SKIP) { + // @ts-ignore looks like a parent. + offset = (reverse ? node.children.length : -1) + step; + // @ts-ignore looks like a parent. + grandparents = parents.concat(node); - // `-` - if (code === 45) { - effects.enter('tableDelimiterFiller'); - effects.consume(code); - hasDash = true; - align.push(null); - return inFillerDelimiter - } + // @ts-ignore looks like a parent. + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); - // `:` - if (code === 58) { - effects.enter('tableDelimiterAlignment'); - effects.consume(code); - effects.exit('tableDelimiterAlignment'); - align.push('left'); - return afterLeftAlignment - } + if (subresult[0] === EXIT) { + return subresult + } - // If we start with a pipe, we open a cell marker. - if (code === 124) { - effects.enter('tableCellDivider'); - effects.consume(code); - effects.exit('tableCellDivider'); - return atDelimiterRowBreak + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + + return result + } + } } + ); - return nok(code) +/** + * @param {VisitorResult} value + * @returns {ActionTuple} + */ +function toResult(value) { + if (Array.isArray(value)) { + return value } - function inWhitespaceDelimiter(code) { - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { - effects.consume(code); - return inWhitespaceDelimiter - } - - effects.exit('whitespace'); - return atDelimiterRowBreak(code) + if (typeof value === 'number') { + return [CONTINUE, value] } - function inFillerDelimiter(code) { - // `-` - if (code === 45) { - effects.consume(code); - return inFillerDelimiter - } + return [value] +} - effects.exit('tableDelimiterFiller'); +/** + * @typedef Options Configuration. + * @property {Test} [ignore] `unist-util-is` test used to assert parents + * + * @typedef {import('mdast').Root} Root + * @typedef {import('mdast').Content} Content + * @typedef {import('mdast').PhrasingContent} PhrasingContent + * @typedef {import('mdast').Text} Text + * @typedef {Content|Root} Node + * @typedef {Extract} Parent + * + * @typedef {import('unist-util-visit-parents').Test} Test + * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult + * + * @typedef RegExpMatchObject + * @property {number} index + * @property {string} input + * + * @typedef {string|RegExp} Find + * @typedef {string|ReplaceFunction} Replace + * + * @typedef {[Find, Replace]} FindAndReplaceTuple + * @typedef {Object.} FindAndReplaceSchema + * @typedef {Array.} FindAndReplaceList + * + * @typedef {[RegExp, ReplaceFunction]} Pair + * @typedef {Array.} Pairs + */ - // `:` - if (code === 58) { - effects.enter('tableDelimiterAlignment'); - effects.consume(code); - effects.exit('tableDelimiterAlignment'); +const own = {}.hasOwnProperty; - align[align.length - 1] = - align[align.length - 1] === 'left' ? 'center' : 'right'; +/** + * @param tree mdast tree + * @param find Value to find and remove. When `string`, escaped and made into a global `RegExp` + * @param [replace] Value to insert. + * * When `string`, turned into a Text node. + * * When `Function`, called with the results of calling `RegExp.exec` as + * arguments, in which case it can return a single or a list of `Node`, + * a `string` (which is wrapped in a `Text` node), or `false` to not replace + * @param [options] Configuration. + */ +const findAndReplace = + /** + * @type {( + * ((tree: Node, find: Find, replace?: Replace, options?: Options) => Node) & + * ((tree: Node, schema: FindAndReplaceSchema|FindAndReplaceList, options?: Options) => Node) + * )} + **/ + ( + /** + * @param {Node} tree + * @param {Find|FindAndReplaceSchema|FindAndReplaceList} find + * @param {Replace|Options} [replace] + * @param {Options} [options] + */ + function (tree, find, replace, options) { + /** @type {Options|undefined} */ + let settings; + /** @type {FindAndReplaceSchema|FindAndReplaceList} */ + let schema; + + if (typeof find === 'string' || find instanceof RegExp) { + // @ts-expect-error don’t expect options twice. + schema = [[find, replace]]; + settings = options; + } else { + schema = find; + // @ts-expect-error don’t expect replace twice. + settings = replace; + } - return afterRightAlignment - } + if (!settings) { + settings = {}; + } - return atDelimiterRowBreak(code) - } + const ignored = convert(settings.ignore || []); + const pairs = toPairs(schema); + let pairIndex = -1; - function afterLeftAlignment(code) { - // `-` - if (code === 45) { - effects.enter('tableDelimiterFiller'); - effects.consume(code); - hasDash = true; - return inFillerDelimiter - } + while (++pairIndex < pairs.length) { + visitParents(tree, 'text', visitor); + } - // Anything else is not ok. - return nok(code) - } + return tree - function afterRightAlignment(code) { - // EOF, CR, LF, CRLF. - if (code === null || code === -5 || code === -4 || code === -3) { - return rowEndDelimiter(code) - } + /** @type {import('unist-util-visit-parents').Visitor} */ + function visitor(node, parents) { + let index = -1; + /** @type {Parent|undefined} */ + let grandparent; - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { - effects.enter('whitespace'); - effects.consume(code); - return inWhitespaceDelimiter - } + while (++index < parents.length) { + const parent = /** @type {Parent} */ (parents[index]); - // `|` - if (code === 124) { - effects.enter('tableCellDivider'); - effects.consume(code); - effects.exit('tableCellDivider'); - return atDelimiterRowBreak - } + if ( + ignored( + parent, + // @ts-expect-error mdast vs. unist parent. + grandparent ? grandparent.children.indexOf(parent) : undefined, + grandparent + ) + ) { + return + } - return nok(code) - } + grandparent = parent; + } - function rowEndDelimiter(code) { - effects.exit('tableDelimiterRow'); + if (grandparent) { + return handler(node, grandparent) + } + } - // Exit if there was no dash at all, or if the header cell count is not the - // delimiter cell count. - if (!hasDash || tableHeaderCount !== align.length) { - return nok(code) - } + /** + * @param {Text} node + * @param {Parent} parent + * @returns {VisitorResult} + */ + function handler(node, parent) { + const find = pairs[pairIndex][0]; + const replace = pairs[pairIndex][1]; + let start = 0; + // @ts-expect-error: TS is wrong, some of these children can be text. + let index = parent.children.indexOf(node); + /** @type {Array.} */ + let nodes = []; + /** @type {number|undefined} */ + let position; - if (code === null) { - return tableClose(code) - } + find.lastIndex = 0; - return effects.check(nextPrefixedOrBlank, tableClose, tableContinue)(code) - } + let match = find.exec(node.value); - function tableClose(code) { - effects.exit('table'); - return ok(code) - } + while (match) { + position = match.index; + // @ts-expect-error this is perfectly fine, typescript. + let value = replace(...match, { + index: match.index, + input: match.input + }); - function tableContinue(code) { - // Always a line ending. - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - // We checked that it’s not a prefixed or blank line, so we’re certain a - // body is coming, though it may be indented. - return factorySpace(effects, bodyStart, 'linePrefix', 4) - } + if (typeof value === 'string') { + value = value.length > 0 ? {type: 'text', value} : undefined; + } - function bodyStart(code) { - effects.enter('tableBody'); - return rowStartBody(code) - } + if (value !== false) { + if (start !== position) { + nodes.push({ + type: 'text', + value: node.value.slice(start, position) + }); + } - function rowStartBody(code) { - effects.enter('tableRow'); + if (Array.isArray(value)) { + nodes.push(...value); + } else if (value) { + nodes.push(value); + } - // If we start with a pipe, we open a cell marker. - if (code === 124) { - return cellDividerBody(code) - } + start = position + match[0].length; + } - effects.enter('temporaryTableCellContent'); - // Can’t be space or eols at the start of a construct, so we’re in a cell. - return inCellContentBody(code) - } + if (!find.global) { + break + } - function cellDividerBody(code) { - // Always a pipe. - effects.enter('tableCellDivider'); - effects.consume(code); - effects.exit('tableCellDivider'); - return cellBreakBody - } + match = find.exec(node.value); + } - function cellBreakBody(code) { - // EOF, CR, LF, CRLF. - if (code === null || code === -5 || code === -4 || code === -3) { - return atRowEndBody(code) - } + if (position === undefined) { + nodes = [node]; + index--; + } else { + if (start < node.value.length) { + nodes.push({type: 'text', value: node.value.slice(start)}); + } - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { - effects.enter('whitespace'); - effects.consume(code); - return inWhitespaceBody - } + parent.children.splice(index, 1, ...nodes); + } - // `|` - if (code === 124) { - return cellDividerBody(code) + return index + nodes.length + 1 + } } + ); - // Anything else is cell content. - effects.enter('temporaryTableCellContent'); - return inCellContentBody(code) - } - - function inWhitespaceBody(code) { - // HT, VS, SP. - if (code === -2 || code === -1 || code === 32) { - effects.consume(code); - return inWhitespaceBody - } +/** + * @param {FindAndReplaceSchema|FindAndReplaceList} schema + * @returns {Pairs} + */ +function toPairs(schema) { + /** @type {Pairs} */ + const result = []; - effects.exit('whitespace'); - return cellBreakBody(code) + if (typeof schema !== 'object') { + throw new TypeError('Expected array or object as schema') } - function inCellContentBody(code) { - // EOF, whitespace, pipe - if (code === null || code < 0 || code === 32 || code === 124) { - effects.exit('temporaryTableCellContent'); - return cellBreakBody(code) - } - - effects.consume(code); - // `\` - return code === 92 ? inCellContentEscapeBody : inCellContentBody - } + if (Array.isArray(schema)) { + let index = -1; - function inCellContentEscapeBody(code) { - // `\` or `|` - if (code === 92 || code === 124) { - effects.consume(code); - return inCellContentBody + while (++index < schema.length) { + result.push([ + toExpression(schema[index][0]), + toFunction(schema[index][1]) + ]); } + } else { + /** @type {string} */ + let key; - // Anything else. - return inCellContentBody(code) - } - - function atRowEndBody(code) { - effects.exit('tableRow'); - - if (code === null) { - return tableBodyClose(code) + for (key in schema) { + if (own.call(schema, key)) { + result.push([toExpression(key), toFunction(schema[key])]); + } } - - return effects.check( - nextPrefixedOrBlank, - tableBodyClose, - tableBodyContinue - )(code) - } - - function tableBodyClose(code) { - effects.exit('tableBody'); - return tableClose(code) } - function tableBodyContinue(code) { - // Always a line ending. - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - // Support an optional prefix, then start a body row. - return factorySpace(effects, rowStartBody, 'linePrefix', 4) - } + return result } -// Based on micromark, but that won’t work as we’re in a table, and that expects -// content. -// -function tokenizeSetextUnderlineMini(effects, ok, nok) { - return start +/** + * @param {Find} find + * @returns {RegExp} + */ +function toExpression(find) { + return typeof find === 'string' ? new RegExp(escapeStringRegexp(find), 'g') : find +} - function start(code) { - // `-` - if (code !== 45) { - return nok(code) - } +/** + * @param {Replace} replace + * @returns {ReplaceFunction} + */ +function toFunction(replace) { + return typeof replace === 'function' ? replace : () => replace +} - effects.enter('setextUnderline'); - return sequence(code) - } +/** + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform + * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle + * @typedef {import('mdast-util-to-markdown/lib/types.js').Options} ToMarkdownExtension + * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction + * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject + * @typedef {import('mdast-util-find-and-replace').PhrasingContent} PhrasingContent + */ - function sequence(code) { - if (code === 45) { - effects.consume(code); - return sequence - } +const inConstruct = 'phrasing'; +const notInConstruct = ['autolink', 'link', 'image', 'label']; - return whitespace(code) +/** @type {FromMarkdownExtension} */ +const gfmAutolinkLiteralFromMarkdown = { + transforms: [transformGfmAutolinkLiterals], + enter: { + literalAutolink: enterLiteralAutolink, + literalAutolinkEmail: enterLiteralAutolinkValue, + literalAutolinkHttp: enterLiteralAutolinkValue, + literalAutolinkWww: enterLiteralAutolinkValue + }, + exit: { + literalAutolink: exitLiteralAutolink, + literalAutolinkEmail: exitLiteralAutolinkEmail, + literalAutolinkHttp: exitLiteralAutolinkHttp, + literalAutolinkWww: exitLiteralAutolinkWww } +}; - function whitespace(code) { - if (code === -2 || code === -1 || code === 32) { - effects.consume(code); - return whitespace - } - - if (code === null || code === -5 || code === -4 || code === -3) { - return ok(code) - } +/** @type {ToMarkdownExtension} */ +const gfmAutolinkLiteralToMarkdown = { + unsafe: [ + { + character: '@', + before: '[+\\-.\\w]', + after: '[\\-.\\w]', + inConstruct, + notInConstruct + }, + { + character: '.', + before: '[Ww]', + after: '[\\-.\\w]', + inConstruct, + notInConstruct + }, + {character: ':', before: '[ps]', after: '\\/', inConstruct, notInConstruct} + ] +}; - return nok(code) - } +/** @type {FromMarkdownHandle} */ +function enterLiteralAutolink(token) { + // @ts-expect-error: `null` is fine. + this.enter({type: 'link', title: null, url: '', children: []}, token); } -function tokenizeNextPrefixedOrBlank(effects, ok, nok) { - var size = 0; +/** @type {FromMarkdownHandle} */ +function enterLiteralAutolinkValue(token) { + this.config.enter.autolinkProtocol.call(this, token); +} - return start +/** @type {FromMarkdownHandle} */ +function exitLiteralAutolinkHttp(token) { + this.config.exit.autolinkProtocol.call(this, token); +} - function start(code) { - // This is a check, so we don’t care about tokens, but we open a bogus one - // so we’re valid. - effects.enter('check'); - // EOL. - effects.consume(code); - return whitespace - } +/** @type {FromMarkdownHandle} */ +function exitLiteralAutolinkWww(token) { + this.config.exit.data.call(this, token); + this.stack[this.stack.length - 1].url = 'http://' + this.sliceSerialize(token); +} - function whitespace(code) { - // VS or SP. - if (code === -1 || code === 32) { - effects.consume(code); - size++; - return size === 4 ? ok : whitespace - } +/** @type {FromMarkdownHandle} */ +function exitLiteralAutolinkEmail(token) { + this.config.exit.autolinkEmail.call(this, token); +} - // EOF or whitespace - if (code === null || code < 0) { - return ok(code) - } +/** @type {FromMarkdownHandle} */ +function exitLiteralAutolink(token) { + this.exit(token); +} - // Anything else. - return nok(code) - } +/** @type {FromMarkdownTransform} */ +function transformGfmAutolinkLiterals(tree) { + findAndReplace( + tree, + [ + [/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/i, findUrl], + [/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/, findEmail] + ], + {ignore: ['link', 'linkReference']} + ); } -var syntax$1 = { - flow: flow$3 -}; +/** + * @type {ReplaceFunction} + * @param {string} _ + * @param {string} protocol + * @param {string} domain + * @param {string} path + * @param {RegExpMatchObject} match + */ +// eslint-disable-next-line max-params +function findUrl(_, protocol, domain, path, match) { + let prefix = ''; -var micromarkExtensionGfmTable = syntax$1; + // Not an expected previous character. + if (!previous(match)) { + return false + } -var tasklistCheck = {tokenize: tokenizeTasklistCheck}; + // Treat `www` as part of the domain. + if (/^w/i.test(protocol)) { + domain = protocol + domain; + protocol = ''; + prefix = 'http://'; + } -var text$5 = {91: tasklistCheck}; + if (!isCorrectDomain(domain)) { + return false + } -function tokenizeTasklistCheck(effects, ok, nok) { - var self = this; + const parts = splitUrl(domain + path); - return open + if (!parts[0]) return false - function open(code) { - if ( - // Exit if not `[`. - code !== 91 || - // Exit if there’s stuff before. - self.previous !== null || - // Exit if not in the first content that is the first child of a list - // item. - !self._gfmTasklistFirstContentOfListItem - ) { - return nok(code) - } + /** @type {PhrasingContent} */ + // @ts-expect-error: `null` is fine. + const result = { + type: 'link', + title: null, + url: prefix + protocol + parts[0], + children: [{type: 'text', value: protocol + parts[0]}] + }; - effects.enter('taskListCheck'); - effects.enter('taskListCheckMarker'); - effects.consume(code); - effects.exit('taskListCheckMarker'); - return inside + if (parts[1]) { + return [result, {type: 'text', value: parts[1]}] } - function inside(code) { - // Tab or space. - if (code === -2 || code === 32) { - effects.enter('taskListCheckValueUnchecked'); - effects.consume(code); - effects.exit('taskListCheckValueUnchecked'); - return close - } + return result +} - // Upper- and lower `x`. - if (code === 88 || code === 120) { - effects.enter('taskListCheckValueChecked'); - effects.consume(code); - effects.exit('taskListCheckValueChecked'); - return close - } +/** + * @type {ReplaceFunction} + * @param {string} _ + * @param {string} atext + * @param {string} label + * @param {RegExpMatchObject} match + */ +function findEmail(_, atext, label, match) { + // Not an expected previous character. + if (!previous(match, true) || /[_-]$/.test(label)) { + return false + } - return nok(code) + return { + type: 'link', + // @ts-expect-error: `null` is fine. + title: null, + url: 'mailto:' + atext + '@' + label, + children: [{type: 'text', value: atext + '@' + label}] } +} - function close(code) { - // `]` - if (code === 93) { - effects.enter('taskListCheckMarker'); - effects.consume(code); - effects.exit('taskListCheckMarker'); - effects.exit('taskListCheck'); - return effects.check({tokenize: spaceThenNonSpace}, ok, nok) - } +/** + * @param {string} domain + * @returns {boolean} + */ +function isCorrectDomain(domain) { + const parts = domain.split('.'); - return nok(code) + if ( + parts.length < 2 || + (parts[parts.length - 1] && + (/_/.test(parts[parts.length - 1]) || + !/[a-zA-Z\d]/.test(parts[parts.length - 1]))) || + (parts[parts.length - 2] && + (/_/.test(parts[parts.length - 2]) || + !/[a-zA-Z\d]/.test(parts[parts.length - 2]))) + ) { + return false } + + return true } -function spaceThenNonSpace(effects, ok, nok) { - var self = this; +/** + * @param {string} url + * @returns {[string, string|undefined]} + */ +function splitUrl(url) { + const trailExec = /[!"&'),.:;<>?\]}]+$/.exec(url); + /** @type {number} */ + let closingParenIndex; + /** @type {number} */ + let openingParens; + /** @type {number} */ + let closingParens; + /** @type {string|undefined} */ + let trail; - return factorySpace(effects, after, 'whitespace') + if (trailExec) { + url = url.slice(0, trailExec.index); + trail = trailExec[0]; + closingParenIndex = trail.indexOf(')'); + openingParens = ccount(url, '('); + closingParens = ccount(url, ')'); - function after(code) { - return prefixSize_1(self.events, 'whitespace') && - code !== null && - !markdownLineEndingOrSpace_1(code) - ? ok(code) - : nok(code) + while (closingParenIndex !== -1 && openingParens > closingParens) { + url += trail.slice(0, closingParenIndex + 1); + trail = trail.slice(closingParenIndex + 1); + closingParenIndex = trail.indexOf(')'); + closingParens++; + } } + + return [url, trail] } -var syntax$2 = { - text: text$5 -}; +/** + * @param {RegExpMatchObject} match + * @param {boolean} [email=false] + * @returns {boolean} + */ +function previous(match, email) { + const code = match.input.charCodeAt(match.index - 1); -var micromarkExtensionGfmTaskListItem = syntax$2; + return ( + (match.index === 0 || + unicodeWhitespace(code) || + unicodePunctuation(code)) && + (!email || code !== 47) + ) +} -var syntax$3 = create$3; +/** + * @typedef {import('../types.js').Node} Node + * @typedef {import('../types.js').Parent} Parent + * @typedef {import('../types.js').SafeOptions} SafeOptions + * @typedef {import('../types.js').Context} Context + */ -function create$3(options) { - return combineExtensions_1([micromarkExtensionGfmAutolinkLiteral, micromarkExtensionGfmStrikethrough(options), micromarkExtensionGfmTable, micromarkExtensionGfmTaskListItem]) -} +/** + * @param {Parent} parent + * @param {Context} context + * @param {SafeOptions} safeOptions + * @returns {string} + */ +function containerPhrasing(parent, context, safeOptions) { + const children = parent.children || []; + /** @type {Array.} */ + const results = []; + let index = -1; + let before = safeOptions.before; -var micromarkExtensionGfm = syntax$3; + while (++index < children.length) { + const child = children[index]; + /** @type {string} */ + let after; -var enter = { - literalAutolink: enterLiteralAutolink, - literalAutolinkEmail: enterLiteralAutolinkValue, - literalAutolinkHttp: enterLiteralAutolinkValue, - literalAutolinkWww: enterLiteralAutolinkValue -}; -var exit$1 = { - literalAutolink: exitLiteralAutolink, - literalAutolinkEmail: exitLiteralAutolinkEmail, - literalAutolinkHttp: exitLiteralAutolinkHttp, - literalAutolinkWww: exitLiteralAutolinkWww -}; + if (index + 1 < children.length) { + // @ts-expect-error: hush, it’s actually a `zwitch`. + let handle = context.handle.handlers[children[index + 1].type]; + if (handle && handle.peek) handle = handle.peek; + after = handle + ? handle(children[index + 1], parent, context, { + before: '', + after: '' + }).charAt(0) + : ''; + } else { + after = safeOptions.after; + } -function enterLiteralAutolink(token) { - this.enter({type: 'link', title: null, url: '', children: []}, token); -} + // In some cases, html (text) can be found in phrasing right after an eol. + // When we’d serialize that, in most cases that would be seen as html + // (flow). + // As we can’t escape or so to prevent it from happening, we take a somewhat + // reasonable approach: replace that eol with a space. + // See: + if ( + results.length > 0 && + (before === '\r' || before === '\n') && + child.type === 'html' + ) { + results[results.length - 1] = results[results.length - 1].replace( + /(\r?\n|\r)$/, + ' ' + ); + before = ' '; + } -function enterLiteralAutolinkValue(token) { - this.config.enter.autolinkProtocol.call(this, token); -} + results.push(context.handle(child, parent, context, {before, after})); -function exitLiteralAutolinkHttp(token) { - this.config.exit.autolinkProtocol.call(this, token); -} + before = results[results.length - 1].slice(-1); + } -function exitLiteralAutolinkWww(token) { - this.config.exit.data.call(this, token); - this.stack[this.stack.length - 1].url = 'http://' + this.sliceSerialize(token); + return results.join('') } -function exitLiteralAutolinkEmail(token) { - this.config.exit.autolinkEmail.call(this, token); -} +/** + * @typedef {import('mdast').Delete} Delete + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle + * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension + * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle + */ -function exitLiteralAutolink(token) { - this.exit(token); -} +/** @type {FromMarkdownExtension} */ +const gfmStrikethroughFromMarkdown = { + canContainEols: ['delete'], + enter: {strikethrough: enterStrikethrough}, + exit: {strikethrough: exitStrikethrough} +}; -var fromMarkdown$1 = { - enter: enter, - exit: exit$1 +/** @type {ToMarkdownExtension} */ +const gfmStrikethroughToMarkdown = { + unsafe: [{character: '~', inConstruct: 'phrasing'}], + handlers: {delete: handleDelete} }; -var canContainEols = ['delete']; -var enter$1 = {strikethrough: enterStrikethrough}; -var exit$2 = {strikethrough: exitStrikethrough}; +handleDelete.peek = peekDelete; +/** @type {FromMarkdownHandle} */ function enterStrikethrough(token) { this.enter({type: 'delete', children: []}, token); } +/** @type {FromMarkdownHandle} */ function exitStrikethrough(token) { this.exit(token); } -var fromMarkdown$2 = { - canContainEols: canContainEols, - enter: enter$1, - exit: exit$2 -}; - -var enter$2 = { - table: enterTable, - tableData: enterCell, - tableHeader: enterCell, - tableRow: enterRow -}; -var exit_1 = { - codeText: exitCodeText, - table: exitTable, - tableData: exit$3, - tableHeader: exit$3, - tableRow: exit$3 -}; - -function enterTable(token) { - this.enter({type: 'table', align: token._align, children: []}, token); - this.setData('inTable', true); -} - -function exitTable(token) { - this.exit(token); - this.setData('inTable'); -} - -function enterRow(token) { - this.enter({type: 'tableRow', children: []}, token); +/** + * @type {ToMarkdownHandle} + * @param {Delete} node + */ +function handleDelete(node, _, context) { + const exit = context.enter('emphasis'); + const value = containerPhrasing(node, context, {before: '~', after: '~'}); + exit(); + return '~~' + value + '~~' } -function exit$3(token) { - this.exit(token); +/** @type {ToMarkdownHandle} */ +function peekDelete() { + return '~' } -function enterCell(token) { - this.enter({type: 'tableCell', children: []}, token); -} +/** + * @typedef {import('../types.js').Unsafe} Unsafe + */ -// Overwrite the default code text data handler to unescape escaped pipes when -// they are in tables. -function exitCodeText(token) { - var value = this.resume(); +/** + * @param {Unsafe} pattern + * @returns {RegExp} + */ +function patternCompile(pattern) { + if (!pattern._compiled) { + const before = + (pattern.atBreak ? '[\\r\\n][\\t ]*' : '') + + (pattern.before ? '(?:' + pattern.before + ')' : ''); - if (this.getData('inTable')) { - value = value.replace(/\\([\\|])/g, replace); + pattern._compiled = new RegExp( + (before ? '(' + before + ')' : '') + + (/[|\\{}()[\]^$+*?.-]/.test(pattern.character) ? '\\' : '') + + pattern.character + + (pattern.after ? '(?:' + pattern.after + ')' : ''), + 'g' + ); } - this.stack[this.stack.length - 1].value = value; - this.exit(token); -} - -function replace($0, $1) { - // Pipes work, backslashes don’t (but can’t escape pipes). - return $1 === '|' ? $1 : $0 + return pattern._compiled } -var fromMarkdown$3 = { - enter: enter$2, - exit: exit_1 -}; +/** + * @typedef {import('mdast').InlineCode} InlineCode + * @typedef {import('../types.js').Handle} Handle + */ -var exit$4 = { - taskListCheckValueChecked: exitCheck, - taskListCheckValueUnchecked: exitCheck, - paragraph: exitParagraphWithTaskListItem -}; +inlineCode.peek = inlineCodePeek; -function exitCheck(token) { - // We’re always in a paragraph, in a list item. - this.stack[this.stack.length - 2].checked = - token.type === 'taskListCheckValueChecked'; -} +/** + * @type {Handle} + * @param {InlineCode} node + */ +function inlineCode(node, _, context) { + let value = node.value || ''; + let sequence = '`'; + let index = -1; -function exitParagraphWithTaskListItem(token) { - var parent = this.stack[this.stack.length - 2]; - var node = this.stack[this.stack.length - 1]; - var siblings = parent.children; - var head = node.children[0]; - var index = -1; - var firstParaghraph; + // If there is a single grave accent on its own in the code, use a fence of + // two. + // If there are two in a row, use one. + while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) { + sequence += '`'; + } + // If this is not just spaces or eols (tabs don’t count), and either the + // first or last character are a space, eol, or tick, then pad with spaces. if ( - parent && - parent.type === 'listItem' && - typeof parent.checked === 'boolean' && - head && - head.type === 'text' + /[^ \r\n]/.test(value) && + ((/^[ \r\n]/.test(value) && /[ \r\n]$/.test(value)) || /^`|`$/.test(value)) ) { - while (++index < siblings.length) { - if (siblings[index].type === 'paragraph') { - firstParaghraph = siblings[index]; - break - } - } - - if (firstParaghraph === node) { - // Must start with a space or a tab. - head.value = head.value.slice(1); - - if (head.value.length === 0) { - node.children.shift(); - } else { - head.position.start.column++; - head.position.start.offset++; - node.position.start = Object.assign({}, head.position.start); - } - } + value = ' ' + value + ' '; } - this.exit(token); -} - -var fromMarkdown$4 = { - exit: exit$4 -}; - -var own$a = {}.hasOwnProperty; - -var fromMarkdown$5 = configure$4([ - fromMarkdown$1, - fromMarkdown$2, - fromMarkdown$3, - fromMarkdown$4 -]); - -function configure$4(extensions) { - var config = {canContainEols: []}; - var length = extensions.length; - var index = -1; - - while (++index < length) { - extension$3(config, extensions[index]); - } + // We have a potential problem: certain characters after eols could result in + // blocks being seen. + // For example, if someone injected the string `'\n# b'`, then that would + // result in an ATX heading. + // We can’t escape characters in `inlineCode`, but because eols are + // transformed to spaces when going from markdown to HTML anyway, we can swap + // them out. + while (++index < context.unsafe.length) { + const pattern = context.unsafe[index]; + const expression = patternCompile(pattern); + /** @type {RegExpExecArray|null} */ + let match; - return config -} + // Only look for `atBreak`s. + // Btw: note that `atBreak` patterns will always start the regex at LF or + // CR. + if (!pattern.atBreak) continue -function extension$3(config, extension) { - var key; - var left; - var right; + while ((match = expression.exec(value))) { + let position = match.index; - for (key in extension) { - left = own$a.call(config, key) ? config[key] : (config[key] = {}); - right = extension[key]; + // Support CRLF (patterns only look for one of the characters). + if ( + value.charCodeAt(position) === 10 /* `\n` */ && + value.charCodeAt(position - 1) === 13 /* `\r` */ + ) { + position--; + } - if (key === 'canContainEols') { - config[key] = [].concat(left, right); - } else { - Object.assign(left, right); + value = value.slice(0, position) + ' ' + value.slice(match.index + 1); } } -} - -var inConstruct = 'phrasing'; -var notInConstruct = ['autolink', 'link', 'image', 'label']; - -var unsafe$1 = [ - { - character: '@', - before: '[+\\-.\\w]', - after: '[\\-.\\w]', - inConstruct: inConstruct, - notInConstruct: notInConstruct - }, - { - character: '.', - before: '[Ww]', - after: '[\\-.\\w]', - inConstruct: inConstruct, - notInConstruct: notInConstruct - }, - { - character: ':', - before: '[ps]', - after: '\\/', - inConstruct: inConstruct, - notInConstruct: notInConstruct - } -]; - -var toMarkdown$1 = { - unsafe: unsafe$1 -}; - -var unsafe$2 = [{character: '~', inConstruct: 'phrasing'}]; -var handlers = {delete: handleDelete}; - -handleDelete.peek = peekDelete; -function handleDelete(node, _, context) { - var exit = context.enter('emphasis'); - var value = containerPhrasing(node, context, {before: '~', after: '~'}); - exit(); - return '~~' + value + '~~' + return sequence + value + sequence } -function peekDelete() { - return '~' +/** + * @type {Handle} + */ +function inlineCodePeek() { + return '`' } -var toMarkdown$2 = { - unsafe: unsafe$2, - handlers: handlers -}; - -var markdownTable_1 = markdownTable; - -var trailingWhitespace = / +$/; - -// Characters. -var space = ' '; -var lineFeed = '\n'; -var dash$1 = '-'; -var colon$1 = ':'; -var verticalBar = '|'; - -var x = 0; -var C = 67; -var L$1 = 76; -var R = 82; -var c$1 = 99; -var l$1 = 108; -var r = 114; +/** + * @typedef MarkdownTableOptions + * @property {string|null|Array.} [align] + * @property {boolean} [padding=true] + * @property {boolean} [delimiterStart=true] + * @property {boolean} [delimiterStart=true] + * @property {boolean} [delimiterEnd=true] + * @property {boolean} [alignDelimiters=true] + * @property {(value: string) => number} [stringLength] + */ -// Create a table from a matrix of strings. +/** + * Create a table from a matrix of strings. + * + * @param {Array.>} table + * @param {MarkdownTableOptions} [options] + * @returns {string} + */ function markdownTable(table, options) { - var settings = options || {}; - var padding = settings.padding !== false; - var start = settings.delimiterStart !== false; - var end = settings.delimiterEnd !== false; - var align = (settings.align || []).concat(); - var alignDelimiters = settings.alignDelimiters !== false; - var alignments = []; - var stringLength = settings.stringLength || defaultStringLength; - var rowIndex = -1; - var rowLength = table.length; - var cellMatrix = []; - var sizeMatrix = []; - var row = []; - var sizes = []; - var longestCellByColumn = []; - var mostCellsPerRow = 0; - var cells; - var columnIndex; - var columnLength; - var largest; - var size; - var cell; - var lines; - var line; - var before; - var after; - var code; + const settings = options || {}; + const align = (settings.align || []).concat(); + const stringLength = settings.stringLength || defaultStringLength; + /** @type {number[]} Character codes as symbols for alignment per column. */ + const alignments = []; + let rowIndex = -1; + /** @type {string[][]} Cells per row. */ + const cellMatrix = []; + /** @type {number[][]} Sizes of each cell per row. */ + const sizeMatrix = []; + /** @type {number[]} */ + const longestCellByColumn = []; + let mostCellsPerRow = 0; + /** @type {number} */ + let columnIndex; + /** @type {string[]} Cells of current row */ + let row; + /** @type {number[]} Sizes of current row */ + let sizes; + /** @type {number} Sizes of current cell */ + let size; + /** @type {string} Current cell */ + let cell; + /** @type {string[]} Chunks of current line. */ + let line; + /** @type {string} */ + let before; + /** @type {string} */ + let after; + /** @type {number} */ + let code; // This is a superfluous loop if we don’t align delimiters, but otherwise we’d // do superfluous work when aligning, so optimize for aligning. - while (++rowIndex < rowLength) { - cells = table[rowIndex]; + while (++rowIndex < table.length) { columnIndex = -1; - columnLength = cells.length; row = []; sizes = []; - if (columnLength > mostCellsPerRow) { - mostCellsPerRow = columnLength; + if (table[rowIndex].length > mostCellsPerRow) { + mostCellsPerRow = table[rowIndex].length; } - while (++columnIndex < columnLength) { - cell = serialize(cells[columnIndex]); + while (++columnIndex < table[rowIndex].length) { + cell = serialize(table[rowIndex][columnIndex]); - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { size = stringLength(cell); sizes[columnIndex] = size; - largest = longestCellByColumn[columnIndex]; - - if (largest === undefined || size > largest) { + if ( + longestCellByColumn[columnIndex] === undefined || + size > longestCellByColumn[columnIndex] + ) { longestCellByColumn[columnIndex] = size; } } @@ -76543,51 +84725,50 @@ function markdownTable(table, options) { // Figure out which alignments to use. columnIndex = -1; - columnLength = mostCellsPerRow; if (typeof align === 'object' && 'length' in align) { - while (++columnIndex < columnLength) { + while (++columnIndex < mostCellsPerRow) { alignments[columnIndex] = toAlignment(align[columnIndex]); } } else { code = toAlignment(align); - while (++columnIndex < columnLength) { + while (++columnIndex < mostCellsPerRow) { alignments[columnIndex] = code; } } // Inject the alignment row. columnIndex = -1; - columnLength = mostCellsPerRow; row = []; sizes = []; - while (++columnIndex < columnLength) { + while (++columnIndex < mostCellsPerRow) { code = alignments[columnIndex]; before = ''; after = ''; - if (code === l$1) { - before = colon$1; - } else if (code === r) { - after = colon$1; - } else if (code === c$1) { - before = colon$1; - after = colon$1; + if (code === 99 /* `c` */) { + before = ':'; + after = ':'; + } else if (code === 108 /* `l` */) { + before = ':'; + } else if (code === 114 /* `r` */) { + after = ':'; } // There *must* be at least one hyphen-minus in each alignment cell. - size = alignDelimiters - ? Math.max( - 1, - longestCellByColumn[columnIndex] - before.length - after.length - ) - : 1; + size = + settings.alignDelimiters === false + ? 1 + : Math.max( + 1, + longestCellByColumn[columnIndex] - before.length - after.length + ); - cell = before + repeatString(dash$1, size) + after; + cell = before + '-'.repeat(size) + after; - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { size = before.length + size + after.length; if (size > longestCellByColumn[columnIndex]) { @@ -76605,113 +84786,218 @@ function markdownTable(table, options) { sizeMatrix.splice(1, 0, sizes); rowIndex = -1; - rowLength = cellMatrix.length; - lines = []; + /** @type {string[]} */ + const lines = []; - while (++rowIndex < rowLength) { + while (++rowIndex < cellMatrix.length) { row = cellMatrix[rowIndex]; sizes = sizeMatrix[rowIndex]; columnIndex = -1; - columnLength = mostCellsPerRow; line = []; - while (++columnIndex < columnLength) { + while (++columnIndex < mostCellsPerRow) { cell = row[columnIndex] || ''; before = ''; after = ''; - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { size = longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0); code = alignments[columnIndex]; - if (code === r) { - before = repeatString(space, size); - } else if (code === c$1) { - if (size % 2 === 0) { - before = repeatString(space, size / 2); - after = before; + if (code === 114 /* `r` */) { + before = ' '.repeat(size); + } else if (code === 99 /* `c` */) { + if (size % 2) { + before = ' '.repeat(size / 2 + 0.5); + after = ' '.repeat(size / 2 - 0.5); } else { - before = repeatString(space, size / 2 + 0.5); - after = repeatString(space, size / 2 - 0.5); + before = ' '.repeat(size / 2); + after = before; } } else { - after = repeatString(space, size); + after = ' '.repeat(size); } } - if (start === true && columnIndex === 0) { - line.push(verticalBar); + if (settings.delimiterStart !== false && !columnIndex) { + line.push('|'); } if ( - padding === true && + settings.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is // empty: there will be a closing space. - !(alignDelimiters === false && cell === '') && - (start === true || columnIndex !== 0) + !(settings.alignDelimiters === false && cell === '') && + (settings.delimiterStart !== false || columnIndex) ) { - line.push(space); + line.push(' '); } - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { line.push(before); } line.push(cell); - if (alignDelimiters === true) { + if (settings.alignDelimiters !== false) { line.push(after); } - if (padding === true) { - line.push(space); + if (settings.padding !== false) { + line.push(' '); } - if (end === true || columnIndex !== columnLength - 1) { - line.push(verticalBar); + if ( + settings.delimiterEnd !== false || + columnIndex !== mostCellsPerRow - 1 + ) { + line.push('|'); } } - line = line.join(''); - - if (end === false) { - line = line.replace(trailingWhitespace, ''); - } - - lines.push(line); + lines.push( + settings.delimiterEnd === false + ? line.join('').replace(/ +$/, '') + : line.join('') + ); } - return lines.join(lineFeed) + return lines.join('\n') } +/** + * @param {string|null|undefined} [value] + * @returns {string} + */ function serialize(value) { return value === null || value === undefined ? '' : String(value) } +/** + * @param {string} value + * @returns {number} + */ function defaultStringLength(value) { return value.length } +/** + * @param {string|null|undefined} value + * @returns {number} + */ function toAlignment(value) { - var code = typeof value === 'string' ? value.charCodeAt(0) : x; + const code = typeof value === 'string' ? value.charCodeAt(0) : 0; + + return code === 67 /* `C` */ || code === 99 /* `c` */ + ? 99 /* `c` */ + : code === 76 /* `L` */ || code === 108 /* `l` */ + ? 108 /* `l` */ + : code === 82 /* `R` */ || code === 114 /* `r` */ + ? 114 /* `r` */ + : 0 +} + +/** + * @typedef {import('mdast').AlignType} AlignType + * @typedef {import('mdast').Table} Table + * @typedef {import('mdast').TableRow} TableRow + * @typedef {import('mdast').TableCell} TableCell + * @typedef {import('mdast').InlineCode} InlineCode + * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle + * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension + * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle + * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext + * + * @typedef Options + * @property {boolean} [tableCellPadding=true] + * @property {boolean} [tablePipeAlign=true] + * @property {MarkdownTableOptions['stringLength']} [stringLength] + */ + +/** @type {FromMarkdownExtension} */ +const gfmTableFromMarkdown = { + enter: { + table: enterTable, + tableData: enterCell, + tableHeader: enterCell, + tableRow: enterRow + }, + exit: { + codeText: exitCodeText, + table: exitTable, + tableData: exit, + tableHeader: exit, + tableRow: exit + } +}; + +/** @type {FromMarkdownHandle} */ +function enterTable(token) { + /** @type {AlignType[]} */ + // @ts-expect-error: `align` is custom. + const align = token._align; + this.enter({type: 'table', align, children: []}, token); + this.setData('inTable', true); +} - return code === L$1 || code === l$1 - ? l$1 - : code === R || code === r - ? r - : code === C || code === c$1 - ? c$1 - : x +/** @type {FromMarkdownHandle} */ +function exitTable(token) { + this.exit(token); + this.setData('inTable'); } -var toMarkdown_1 = toMarkdown$3; +/** @type {FromMarkdownHandle} */ +function enterRow(token) { + this.enter({type: 'tableRow', children: []}, token); +} -function toMarkdown$3(options) { - var settings = options || {}; - var padding = settings.tableCellPadding; - var alignDelimiters = settings.tablePipeAlign; - var stringLength = settings.stringLength; - var around = padding ? ' ' : '|'; +/** @type {FromMarkdownHandle} */ +function exit(token) { + this.exit(token); +} + +/** @type {FromMarkdownHandle} */ +function enterCell(token) { + this.enter({type: 'tableCell', children: []}, token); +} + +// Overwrite the default code text data handler to unescape escaped pipes when +// they are in tables. +/** @type {FromMarkdownHandle} */ +function exitCodeText(token) { + let value = this.resume(); + + if (this.getData('inTable')) { + value = value.replace(/\\([\\|])/g, replace); + } + + const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1]); + node.value = value; + this.exit(token); +} + +/** + * @param {string} $0 + * @param {string} $1 + * @returns {string} + */ +function replace($0, $1) { + // Pipes work, backslashes don’t (but can’t escape pipes). + return $1 === '|' ? $1 : $0 +} + +/** + * @param {Options} [options] + * @returns {ToMarkdownExtension} + */ +function gfmTableToMarkdown(options) { + const settings = options || {}; + const padding = settings.tableCellPadding; + const alignDelimiters = settings.tablePipeAlign; + const stringLength = settings.stringLength; + const around = padding ? ' ' : '|'; return { unsafe: [ @@ -76740,44 +85026,71 @@ function toMarkdown$3(options) { } } + /** + * @type {ToMarkdownHandle} + * @param {Table} node + */ function handleTable(node, _, context) { + // @ts-expect-error: fixed in `markdown-table@3.0.1`. return serializeData(handleTableAsData(node, context), node.align) } - // This function isn’t really used normally, because we handle rows at the - // table level. - // But, if someone passes in a table row, this ensures we make somewhat sense. + /** + * This function isn’t really used normally, because we handle rows at the + * table level. + * But, if someone passes in a table row, this ensures we make somewhat sense. + * + * @type {ToMarkdownHandle} + * @param {TableRow} node + */ function handleTableRow(node, _, context) { - var row = handleTableRowAsData(node, context); + const row = handleTableRowAsData(node, context); // `markdown-table` will always add an align row - var value = serializeData([row]); + const value = serializeData([row]); return value.slice(0, value.indexOf('\n')) } + /** + * @type {ToMarkdownHandle} + * @param {TableCell} node + */ function handleTableCell(node, _, context) { - var exit = context.enter('tableCell'); - var value = containerPhrasing(node, context, {before: around, after: around}); + const exit = context.enter('tableCell'); + const subexit = context.enter('phrasing'); + const value = containerPhrasing(node, context, { + before: around, + after: around + }); + subexit(); exit(); return value } + /** + * @param {Array.>} matrix + * @param {Array.} [align] + */ function serializeData(matrix, align) { - return markdownTable_1(matrix, { - align: align, - alignDelimiters: alignDelimiters, - padding: padding, - stringLength: stringLength + return markdownTable(matrix, { + align, + alignDelimiters, + padding, + stringLength }) } + /** + * @param {Table} node + * @param {ToMarkdownContext} context + */ function handleTableAsData(node, context) { - var children = node.children; - var index = -1; - var length = children.length; - var result = []; - var subexit = context.enter('table'); + const children = node.children; + let index = -1; + /** @type {Array.>} */ + const result = []; + const subexit = context.enter('table'); - while (++index < length) { + while (++index < children.length) { result[index] = handleTableRowAsData(children[index], context); } @@ -76786,14 +85099,18 @@ function toMarkdown$3(options) { return result } + /** + * @param {TableRow} node + * @param {ToMarkdownContext} context + */ function handleTableRowAsData(node, context) { - var children = node.children; - var index = -1; - var length = children.length; - var result = []; - var subexit = context.enter('tableRow'); + const children = node.children; + let index = -1; + /** @type {Array.} */ + const result = []; + const subexit = context.enter('tableRow'); - while (++index < length) { + while (++index < children.length) { result[index] = handleTableCell(children[index], node, context); } @@ -76802,10 +85119,14 @@ function toMarkdown$3(options) { return result } + /** + * @type {ToMarkdownHandle} + * @param {InlineCode} node + */ function inlineCodeWithTable(node, parent, context) { - var value = inlineCode_1(node); + let value = inlineCode(node, parent, context); - if (context.stack.indexOf('tableCell') !== -1) { + if (context.stack.includes('tableCell')) { value = value.replace(/\|/g, '\\$&'); } @@ -76813,98 +85134,404 @@ function toMarkdown$3(options) { } } -var unsafe$3 = [{atBreak: true, character: '-', after: '[:|-]'}]; +/** + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options + */ -var handlers$1 = { - listItem: listItemWithTaskListItem -}; +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkBullet(context) { + const marker = context.options.bullet || '*'; -function listItemWithTaskListItem(node, parent, context) { - var value = listItem_1(node, parent, context); - var head = node.children[0]; + if (marker !== '*' && marker !== '+' && marker !== '-') { + throw new Error( + 'Cannot serialize items with `' + + marker + + '` for `options.bullet`, expected `*`, `+`, or `-`' + ) + } - if (typeof node.checked === 'boolean' && head && head.type === 'paragraph') { - value = value.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/, check); + return marker +} + +/** + * @typedef {import('../types.js').Context} Context + * @typedef {import('../types.js').Options} Options + */ + +/** + * @param {Context} context + * @returns {Exclude} + */ +function checkListItemIndent(context) { + const style = context.options.listItemIndent || 'tab'; + + // To do: remove in a major. + // @ts-expect-error: deprecated. + if (style === 1 || style === '1') { + return 'one' } - return value + if (style !== 'tab' && style !== 'one' && style !== 'mixed') { + throw new Error( + 'Cannot serialize items with `' + + style + + '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`' + ) + } - function check($0) { - return $0 + '[' + (node.checked ? 'x' : ' ') + '] ' + return style +} + +/** + * @typedef {import('../types.js').Node} Node + * @typedef {import('../types.js').Parent} Parent + * @typedef {import('../types.js').Join} Join + * @typedef {import('../types.js').Context} Context + */ + +/** + * @param {Parent} parent + * @param {Context} context + * @returns {string} + */ +function containerFlow(parent, context) { + const children = parent.children || []; + /** @type {Array.} */ + const results = []; + let index = -1; + + while (++index < children.length) { + const child = children[index]; + + results.push( + context.handle(child, parent, context, {before: '\n', after: '\n'}) + ); + + if (index < children.length - 1) { + results.push(between(child, children[index + 1])); + } + } + + return results.join('') + + /** + * @param {Node} left + * @param {Node} right + * @returns {string} + */ + function between(left, right) { + let index = context.join.length; + /** @type {ReturnType} */ + let result; + + while (index--) { + result = context.join[index](left, right, parent, context); + + if (result === true || result === 1) { + break + } + + if (typeof result === 'number') { + return '\n'.repeat(1 + result) + } + + if (result === false) { + return '\n\n\n\n' + } + } + + return '\n\n' } } -var toMarkdown$4 = { - unsafe: unsafe$3, - handlers: handlers$1 -}; +/** + * @callback Map + * @param {string} value + * @param {number} line + * @param {boolean} blank + * @returns {string} + */ -var toMarkdown_1$1 = toMarkdown$5; +const eol = /\r?\n|\r/g; -function toMarkdown$5(options) { - var config = configure_1$2( - {handlers: {}, join: [], unsafe: [], options: {}}, - { - extensions: [toMarkdown$1, toMarkdown$2, toMarkdown_1(options), toMarkdown$4] +/** + * @param {string} value + * @param {Map} map + * @returns {string} + */ +function indentLines(value, map) { + /** @type {Array.} */ + const result = []; + let start = 0; + let line = 0; + /** @type {RegExpExecArray|null} */ + let match; + + while ((match = eol.exec(value))) { + one(value.slice(start, match.index)); + result.push(match[0]); + start = match.index + match[0].length; + line++; + } + + one(value.slice(start)); + + return result.join('') + + /** + * @param {string} value + */ + function one(value) { + result.push(map(value, line, !value)); + } +} + +/** + * @typedef {import('mdast').ListItem} ListItem + * @typedef {import('mdast').List} List + * @typedef {import('../util/indent-lines.js').Map} Map + * @typedef {import('../types.js').Options} Options + * @typedef {import('../types.js').Handle} Handle + */ + +/** + * @type {Handle} + * @param {ListItem} node + */ +function listItem(node, parent, context) { + const listItemIndent = checkListItemIndent(context); + /** @type {string} */ + let bullet = checkBullet(context); + + if (parent && parent.type === 'list' && parent.ordered) { + bullet = + (typeof parent.start === 'number' && parent.start > -1 + ? parent.start + : 1) + + (context.options.incrementListMarker === false + ? 0 + : parent.children.indexOf(node)) + + '.'; + } + + let size = bullet.length + 1; + + if ( + listItemIndent === 'tab' || + (listItemIndent === 'mixed' && + ((parent && 'spread' in parent && parent.spread) || node.spread)) + ) { + size = Math.ceil(size / 4) * 4; + } + + const exit = context.enter('listItem'); + const value = indentLines(containerFlow(node, context), map); + exit(); + + return value + + /** @type {Map} */ + function map(line, index, blank) { + if (index) { + return (blank ? '' : ' '.repeat(size)) + line } - ); - return Object.assign(config.options, { - handlers: config.handlers, - join: config.join, - unsafe: config.unsafe - }) + return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line + } } -var warningIssued; +/** + * @typedef {import('mdast').ListItem} ListItem + * @typedef {import('mdast').Paragraph} Paragraph + * @typedef {import('mdast').BlockContent} BlockContent + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle + * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension + * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle + */ + +/** @type {FromMarkdownExtension} */ +const gfmTaskListItemFromMarkdown = { + exit: { + taskListCheckValueChecked: exitCheck, + taskListCheckValueUnchecked: exitCheck, + paragraph: exitParagraphWithTaskListItem + } +}; + +/** @type {ToMarkdownExtension} */ +const gfmTaskListItemToMarkdown = { + unsafe: [{atBreak: true, character: '-', after: '[:|-]'}], + handlers: {listItem: listItemWithTaskListItem} +}; -var remarkGfm = gfm; +/** @type {FromMarkdownHandle} */ +function exitCheck(token) { + // We’re always in a paragraph, in a list item. + this.stack[this.stack.length - 2].checked = + token.type === 'taskListCheckValueChecked'; +} -function gfm(options) { - var data = this.data(); +/** @type {FromMarkdownHandle} */ +function exitParagraphWithTaskListItem(token) { + const parent = this.stack[this.stack.length - 2]; + /** @type {Paragraph} */ + // @ts-expect-error: must be true. + const node = this.stack[this.stack.length - 1]; + /** @type {BlockContent[]} */ + // @ts-expect-error: check whether `parent` is a `listItem` later. + const siblings = parent.children; + const head = node.children[0]; + let index = -1; + /** @type {Paragraph|undefined} */ + let firstParaghraph; - /* istanbul ignore next - old remark. */ if ( - !warningIssued && - ((this.Parser && - this.Parser.prototype && - this.Parser.prototype.blockTokenizers) || - (this.Compiler && - this.Compiler.prototype && - this.Compiler.prototype.visitors)) + parent && + parent.type === 'listItem' && + typeof parent.checked === 'boolean' && + head && + head.type === 'text' ) { - warningIssued = true; - console.warn( - '[remark-gfm] Warning: please upgrade to remark 13 to use this plugin' - ); + while (++index < siblings.length) { + const sibling = siblings[index]; + if (sibling.type === 'paragraph') { + firstParaghraph = sibling; + break + } + } + + if (firstParaghraph === node) { + // Must start with a space or a tab. + head.value = head.value.slice(1); + + if (head.value.length === 0) { + node.children.shift(); + } else { + // @ts-expect-error: must be true. + head.position.start.column++; + // @ts-expect-error: must be true. + head.position.start.offset++; + // @ts-expect-error: must be true. + node.position.start = Object.assign({}, head.position.start); + } + } } - add('micromarkExtensions', micromarkExtensionGfm(options)); - add('fromMarkdownExtensions', fromMarkdown$5); - add('toMarkdownExtensions', toMarkdown_1$1(options)); + this.exit(token); +} - function add(field, value) { - /* istanbul ignore if - other extensions. */ - if (data[field]) data[field].push(value); - else data[field] = [value]; +/** + * @type {ToMarkdownHandle} + * @param {ListItem} node + */ +function listItemWithTaskListItem(node, parent, context) { + const head = node.children[0]; + let value = listItem(node, parent, context); + + if (typeof node.checked === 'boolean' && head && head.type === 'paragraph') { + value = value.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/, check); + } + + return value + + /** + * @param {string} $0 + * @returns {string} + */ + function check($0) { + return $0 + '[' + (node.checked ? 'x' : ' ') + '] ' } } -var lintNode = /*@__PURE__*/getAugmentedNamespace(remarkPresetLintNode$1); +/** + * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension + * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension + * + * @typedef {import('mdast-util-gfm-table').Options} Options + */ + +/** + * @type {Array.} + */ +const gfmFromMarkdown = [ + gfmAutolinkLiteralFromMarkdown, + gfmStrikethroughFromMarkdown, + gfmTableFromMarkdown, + gfmTaskListItemFromMarkdown +]; -// To aid in future maintenance, this layout closely matches remark-cli/cli.js. -// https://github.com/remarkjs/remark/blob/master/packages/remark-cli/cli.js +/** + * @param {Options} [options] + * @returns {ToMarkdownExtension} + */ +function gfmToMarkdown(options) { + return { + extensions: [ + gfmAutolinkLiteralToMarkdown, + gfmStrikethroughToMarkdown, + gfmTableToMarkdown(options), + gfmTaskListItemToMarkdown + ] + } +} + +/** + * @typedef {import('mdast').Root} Root + * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options + */ +/** + * Plugin to support GitHub Flavored Markdown (GFM). + * + * @type {import('unified').Plugin<[Options?]|void[], Root>} + */ +function remarkGfm(options = {}) { + const data = this.data(); + add('micromarkExtensions', gfm$1(options)); + add('fromMarkdownExtensions', gfmFromMarkdown); + add('toMarkdownExtensions', gfmToMarkdown(options)); + /** + * @param {string} field + * @param {unknown} value + */ + function add(field, value) { + const list = /** @type {unknown[]} */ ( + // Other extensions + /* c8 ignore next 2 */ + data[field] ? data[field] : (data[field] = []) + ); + list.push(value); + } +} +var remarkGfm$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + 'default': remarkGfm +}); +var require$$6 = /*@__PURE__*/getAugmentedNamespace(remarkGfm$1); +// To aid in future maintenance, this layout closely matches remark-cli/cli.js. +// https://github.com/remarkjs/remark/blob/master/packages/remark-cli/cli.js +const start = unifiedArgs; +const extensions = markdownExtensions; +const processor = remark; +const proc = require$$3; +const cli = require$$4; +const lintNode = require$$5; +const gfm = require$$6; -unifiedArgs({ - processor: remark().use(remarkGfm).use(lintNode), +start({ + processor: processor().use(gfm).use(lintNode), name: proc.name, description: cli.description, version: [ @@ -76916,12 +85543,8 @@ unifiedArgs({ packageField: proc.name + 'Config', rcName: '.' + proc.name + 'rc', ignoreName: '.' + proc.name + 'ignore', - extensions: markdownExtensions, + extensions: extensions, detectConfig: false, }); -var cliEntry = { - -}; - module.exports = cliEntry; diff --git a/tools/node-lint-md-cli-rollup/package-lock.json b/tools/node-lint-md-cli-rollup/package-lock.json index d402d31acd..38dc079381 100644 --- a/tools/node-lint-md-cli-rollup/package-lock.json +++ b/tools/node-lint-md-cli-rollup/package-lock.json @@ -10,40 +10,48 @@ "dependencies": { "markdown-extensions": "^1.1.1", "remark": "^13.0.0", - "remark-gfm": "^1.0.0", - "remark-lint": "^8.0.0", + "remark-gfm": "^2.0.0", "remark-preset-lint-node": "^3.0.0", "unified-args": "^8.1.0" }, "devDependencies": { - "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.0.1", - "rollup": "^2.36.1", + "@rollup/plugin-node-resolve": "^13.0.4", + "rollup": "^2.52.7", "shx": "^0.3.3" } }, "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dependencies": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/highlight/node_modules/ansi-styles": { @@ -111,9 +119,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.0.0.tgz", - "integrity": "sha512-/omBIJG1nHQc+bgkYDuLpb/V08QyutP9amOrJRUSlYJZP+b/68gM//D8sxJe3Yry2QnYIr3QjR3x4AlxJEN3GA==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz", + "integrity": "sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -128,7 +136,7 @@ "node": ">= 8.0.0" }, "peerDependencies": { - "rollup": "^2.30.0" + "rollup": "^2.38.3" } }, "node_modules/@rollup/plugin-json": { @@ -144,9 +152,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.1.tgz", - "integrity": "sha512-ltlsj/4Bhwwhb+Nb5xCz/6vieuEj2/BAkkqVIKmZwC7pIdl8srmgmglE4S0jFlZa32K4qvdQ6NHdmpRKD/LwoQ==", + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz", + "integrity": "sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -160,7 +168,7 @@ "node": ">= 10.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "rollup": "^2.42.0" } }, "node_modules/@rollup/pluginutils": { @@ -209,9 +217,9 @@ } }, "node_modules/@types/node": { - "version": "14.14.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", - "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", + "integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==", "dev": true }, "node_modules/@types/parse5": { @@ -256,9 +264,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -268,17 +276,14 @@ } }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", + "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -290,9 +295,9 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "engines": { "node": ">=8" } @@ -318,9 +323,9 @@ } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/builtin-modules": { "version": "3.2.0", @@ -364,9 +369,9 @@ } }, "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", + "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -382,54 +387,41 @@ } }, "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "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==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", + "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/chokidar": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", - "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dependencies": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chokidar/node_modules/fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "fsevents": "~2.3.2" } }, "node_modules/co": { @@ -488,9 +480,9 @@ } }, "node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { "ms": "2.1.2" }, @@ -634,11 +626,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "deprecated": "\"Please update to latest v2.3 or v2.2\"", - "dev": true, + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "hasInstallScript": true, "optional": true, "os": [ @@ -723,33 +713,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/hast-util-from-parse5/node_modules/vfile-location": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", @@ -763,19 +726,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-from-parse5/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/hast-util-is-element": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz", @@ -902,21 +852,21 @@ } }, "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", + "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "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==", "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" }, "funding": { "type": "github", @@ -974,9 +924,9 @@ } }, "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", + "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1015,9 +965,9 @@ } }, "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", + "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1038,11 +988,14 @@ } }, "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", + "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-reference": { @@ -1060,12 +1013,11 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -1077,9 +1029,9 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dependencies": { "minimist": "^1.2.5" }, @@ -1131,9 +1083,9 @@ } }, "node_modules/longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", + "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1168,134 +1120,145 @@ } }, "node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "dependencies": { - "repeat-string": "^1.0.0" - }, + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", + "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdast-comment-marker": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz", - "integrity": "sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz", - "integrity": "sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw==", + "node_modules/mdast-util-find-and-replace": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.1.0.tgz", + "integrity": "sha512-1w1jbqAd13oU78QPBf5223+xB+37ecNtQ1JElq2feWols5oEYAl+SgNDnOZipe7NfLemoEt362yUS15/wip4mw==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.1.tgz", - "integrity": "sha512-oE1W1zSXU2L2LHg91V22HC3Z1fbsOZTBYUQq+kpM29f9297TbRm0C1l3bQ88RREl0WaUQaB49G7trvwy5utUKQ==", - "dependencies": { - "mdast-util-gfm-autolink-literal": "^0.1.0", - "mdast-util-gfm-strikethrough": "^0.2.0", - "mdast-util-gfm-table": "^0.1.0", - "mdast-util-gfm-task-list-item": "^0.1.0", - "mdast-util-to-markdown": "^0.6.1" + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.2.tgz", - "integrity": "sha512-WFeIrcNNsfBety0gyWuiBIPing9UkVcl/m2iZOyW1uHEH2evjFocet2h77M24ub0WyZ4ucnQn/jWhO5Ozl6j4g==", + "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", - "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", + "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", "dependencies": { - "mdast-util-to-markdown": "^0.6.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-table": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", - "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", "dependencies": { - "markdown-table": "^2.0.0", - "mdast-util-to-markdown": "~0.6.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", - "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", - "dependencies": { - "mdast-util-to-markdown": "~0.6.0" - }, + "node_modules/mdast-util-from-markdown/node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdast-util-heading-style": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz", - "integrity": "sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw==", - "dependencies": { - "@types/mdast": "^3.0.0" - }, + "node_modules/mdast-util-from-markdown/node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdast-util-to-markdown": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.2.tgz", - "integrity": "sha512-iRczns6WMvu0hUw02LXsPDJshBIwtUPbvHBWo19IQeU0YqmzlA8Pd30U8V7uiI0VPkxzS7A/NXBXH6u+HS87Zg==", + "node_modules/mdast-util-from-markdown/node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dependencies": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/mdast-util-to-string": { + "node_modules/mdast-util-from-markdown/node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", @@ -1304,14 +1267,149 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/micromark": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.2.tgz", - "integrity": "sha512-IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" + "node_modules/mdast-util-from-markdown/node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-1.0.0.tgz", + "integrity": "sha512-JY4qImsTqivQ0Gl3qvdaizCpomFaNrHnjEhNjNNKeNEA5jZHAJDYu1+yO4V9jn4/ti8GrKdAScaT4F71knoxsA==", + "dependencies": { + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.0.tgz", + "integrity": "sha512-NaGypnNJop+hybP/PLnMVV5aN14VFda31DU+j8qsQdPR8m8AENuCX959hXaCiwVeUem33O6zY+JTt0sH1Kj7ng==", + "dependencies": { + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", + "dependencies": { + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", + "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "dependencies": { + "markdown-table": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", + "dependencies": { + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-heading-style": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz", + "integrity": "sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw==", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.1.1.tgz", + "integrity": "sha512-4puev/CxuxVdlsx5lVmuzgdqfjkkJJLS1Zm/MnejQ8I7BLeeBlbkwp6WOGJypEcN8g56LbVbhNmn84MvvcAvSQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "parse-entities": "^3.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", @@ -1324,16 +1422,17 @@ } }, "node_modules/micromark-extension-gfm": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.2.tgz", - "integrity": "sha512-ToQEpLkRgg7Tp8D3GM/SjZFPV0cCwWNxZmoEVIOQivOswRtPg7gg2WlCrtHhUWFNX+DgDjbq0iLOPGp4Y15oug==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-1.0.0.tgz", + "integrity": "sha512-OjqbQPL1Vec/4l5hnC8WnMNmWwgrT9JvzR2udqIGrGKecZsdwY9GAWZ5482CuD12SXuHNj8aS8epni6ip0Pwog==", "dependencies": { - "micromark": "~2.11.0", - "micromark-extension-gfm-autolink-literal": "~0.5.0", - "micromark-extension-gfm-strikethrough": "~0.6.0", - "micromark-extension-gfm-table": "~0.4.0", - "micromark-extension-gfm-tagfilter": "~0.3.0", - "micromark-extension-gfm-task-list-item": "~0.3.0" + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" }, "funding": { "type": "opencollective", @@ -1341,11 +1440,14 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.4.tgz", - "integrity": "sha512-471VKd4k3SiX7vx9fC+IYeGQL0RnxwBBXeEc5WConb7naJDG5m16guA+VoFzyXchrvmU08t0dUWWPZ0mkJSXVw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz", + "integrity": "sha512-t+K0aPK32mXypVTEKV+WRfoT/Rb7MERDgHZVRr56NXpyQQhgMk72QnK4NljYUlrgbuesH+MxiPQwThzqRDIwvA==", "dependencies": { - "micromark": "~2.11.0" + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" }, "funding": { "type": "opencollective", @@ -1353,11 +1455,15 @@ } }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.3.tgz", - "integrity": "sha512-MKMoP9x2dsr1aeX46ibBwVf4Q6nJsi5aaUFTOMOID5VOLSxwl4CrqUV4OGFQd6AqhtzBJAxaV+N2trlTBtZDNQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-5PhVJVK8zRsrc+A715NBPMY5iOQwtkMfL/8XURAPeU5fPC0S5dm4qjpoA6fGy4B9MHm+6WNs3xZDxF1ZGTtGDw==", "dependencies": { - "micromark": "~2.11.0" + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" }, "funding": { "type": "opencollective", @@ -1365,11 +1471,14 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.2.tgz", - "integrity": "sha512-AAzmj85XO1ydHYX0Lz52HGhcH2sZLm2AVvkwzELXWgZF6vGdq5yZ3CTByFRsqNUPyQBSIYFKLDAtc6KlnO42aw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.0.tgz", + "integrity": "sha512-OATRuHDgEAT/aaJJRSdU12V+s01kNSnJ0jumdfLq5mPy0F5DkR3zbTSFLH4tjVYM0/kEG6umxIhHY62mFe4z5Q==", "dependencies": { - "micromark": "~2.11.0" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" }, "funding": { "type": "opencollective", @@ -1377,30 +1486,36 @@ } }, "node_modules/micromark-extension-gfm-tagfilter": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", - "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", + "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "dependencies": { + "micromark-util-types": "^1.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", - "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-3tkHCq1NNwijtwpjYba9+rl1yvQ4xYg8iQpUAfTJRyq8MtIEsBUF/vW6B9Gh8Qwy1hE2FmpyHhP4jnFAt61zLg==", "dependencies": { - "micromark": "~2.11.0" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-util-normalize-identifier": { + "node_modules/micromark-factory-space": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", "funding": [ { "type": "GitHub Sponsors", @@ -1412,13 +1527,14 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0" + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/micromark-util-symbol": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", - "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==", + "node_modules/micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", "funding": [ { "type": "GitHub Sponsors", @@ -1428,79 +1544,238 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + ], "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "node_modules/micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" + "node_modules/micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "node_modules/micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "wrappy": "1" + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/micromark-util-encode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", + "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" + "micromark-util-types": "^1.0.0" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" + "node_modules/micromark-util-sanitize-uri": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", + "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/parse-entities": { + "node_modules/micromark-util-symbol": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", + "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.0.tgz", + "integrity": "sha512-psf1WAaP1B77WpW4mBGDkTr+3RsPuDAgsvlP47GJzbH1jmjH8xjOx7Z6kp84L8oqHmy5pYO3Ev46odosZV+3AA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark/node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark/node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark/node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark/node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark/node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark/node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark/node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/micromark/node_modules/parse-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", @@ -1517,10 +1792,97 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "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==", + "dependencies": { + "character-entities": "^2.0.0", + "character-entities-legacy": "^2.0.0", + "character-reference-invalid": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -1603,9 +1965,9 @@ } }, "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dependencies": { "picomatch": "^2.2.1" }, @@ -1655,3415 +2017,68 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-parse/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-parse/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "node_modules/rehype-stringify": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.1.tgz", + "integrity": "sha512-xfhm8Erp7yL+RRgYmtZMJUqu6OSguwOQMfR2LkqT1dgNDQheClFMaDPVERy4/su7o0eHo0PKFGn4L68kOjVdRQ==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-to-html": "^8.0.0", + "unified": "^10.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-parse/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", + "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", + "dependencies": { + "remark-parse": "^9.0.0", + "remark-stringify": "^9.0.0", + "unified": "^9.1.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-parse/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-gfm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-2.0.0.tgz", + "integrity": "sha512-waIv4Tjcd2CTUDxKRYzuPyIHw1FoX4H2GjXAzXV9PxQWb+dU4fJivd/FZ+nxyzPARrqTjMIkwIwPoWNbpBhjcQ==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^1.0.0", + "micromark-extension-gfm": "^1.0.0", + "unified": "^10.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-parse/node_modules/unist-util-stringify-position": { + "node_modules/remark-lint-blockquote-indentation": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", + "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.0.0.tgz", + "integrity": "sha512-qWWyAJWHwnVFsfKEyl51os1rr4ex9KX398g8326esJ2/RFsCYJbJaXmVk/S+uf7B7HfOWFuJo+tu/7jlZZ54+Q==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-parse/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.1.tgz", - "integrity": "sha512-xfhm8Erp7yL+RRgYmtZMJUqu6OSguwOQMfR2LkqT1dgNDQheClFMaDPVERy4/su7o0eHo0PKFGn4L68kOjVdRQ==", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-to-html": "^8.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-stringify/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-stringify/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rehype-stringify/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-stringify/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-stringify/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-stringify/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-stringify/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rehype/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dependencies": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", - "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", - "dependencies": { - "mdast-util-gfm": "^0.1.0", - "micromark-extension-gfm": "^0.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-8.0.0.tgz", - "integrity": "sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg==", - "dependencies": { - "remark-message-control": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.0.0.tgz", - "integrity": "sha512-qWWyAJWHwnVFsfKEyl51os1rr4ex9KX398g8326esJ2/RFsCYJbJaXmVk/S+uf7B7HfOWFuJo+tu/7jlZZ54+Q==", - "dependencies": { - "@types/mdast": "^3.0.0", - "pluralize": "^8.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.0.0.tgz", - "integrity": "sha512-NHpVZOcTJeLOI1gGOvVDz8i3sXVY3s9K+OADupEA89Syfs4YAbnrij8OMJ6ozbHTn4av/HyVfsF4IK8X2pBUeQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.0.0.tgz", - "integrity": "sha512-WeB8aSC1oesu0t/wcqNEbn3bg0kRw+NK7Y5xrhQsREw6NcH1TnvjH95PvizFT5LxXAGhz4AtCFz0B28YugSznQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile-location": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", - "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.0.0.tgz", - "integrity": "sha512-xZMfFeaMOb5OIM4SrNz3QTRV3u5g3/+e6Oq40A3Apwd+a9Kx49lZbGxl8vfqaczP89PTNanm2e4OqqRsCen4Mg==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.0.0.tgz", - "integrity": "sha512-3LxU7lwCpfPstldcGly2ULb8knH4IOqZHoABT2KyKFw3rRFUCAEUBSl0k5eetnXXNc/X4NlHmnyjIyzhyl4PhA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.0.0.tgz", - "integrity": "sha512-wvyaTvQ5F78yuw4BDQsneTCvkxHGAjq0OuDQU4pawAZMYO3qFJlau7qoLppgquY1D+jBakejMT/yKnoQgRf1dQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.0.0.tgz", - "integrity": "sha512-x3wr1+22Atr72Z7+dUS8cqwuz8m8d4UgCAfBTNO+E6pRLVeCnVMvEtuJbDI5UqBlqvkLGlNofV4lJZQvrZUxqQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.0.0.tgz", - "integrity": "sha512-fZ0nDGyuZSgkrakLKl+cjqXwOT7iAz0wfSbrkCabYW3DdN6X1QYeSlMtHPizGXuri+AZhVkrUnujSn+9P4hJ2w==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-file-extension/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-file-extension/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-file-extension/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.0.0.tgz", - "integrity": "sha512-RHR8aku0jCH4AoHVepw9b0tCmiBevMtLPG1l5FKhbkLtBWk9GRRryuD3GExxsInEUN2P/a6FhvcBBtRSJbIfIA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-final-definition/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-final-definition/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-final-definition/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.0.0.tgz", - "integrity": "sha512-3u1IbgVfUN5Qgid8iqc1qlZhzscs4YPu8mwyahvLWVKMkBtoRWjDIVL6+CXcPPoUB2k3p+zuZ5oaE4yfO5Pb4w==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-final-newline/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-final-newline/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-final-newline/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-first-heading-level": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.0.0.tgz", - "integrity": "sha512-SMvBHO4HJd1ZkFDfx7OikJAoq5FQe+nFPm3n4DeAKIgM1FywaC7tD7ShwTRUL2DJMzdPjlta7UQRtTryAQGj+w==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-first-heading-level/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.0.0.tgz", - "integrity": "sha512-TNTI32Va6hE33pTYC6iqn4NvyZHqCULsOKKLnAzBocFFFIYuaNUdfKyVc9wknAAutbQLqApr8tgs1mLHtHm9Fw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.0.0.tgz", - "integrity": "sha512-pPiXG24yXER7xXZr+J11iuMd1DXa71m6Cx7jqUO5z1Ptc7WkolcW6lNRFG76BCOJp8Jp6vH5eNITuQxYa0AnJw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-heading-style": "^2.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-heading-style/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-heading-style/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-heading-style/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.0.0.tgz", - "integrity": "sha512-b/U3wAJPE00xGQGYBvjPPsdXsBPJxUvITYgAZee7aA2sGEiflMGmg90anS2sJZEAoD4XtNzp96bPaY6QLN89dQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "pluralize": "^8.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.0.0.tgz", - "integrity": "sha512-z7doG/aJCy8ivmfbE/cSm9HOpIeUaV5zZHMqSsZ6XZ+wXIj4wtMFVhI7fsAVs5pAB1gzSvZQuwJOfSs2//Fw2g==", - "dependencies": { - "@types/mdast": "^3.0.0", - "pluralize": "^8.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.0.0.tgz", - "integrity": "sha512-0x5TsUDlc4IDPUObNjVtcQxzI1JokUwbVpr22akWypnZaX9QMIL+Cp1OXrKRknZVU3rIndt4QCNnjMEYKezn1g==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-3.0.0.tgz", - "integrity": "sha512-qeJhWZcO0wnavTdpLU6M1q5RBfo4nZnYmzASoSCmIj/ZxIinluXLmLcMHC2Ol46egWdvwDNpr3V0dJP79fiJMQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.0.0.tgz", - "integrity": "sha512-6m1KZE8X2OhNV9wpEPVUfFxdzgVD523unRkstlRedKC3ONLlqP/CIliAOITRmIGuUxXVjyD7mDC892bFJnJTfw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile-location": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", - "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.0.0.tgz", - "integrity": "sha512-gP1b3lM+oemvA0WOC5HbvkjESG2BiZHL8ZDSX+wbg/2+7zu14rOmAAMiUOlk/CxbusttwJxsz8a/Wn1dEK/jPg==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "pluralize": "^8.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unified-lint-rule": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", - "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", - "dependencies": { - "@types/unist": "^2.0.0", - "trough": "^2.0.0", - "unified": "^10.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.0.0.tgz", - "integrity": "sha512-6VOGPegh2ZQ0d9yronmhNXhg2wLYA5litT7bC1ljg2LQwMTIjYOgJbJsQJSKWD+FiHuqVhdWvXHzyTbFCch8Aw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-stringify-position": "^3.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/unified-lint-rule": { + "node_modules/remark-lint-blockquote-indentation/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -5078,7 +2093,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-is": { + "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -5087,7 +2102,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-position": { + "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -5096,135 +2111,50 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-visit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-articles": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.0.0.tgz", - "integrity": "sha512-PgyJXEsZDT2r1bvtwaChwTjYKPxo47/OxpJmiozwLcnPsBNbsDtrH+W5gIjNkvkENNcIQD48WZ9jIwyJiskBng==", + "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-articles/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-file-name-articles/node_modules/is-plain-obj": { + "node_modules/remark-lint-checkbox-character-style": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-file-name-articles/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-file-name-articles/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.0.0.tgz", + "integrity": "sha512-NHpVZOcTJeLOI1gGOvVDz8i3sXVY3s9K+OADupEA89Syfs4YAbnrij8OMJ6ozbHTn4av/HyVfsF4IK8X2pBUeQ==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-articles/node_modules/unified-lint-rule": { + "node_modules/remark-lint-checkbox-character-style/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -5239,108 +2169,69 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-articles/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, + "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-articles/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, + "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-articles/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-visit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.0.0.tgz", - "integrity": "sha512-o7yz//+vel7IFDoZ/M0BmOS4sVE3sTAFOkeYlH44meGbNnEudr+TKKa0lwopMqZHKhXgUPSayCq+D5dgRO6JLA==", + "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/is-plain-obj": { + "node_modules/remark-lint-checkbox-content-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.0.0.tgz", + "integrity": "sha512-WeB8aSC1oesu0t/wcqNEbn3bg0kRw+NK7Y5xrhQsREw6NcH1TnvjH95PvizFT5LxXAGhz4AtCFz0B28YugSznQ==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unified-lint-rule": { + "node_modules/remark-lint-checkbox-content-indent/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -5355,108 +2246,82 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, + "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, + "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-visit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.0.0.tgz", - "integrity": "sha512-SZS9FeGLty0wOBLTKyboDUZpjIKMihH88ZvgdqCUgIiDlZ9/72JKtZv43UuMnMVRgKJWQCRyZtT3nSNw3HwM+g==", + "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-code-block-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-3.0.0.tgz", + "integrity": "sha512-xZMfFeaMOb5OIM4SrNz3QTRV3u5g3/+e6Oq40A3Apwd+a9Kx49lZbGxl8vfqaczP89PTNanm2e4OqqRsCen4Mg==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unified-lint-rule": { + "node_modules/remark-lint-code-block-style/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -5471,57 +2336,59 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, + "node_modules/remark-lint-code-block-style/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-code-block-style/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-code-block-style/node_modules/unist-util-visit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", "dependencies": { "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-code-block-style/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.0.0.tgz", - "integrity": "sha512-2SljHUYTN83EN5DEZrl7WH4ibmUxai6gONhZaQrQOJyGUO2ReZj5Zdn4xi79NHpORSzCzjn2tSXPB6yL3AhJag==", + "node_modules/remark-lint-definition-spacing": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.0.0.tgz", + "integrity": "sha512-3LxU7lwCpfPstldcGly2ULb8knH4IOqZHoABT2KyKFw3rRFUCAEUBSl0k5eetnXXNc/X4NlHmnyjIyzhyl4PhA==", "dependencies": { "@types/mdast": "^3.0.0", - "mdast-util-heading-style": "^2.0.0", - "pluralize": "^8.0.0", "unified": "^10.0.0", "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", "unist-util-position": "^4.0.0", "unist-util-visit": "^4.0.0" }, @@ -5530,54 +2397,84 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "node_modules/remark-lint-definition-spacing/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-definition-spacing/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/is-plain-obj": { + "node_modules/remark-lint-definition-spacing/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-definition-spacing/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-definition-spacing/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-fenced-code-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.0.0.tgz", + "integrity": "sha512-wvyaTvQ5F78yuw4BDQsneTCvkxHGAjq0OuDQU4pawAZMYO3qFJlau7qoLppgquY1D+jBakejMT/yKnoQgRf1dQ==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/unified-lint-rule": { + "node_modules/remark-lint-fenced-code-flag/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -5592,7 +2489,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-is": { + "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -5601,7 +2498,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-position": { + "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -5610,19 +2507,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-visit": { + "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -5636,7 +2521,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -5649,92 +2534,104 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-fenced-code-marker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.0.0.tgz", + "integrity": "sha512-x3wr1+22Atr72Z7+dUS8cqwuz8m8d4UgCAfBTNO+E6pRLVeCnVMvEtuJbDI5UqBlqvkLGlNofV4lJZQvrZUxqQ==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-fenced-code-marker/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.0.0.tgz", - "integrity": "sha512-t4MWiMjPH6TOdM8d5i5Eik6NVrOokoYy6z0GnuI7PNrmNmVVIV9CVBJU94aSXZ7friKx5ucvUEw6NhXIRcNtOw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "pluralize": "^8.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, + "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/is-plain-obj": { + "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-file-extension": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.0.0.tgz", + "integrity": "sha512-fZ0nDGyuZSgkrakLKl+cjqXwOT7iAz0wfSbrkCabYW3DdN6X1QYeSlMtHPizGXuri+AZhVkrUnujSn+9P4hJ2w==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-file-extension/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", "trough": "^2.0.0", + "unified": "^10.0.0", "vfile": "^5.0.0" }, "funding": { @@ -5742,7 +2639,24 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/unified-lint-rule": { + "node_modules/remark-lint-final-definition": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.0.0.tgz", + "integrity": "sha512-RHR8aku0jCH4AoHVepw9b0tCmiBevMtLPG1l5FKhbkLtBWk9GRRryuD3GExxsInEUN2P/a6FhvcBBtRSJbIfIA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-final-definition/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -5757,7 +2671,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-is": { + "node_modules/remark-lint-final-definition/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -5766,7 +2680,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-position": { + "node_modules/remark-lint-final-definition/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -5775,19 +2689,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-visit": { + "node_modules/remark-lint-final-definition/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -5801,7 +2703,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-final-definition/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -5814,41 +2716,41 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.0.0.tgz", + "integrity": "sha512-3u1IbgVfUN5Qgid8iqc1qlZhzscs4YPu8mwyahvLWVKMkBtoRWjDIVL6+CXcPPoUB2k3p+zuZ5oaE4yfO5Pb4w==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-final-newline/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-inline-padding": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.0.0.tgz", - "integrity": "sha512-dugEtHudM/UVQYzTbQoWy4aeG9Micd9g6O/uzN59sIMM8Xb+Srbv/p5/2JNtJWej9PmzINldE0AHjpuB8NiNLA==", + "node_modules/remark-lint-first-heading-level": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.0.0.tgz", + "integrity": "sha512-SMvBHO4HJd1ZkFDfx7OikJAoq5FQe+nFPm3n4DeAKIgM1FywaC7tD7ShwTRUL2DJMzdPjlta7UQRtTryAQGj+w==", "dependencies": { "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^3.0.0", "unified": "^10.0.0", "unified-lint-rule": "^2.0.0", "unist-util-generated": "^2.0.0", @@ -5859,63 +2761,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-inline-padding/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-inline-padding/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-inline-padding/node_modules/mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-inline-padding/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-inline-padding/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-inline-padding/node_modules/unified-lint-rule": { + "node_modules/remark-lint-first-heading-level/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -5930,7 +2776,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-inline-padding/node_modules/unist-util-is": { + "node_modules/remark-lint-first-heading-level/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -5939,19 +2785,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-inline-padding/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-inline-padding/node_modules/unist-util-visit": { + "node_modules/remark-lint-first-heading-level/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -5965,7 +2799,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-inline-padding/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-first-heading-level/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -5978,109 +2812,101 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-inline-padding/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-hard-break-spaces": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.0.0.tgz", + "integrity": "sha512-TNTI32Va6hE33pTYC6iqn4NvyZHqCULsOKKLnAzBocFFFIYuaNUdfKyVc9wknAAutbQLqApr8tgs1mLHtHm9Fw==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-inline-padding/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-hard-break-spaces/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.0.0.tgz", - "integrity": "sha512-P+9VxemAeSGWGMmFGKcQMIsPgVDaoXnQLl0Bx/TuBms0Favb7XI3ecii/HjjDeks3zlrxlVhzvEkHBk1uH1tdA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, + "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/is-plain-obj": { + "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-literal-urls/node_modules/mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "node_modules/remark-lint-heading-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.0.0.tgz", + "integrity": "sha512-pPiXG24yXER7xXZr+J11iuMd1DXa71m6Cx7jqUO5z1Ptc7WkolcW6lNRFG76BCOJp8Jp6vH5eNITuQxYa0AnJw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/unified-lint-rule": { + "node_modules/remark-lint-heading-style/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -6095,7 +2921,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-is": { + "node_modules/remark-lint-heading-style/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -6104,28 +2930,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-visit": { + "node_modules/remark-lint-heading-style/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -6139,7 +2944,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-heading-style/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -6152,100 +2957,92 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-list-item-bullet-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.0.0.tgz", + "integrity": "sha512-b/U3wAJPE00xGQGYBvjPPsdXsBPJxUvITYgAZee7aA2sGEiflMGmg90anS2sJZEAoD4XtNzp96bPaY6QLN89dQ==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-list-item-bullet-indent/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.0.0.tgz", - "integrity": "sha512-HzPTSy9nu9RHSIUfZCbxEa7KP4CoKNbfI4SW8txh7KnYwr6vC6QgqXPF77z1sIpiSgD9X2z0LwMk0DBk1v3bmA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-stringify-position": "^3.0.0", - "unist-util-visit": "^4.0.0" - }, + "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/is-plain-obj": { + "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-list-item-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.0.0.tgz", + "integrity": "sha512-z7doG/aJCy8ivmfbE/cSm9HOpIeUaV5zZHMqSsZ6XZ+wXIj4wtMFVhI7fsAVs5pAB1gzSvZQuwJOfSs2//Fw2g==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unified-lint-rule": { + "node_modules/remark-lint-list-item-indent/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -6260,7 +3057,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-is": { + "node_modules/remark-lint-list-item-indent/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -6269,7 +3066,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-position": { + "node_modules/remark-lint-list-item-indent/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -6278,19 +3075,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-visit": { + "node_modules/remark-lint-list-item-indent/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -6304,7 +3089,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-list-item-indent/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -6317,98 +3102,102 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-maximum-line-length": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.0.0.tgz", + "integrity": "sha512-0x5TsUDlc4IDPUObNjVtcQxzI1JokUwbVpr22akWypnZaX9QMIL+Cp1OXrKRknZVU3rIndt4QCNnjMEYKezn1g==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-maximum-line-length/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.0.0.tgz", - "integrity": "sha512-jygHSWi+w7C/VT6+oKIMHhrnMlURWF+ohjdtkxDc/C/7FXWyHg1nJR2t+c+j5Dmirz3oSfInSGw/jUfYP048GQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, + "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/is-plain-obj": { + "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-shell-dollars/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", "dependencies": { "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-no-auto-link-without-protocol": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-3.0.0.tgz", + "integrity": "sha512-qeJhWZcO0wnavTdpLU6M1q5RBfo4nZnYmzASoSCmIj/ZxIinluXLmLcMHC2Ol46egWdvwDNpr3V0dJP79fiJMQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -6423,7 +3212,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-is": { + "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -6432,19 +3221,16 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, + "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-visit": { + "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -6458,7 +3244,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-no-auto-link-without-protocol/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -6471,98 +3257,25 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shell-dollars/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-image": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.0.0.tgz", - "integrity": "sha512-PyB5xkCd8moJf1MrmIXlBTSXZ8pkjXtdrmHzYba7La8S/6TKN2+LFrfN9daLG9pVsD0DSBAlvbajM/MBFh2DfQ==", + "node_modules/remark-lint-no-blockquote-without-marker": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.0.0.tgz", + "integrity": "sha512-6m1KZE8X2OhNV9wpEPVUfFxdzgVD523unRkstlRedKC3ONLlqP/CIliAOITRmIGuUxXVjyD7mDC892bFJnJTfw==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", "unified-lint-rule": "^2.0.0", "unist-util-generated": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -6577,7 +3290,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-is": { + "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -6586,19 +3299,16 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, + "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-visit": { + "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -6612,7 +3322,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -6625,98 +3335,117 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", "dependencies": { "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-no-consecutive-blank-lines": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.0.0.tgz", + "integrity": "sha512-gP1b3lM+oemvA0WOC5HbvkjESG2BiZHL8ZDSX+wbg/2+7zu14rOmAAMiUOlk/CxbusttwJxsz8a/Wn1dEK/jPg==", "dependencies": { + "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.0.0.tgz", - "integrity": "sha512-SbPrP6ZfRA2IJ++L7xAivXl7PJdOMzBUlhVwlt5PsWJKWHX07TIB02GGAiMnSOLN0FnUCvgF2c5we6eU1K3plA==", + "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "trough": "^2.0.0", "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-visit": "^4.0.0" + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/is-plain-obj": { + "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-no-duplicate-definitions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.0.0.tgz", + "integrity": "sha512-6VOGPegh2ZQ0d9yronmhNXhg2wLYA5litT7bC1ljg2LQwMTIjYOgJbJsQJSKWD+FiHuqVhdWvXHzyTbFCch8Aw==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-duplicate-definitions/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -6731,7 +3460,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-is": { + "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -6740,19 +3469,16 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-visit": { + "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -6766,7 +3492,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -6779,91 +3505,86 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-no-file-name-articles": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.0.0.tgz", + "integrity": "sha512-PgyJXEsZDT2r1bvtwaChwTjYKPxo47/OxpJmiozwLcnPsBNbsDtrH+W5gIjNkvkENNcIQD48WZ9jIwyJiskBng==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-no-file-name-articles/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.0.0.tgz", - "integrity": "sha512-S1u4DHBS75xAcM/u1zsYize/0uB2u+xAoHbstN3JmFWsTRj5LUSppwkSrWsPk/3y9/jHJAQ4XSihwH7C95EObQ==", + "node_modules/remark-lint-no-file-name-consecutive-dashes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.0.0.tgz", + "integrity": "sha512-o7yz//+vel7IFDoZ/M0BmOS4sVE3sTAFOkeYlH44meGbNnEudr+TKKa0lwopMqZHKhXgUPSayCq+D5dgRO6JLA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile-location": "^4.0.0" + "unified-lint-rule": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-table-indentation/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", + "dependencies": { + "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-no-file-name-outer-dashes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.0.0.tgz", + "integrity": "sha512-SZS9FeGLty0wOBLTKyboDUZpjIKMihH88ZvgdqCUgIiDlZ9/72JKtZv43UuMnMVRgKJWQCRyZtT3nSNw3HwM+g==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", "trough": "^2.0.0", + "unified": "^10.0.0", "vfile": "^5.0.0" }, "funding": { @@ -6871,7 +3592,26 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-heading-content-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.0.0.tgz", + "integrity": "sha512-2SljHUYTN83EN5DEZrl7WH4ibmUxai6gONhZaQrQOJyGUO2ReZj5Zdn4xi79NHpORSzCzjn2tSXPB6yL3AhJag==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-heading-style": "^2.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-no-heading-content-indent/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -6886,7 +3626,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-is": { + "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -6895,7 +3635,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-position": { + "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -6904,19 +3644,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-visit": { + "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -6930,7 +3658,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -6943,27 +3671,32 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-no-heading-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.0.0.tgz", + "integrity": "sha512-t4MWiMjPH6TOdM8d5i5Eik6NVrOokoYy6z0GnuI7PNrmNmVVIV9CVBJU94aSXZ7friKx5ucvUEw6NhXIRcNtOw==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/mdast": "^3.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "node_modules/remark-lint-no-heading-indent/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", "vfile": "^5.0.0" }, "funding": { @@ -6971,82 +3704,69 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, + "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.0.0.tgz", - "integrity": "sha512-iK5gXQLoBchviHRNNDIWKQsMAbsLIZzK2ZKo0ywzNBHBckd8fy+wIP6RUosb6p/RBHtq1JG1lUC5ADg1PSj0tQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "vfile-location": "^4.0.0" - }, + "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-tabs/node_modules/is-plain-obj": { + "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-no-inline-padding": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.0.0.tgz", + "integrity": "sha512-dugEtHudM/UVQYzTbQoWy4aeG9Micd9g6O/uzN59sIMM8Xb+Srbv/p5/2JNtJWej9PmzINldE0AHjpuB8NiNLA==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-inline-padding/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -7061,134 +3781,139 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, + "node_modules/remark-lint-no-inline-padding/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-no-inline-padding/node_modules/unist-util-visit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", "dependencies": { "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "node_modules/remark-lint-no-inline-padding/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", "dependencies": { "@types/unist": "^2.0.0", - "vfile": "^5.0.0" + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-no-literal-urls": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.0.0.tgz", + "integrity": "sha512-P+9VxemAeSGWGMmFGKcQMIsPgVDaoXnQLl0Bx/TuBms0Favb7XI3ecii/HjjDeks3zlrxlVhzvEkHBk1uH1tdA==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-trailing-spaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-trailing-spaces/-/remark-lint-no-trailing-spaces-2.0.1.tgz", - "integrity": "sha512-cj8t+nvtO6eAY2lJC7o5du8VeOCK13XiDUHL4U6k5aw6ZLr3EYWbQ/rNc6cr60eHkh5Ldm09KiZjV3CWpxqJ0g==", - "dependencies": { - "unified-lint-rule": "^1.0.2" - } - }, - "node_modules/remark-lint-no-undefined-references": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.0.0.tgz", - "integrity": "sha512-HI68vLoTTCXDADAp8LQ6RqCuf9QHX7bSaaqKI1V82EyvizxgnFtvN46XIi1uiDTN+Jv/KzAAGaFrofV8OJknBA==", + "node_modules/remark-lint-no-literal-urls/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "@types/mdast": "^3.0.0", - "micromark-util-normalize-identifier": "^1.0.0", + "@types/unist": "^2.0.0", + "trough": "^2.0.0", "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile-location": "^4.0.0" + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/is-plain-obj": { + "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-no-multiple-toplevel-headings": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.0.0.tgz", + "integrity": "sha512-HzPTSy9nu9RHSIUfZCbxEa7KP4CoKNbfI4SW8txh7KnYwr6vC6QgqXPF77z1sIpiSgD9X2z0LwMk0DBk1v3bmA==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -7203,7 +3928,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-is": { + "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -7212,7 +3937,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-position": { + "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -7221,19 +3946,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-visit": { + "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -7247,7 +3960,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -7260,27 +3973,30 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-no-shell-dollars": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.0.0.tgz", + "integrity": "sha512-jygHSWi+w7C/VT6+oKIMHhrnMlURWF+ohjdtkxDc/C/7FXWyHg1nJR2t+c+j5Dmirz3oSfInSGw/jUfYP048GQ==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "node_modules/remark-lint-no-shell-dollars/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", + "trough": "^2.0.0", + "unified": "^10.0.0", "vfile": "^5.0.0" }, "funding": { @@ -7288,83 +4004,59 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, + "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.0.0.tgz", - "integrity": "sha512-1LqEZx0IJx59ezXA9e0qq6h5W3n9I6oiBm3Kl+HvmXTFl1OME6f8SVFwtDbt9EaGmf+3NL+T24cWIhZWjmZ0bA==", + "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-visit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-visit": "^4.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-no-unused-definitions/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-no-unused-definitions/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-no-shortcut-reference-image": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.0.0.tgz", + "integrity": "sha512-PyB5xkCd8moJf1MrmIXlBTSXZ8pkjXtdrmHzYba7La8S/6TKN2+LFrfN9daLG9pVsD0DSBAlvbajM/MBFh2DfQ==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -7379,7 +4071,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-is": { + "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -7388,19 +4080,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-visit": { + "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -7414,7 +4094,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -7427,99 +4107,91 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-no-shortcut-reference-link": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.0.0.tgz", + "integrity": "sha512-SbPrP6ZfRA2IJ++L7xAivXl7PJdOMzBUlhVwlt5PsWJKWHX07TIB02GGAiMnSOLN0FnUCvgF2c5we6eU1K3plA==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.0.0.tgz", - "integrity": "sha512-HDg5Fyg3tENtmI5SpEL34TvEjIiVX4GhuOjU8aOGF7T4SMG69kLyx+IWMKhg39pBw+3h4lG6FDC8IfqYXONNLg==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, + "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/is-plain-obj": { + "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-no-table-indentation": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.0.0.tgz", + "integrity": "sha512-S1u4DHBS75xAcM/u1zsYize/0uB2u+xAoHbstN3JmFWsTRj5LUSppwkSrWsPk/3y9/jHJAQ4XSihwH7C95EObQ==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-table-indentation/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -7534,7 +4206,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-is": { + "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -7543,7 +4215,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-position": { + "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -7552,19 +4224,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-visit": { + "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -7578,7 +4238,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -7591,110 +4251,90 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-no-table-indentation/node_modules/vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", "dependencies": { "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-no-tabs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.0.0.tgz", + "integrity": "sha512-iK5gXQLoBchviHRNNDIWKQsMAbsLIZzK2ZKo0ywzNBHBckd8fy+wIP6RUosb6p/RBHtq1JG1lUC5ADg1PSj0tQ==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "vfile-location": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-prohibited-strings": { + "node_modules/remark-lint-no-tabs/node_modules/unified-lint-rule": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-prohibited-strings/-/remark-lint-prohibited-strings-2.0.0.tgz", - "integrity": "sha512-N94RTdAT4qmYNBczNZEZbnpGvtl9GiLPO/xdG569IpbbtNFh5l+Nf5Mx5B1VeJMC8/hAR7wShag03Zf29MOO6Q==", - "dependencies": { - "escape-string-regexp": "^4.0.0", - "unified-lint-rule": "^1.0.2", - "unist-util-position": "^3.1.0", - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.1" - } - }, - "node_modules/remark-lint-rule-style": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.0.0.tgz", - "integrity": "sha512-KHSPHW/7YCl9gHFsqqWOqIkJYmPuxTu/5G3Ks3lG8seBDf1bg+lPPUg5TigsKa/E7juVgfTR7AhK6P+lYAp4EA==", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "trough": "^2.0.0", "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-rule-style/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "node_modules/remark-lint-no-tabs/node_modules/vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/remark-lint-no-trailing-spaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-trailing-spaces/-/remark-lint-no-trailing-spaces-2.0.1.tgz", + "integrity": "sha512-cj8t+nvtO6eAY2lJC7o5du8VeOCK13XiDUHL4U6k5aw6ZLr3EYWbQ/rNc6cr60eHkh5Ldm09KiZjV3CWpxqJ0g==", + "dependencies": { + "unified-lint-rule": "^1.0.2" } }, - "node_modules/remark-lint-rule-style/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-no-undefined-references": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.0.0.tgz", + "integrity": "sha512-HI68vLoTTCXDADAp8LQ6RqCuf9QHX7bSaaqKI1V82EyvizxgnFtvN46XIi1uiDTN+Jv/KzAAGaFrofV8OJknBA==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile-location": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/unified-lint-rule": { + "node_modules/remark-lint-no-undefined-references/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -7709,7 +4349,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/unist-util-is": { + "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -7718,7 +4358,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/unist-util-position": { + "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -7727,19 +4367,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-rule-style/node_modules/unist-util-visit": { + "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -7753,7 +4381,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -7766,98 +4394,104 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-no-undefined-references/node_modules/vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", "dependencies": { "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-no-unused-definitions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.0.0.tgz", + "integrity": "sha512-1LqEZx0IJx59ezXA9e0qq6h5W3n9I6oiBm3Kl+HvmXTFl1OME6f8SVFwtDbt9EaGmf+3NL+T24cWIhZWjmZ0bA==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.0.0.tgz", - "integrity": "sha512-nNyW3tKl0rEf2j784HzVWChAomCxzld+v2A5R5r5Zw5VogUNikZA7ZRwy51HsmhqiTWHArVGeyuvCPrpkTDZ0A==", + "node_modules/remark-lint-no-unused-definitions/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "trough": "^2.0.0", "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/is-plain-obj": { + "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-ordered-list-marker-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.0.0.tgz", + "integrity": "sha512-HDg5Fyg3tENtmI5SpEL34TvEjIiVX4GhuOjU8aOGF7T4SMG69kLyx+IWMKhg39pBw+3h4lG6FDC8IfqYXONNLg==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/unified-lint-rule": { + "node_modules/remark-lint-ordered-list-marker-style/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -7872,7 +4506,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/unist-util-is": { + "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -7881,7 +4515,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/unist-util-position": { + "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -7890,19 +4524,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-strong-marker/node_modules/unist-util-visit": { + "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -7916,7 +4538,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -7929,99 +4551,111 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-prohibited-strings": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-prohibited-strings/-/remark-lint-prohibited-strings-2.0.0.tgz", + "integrity": "sha512-N94RTdAT4qmYNBczNZEZbnpGvtl9GiLPO/xdG569IpbbtNFh5l+Nf5Mx5B1VeJMC8/hAR7wShag03Zf29MOO6Q==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "escape-string-regexp": "^4.0.0", + "unified-lint-rule": "^1.0.2", + "unist-util-position": "^3.1.0", + "unist-util-visit": "^2.0.0", + "vfile-location": "^3.0.1" + } + }, + "node_modules/remark-lint-rule-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.0.0.tgz", + "integrity": "sha512-KHSPHW/7YCl9gHFsqqWOqIkJYmPuxTu/5G3Ks3lG8seBDf1bg+lPPUg5TigsKa/E7juVgfTR7AhK6P+lYAp4EA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-rule-style/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.0.0.tgz", - "integrity": "sha512-jYBhfu/x0bEXt+wilHnm76q6wHnPVW2v2EuTdvAsxqkVtlvWSl9BbO4bb/L7jKqwlfiTK8E/luHKZuPiNWlucw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, + "node_modules/remark-lint-rule-style/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "node_modules/remark-lint-rule-style/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/is-plain-obj": { + "node_modules/remark-lint-rule-style/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-rule-style/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-strong-marker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.0.0.tgz", + "integrity": "sha512-nNyW3tKl0rEf2j784HzVWChAomCxzld+v2A5R5r5Zw5VogUNikZA7ZRwy51HsmhqiTWHArVGeyuvCPrpkTDZ0A==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/unified-lint-rule": { + "node_modules/remark-lint-strong-marker/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", @@ -8036,7 +4670,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-is": { + "node_modules/remark-lint-strong-marker/node_modules/unist-util-is": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", @@ -8045,7 +4679,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-position": { + "node_modules/remark-lint-strong-marker/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", @@ -8054,19 +4688,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-visit": { + "node_modules/remark-lint-strong-marker/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", @@ -8080,7 +4702,7 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-visit-parents": { + "node_modules/remark-lint-strong-marker/node_modules/unist-util-visit-parents": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", @@ -8093,91 +4715,93 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark-lint-table-cell-padding": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.0.0.tgz", + "integrity": "sha512-jYBhfu/x0bEXt+wilHnm76q6wHnPVW2v2EuTdvAsxqkVtlvWSl9BbO4bb/L7jKqwlfiTK8E/luHKZuPiNWlucw==", "dependencies": { + "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-table-cell-padding/node_modules/unified-lint-rule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", + "integrity": "sha512-3V+eyHZR+PAeKavQrrvSacXq83C3TGVDZJpTZ8+MTlHZmS4arL1ul5U4WRymok0zobAsMiri42bJj0rCHIlIjA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "trough": "^2.0.0", + "unified": "^10.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.0.0.tgz", - "integrity": "sha512-wOIAwkPAEDArKYMEpDylycGOCCt9hUxfgirgYCaHujCvyg484GWO+n+Moabgd19O9ZjuYr2P7akuOocsTh2z3g==", - "dependencies": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, + "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-position": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes/node_modules/is-plain-obj": { + "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-visit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "node_modules/remark-lint-table-pipes": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.0.0.tgz", + "integrity": "sha512-wOIAwkPAEDArKYMEpDylycGOCCt9hUxfgirgYCaHujCvyg484GWO+n+Moabgd19O9ZjuYr2P7akuOocsTh2z3g==", "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", @@ -8217,18 +4841,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-table-pipes/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -8256,34 +4868,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-pipes/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-unordered-list-marker-style": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.0.0.tgz", @@ -8301,53 +4885,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-unordered-list-marker-style/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -8375,86 +4912,33 @@ "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-position": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, + "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-visit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", + "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-message-control": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-6.0.0.tgz", - "integrity": "sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==", + "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-visit-parents": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", + "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", "dependencies": { - "mdast-comment-marker": "^1.0.0", - "unified-message-control": "^3.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", @@ -8517,69 +5001,6 @@ "node": ">=12.0.0" } }, - "node_modules/remark-preset-lint-node/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/remark-preset-lint-node/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-preset-lint-node/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-preset-lint-node/node_modules/js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/remark-preset-lint-node/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-preset-lint-node/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-preset-lint-node/node_modules/unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -8604,18 +5025,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-node/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-preset-lint-node/node_modules/unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -8643,34 +5052,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-node/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-node/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-preset-lint-recommended": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.0.0.tgz", @@ -8700,26 +5081,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-recommended/node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-preset-lint-recommended/node_modules/is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/remark-preset-lint-recommended/node_modules/mdast-comment-marker": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.0.0.tgz", @@ -8760,145 +5121,289 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-recommended/node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "node_modules/remark-preset-lint-recommended/node_modules/unified-message-control": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz", + "integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^3.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-preset-lint-recommended/node_modules/unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-preset-lint-recommended/node_modules/unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-preset-lint-recommended/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-preset-lint-recommended/node_modules/vfile-location": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", + "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", + "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-stringify/node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-stringify/node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-stringify/node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-stringify/node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-stringify/node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-stringify/node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/remark-preset-lint-recommended/node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, + "node_modules/remark-stringify/node_modules/longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/remark-preset-lint-recommended/node_modules/unified-message-control": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz", - "integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==", + "node_modules/remark-stringify/node_modules/mdast-util-to-markdown": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", + "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit": "^3.0.0", - "vfile": "^5.0.0", - "vfile-location": "^4.0.0", - "vfile-message": "^3.0.0" + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-recommended/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", + "node_modules/remark-stringify/node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-recommended/node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", + "node_modules/remark-stringify/node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dependencies": { - "@types/unist": "^2.0.0" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/remark-preset-lint-recommended/node_modules/unist-util-visit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", - "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^4.0.0" - }, + "node_modules/remark-stringify/node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/remark-preset-lint-recommended/node_modules/unist-util-visit-parents": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", - "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, + "node_modules/remark/node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/remark-preset-lint-recommended/node_modules/vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "node_modules/remark/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/remark/node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark/node_modules/unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", "dependencies": { - "@types/unist": "^2.0.0", + "bail": "^1.0.0", + "extend": "^3.0.0", "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-recommended/node_modules/vfile-location": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", - "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", + "node_modules/remark/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" + "@types/unist": "^2.0.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-recommended/node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "node_modules/remark/node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", + "node_modules/remark/node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "dependencies": { - "mdast-util-to-markdown": "^0.6.0" + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" }, "funding": { "type": "opencollective", @@ -8935,9 +5440,9 @@ } }, "node_modules/rollup": { - "version": "2.36.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.36.1.tgz", - "integrity": "sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ==", + "version": "2.52.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.7.tgz", + "integrity": "sha512-55cSH4CCU6MaPr9TAOyrIC+7qFCHscL7tkNsm1MBfIJRRqRbCEY0mmeFn4Wg8FKsHtEH8r389Fz38r/o+kgXLg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -8946,7 +5451,7 @@ "node": ">=10.0.0" }, "optionalDependencies": { - "fsevents": "~2.1.2" + "fsevents": "~2.3.2" } }, "node_modules/safe-buffer": { @@ -9049,9 +5554,9 @@ } }, "node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -9074,15 +5579,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/stringify-entities/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==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -9134,10 +5630,50 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/to-vfile/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/to-vfile/node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/to-vfile/node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", + "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9149,16 +5685,17 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", + "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", "dependencies": { - "bail": "^1.0.0", + "@types/unist": "^2.0.0", + "bail": "^2.0.0", "extend": "^3.0.0", "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" }, "funding": { "type": "opencollective", @@ -9185,9 +5722,9 @@ } }, "node_modules/unified-engine": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-8.0.0.tgz", - "integrity": "sha512-vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-8.2.0.tgz", + "integrity": "sha512-ZlMm62ejrf+tJHdyOjQfljszngQjRor95q2XZMGk6rpJUYi7ZIHY/EXEhOcj9PZkMKKdLIM+dqL4s0ceyk9wbA==", "dependencies": { "concat-stream": "^2.0.0", "debug": "^4.0.0", @@ -9212,25 +5749,49 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unified-lint-rule": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz", - "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==", + "node_modules/unified-engine/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dependencies": { - "wrapped": "^1.0.1" + "sprintf-js": "~1.0.2" + } + }, + "node_modules/unified-engine/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/unified-engine/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/unified-engine/node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/unified-message-control": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.2.tgz", - "integrity": "sha512-lhF8fKjDo2cIPx1re5X1QinqUonl+AN6F0XfEaab8w/hjqX7FZAhzu4P8g6pmYp09ld+HSWFwdRJj+Y8xD0q7Q==", + "node_modules/unified-lint-rule": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz", + "integrity": "sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==", "dependencies": { - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" + "wrapped": "^1.0.1" }, "funding": { "type": "opencollective", @@ -9277,11 +5838,11 @@ } }, "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", + "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", "dependencies": { - "@types/unist": "^2.0.2" + "@types/unist": "^2.0.0" }, "funding": { "type": "opencollective", @@ -9321,14 +5882,14 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", + "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" }, "funding": { "type": "opencollective", @@ -9345,12 +5906,12 @@ } }, "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", + "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", "dependencies": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "unist-util-stringify-position": "^3.0.0" }, "funding": { "type": "opencollective", @@ -9393,6 +5954,18 @@ "node": ">=6" } }, + "node_modules/vfile-reporter/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vfile-sort": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.2.tgz", @@ -9440,9 +6013,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz", + "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9451,24 +6024,24 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.14.5" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -9525,9 +6098,9 @@ } }, "@rollup/plugin-commonjs": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.0.0.tgz", - "integrity": "sha512-/omBIJG1nHQc+bgkYDuLpb/V08QyutP9amOrJRUSlYJZP+b/68gM//D8sxJe3Yry2QnYIr3QjR3x4AlxJEN3GA==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz", + "integrity": "sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -9549,9 +6122,9 @@ } }, "@rollup/plugin-node-resolve": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.1.tgz", - "integrity": "sha512-ltlsj/4Bhwwhb+Nb5xCz/6vieuEj2/BAkkqVIKmZwC7pIdl8srmgmglE4S0jFlZa32K4qvdQ6NHdmpRKD/LwoQ==", + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz", + "integrity": "sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -9604,9 +6177,9 @@ } }, "@types/node": { - "version": "14.14.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", - "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", + "integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==", "dev": true }, "@types/parse5": { @@ -9642,26 +6215,23 @@ } }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", + "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" }, "balanced-match": { "version": "1.0.0", @@ -9669,9 +6239,9 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, "brace-expansion": { "version": "1.1.11", @@ -9691,9 +6261,9 @@ } }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "builtin-modules": { "version": "3.2.0", @@ -9721,9 +6291,9 @@ } }, "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", + "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==" }, "character-entities-html4": { "version": "2.0.0", @@ -9731,36 +6301,28 @@ "integrity": "sha512-dwT2xh5ZhUAjyP96k57ilMKoTQyASaw9IAMR9U5c1lCu2RUni6O6jxfpUEdO2RcPT6TJFvr8pqsbami4Jk+2oA==" }, "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + "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==" }, "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", + "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==" }, "chokidar": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", - "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "dependencies": { - "fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "optional": true - } + "readdirp": "~3.6.0" } }, "co": { @@ -9809,9 +6371,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { "ms": "2.1.2" } @@ -9911,10 +6473,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, "function-bind": { @@ -9973,25 +6534,6 @@ "web-namespaces": "^2.0.0" }, "dependencies": { - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, "vfile-location": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", @@ -10000,15 +6542,6 @@ "@types/unist": "^2.0.0", "vfile": "^5.0.0" } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -10106,17 +6639,17 @@ "dev": true }, "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", + "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==" }, "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "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==", "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" } }, "is-arrayish": { @@ -10147,9 +6680,9 @@ } }, "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", + "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==" }, "is-empty": { "version": "1.2.0", @@ -10175,9 +6708,9 @@ } }, "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", + "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==" }, "is-module": { "version": "1.0.0", @@ -10191,9 +6724,9 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", + "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" }, "is-reference": { "version": "1.2.1", @@ -10210,12 +6743,11 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "json-parse-even-better-errors": { @@ -10224,9 +6756,9 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "requires": { "minimist": "^1.2.5" } @@ -10265,9 +6797,9 @@ } }, "longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", + "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==" }, "lru-cache": { "version": "6.0.0", @@ -10292,70 +6824,166 @@ "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==" }, "markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", + "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==" + }, + "mdast-util-find-and-replace": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.1.0.tgz", + "integrity": "sha512-1w1jbqAd13oU78QPBf5223+xB+37ecNtQ1JElq2feWols5oEYAl+SgNDnOZipe7NfLemoEt362yUS15/wip4mw==", "requires": { - "repeat-string": "^1.0.0" + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + }, + "unist-util-is": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", + "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" + }, + "unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + } + } } }, - "mdast-comment-marker": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz", - "integrity": "sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==" - }, "mdast-util-from-markdown": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz", - "integrity": "sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^2.0.0", "micromark": "~2.11.0", "parse-entities": "^2.0.0", "unist-util-stringify-position": "^2.0.0" + }, + "dependencies": { + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, + "mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" + }, + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "requires": { + "@types/unist": "^2.0.2" + } + } } }, "mdast-util-gfm": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.1.tgz", - "integrity": "sha512-oE1W1zSXU2L2LHg91V22HC3Z1fbsOZTBYUQq+kpM29f9297TbRm0C1l3bQ88RREl0WaUQaB49G7trvwy5utUKQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-1.0.0.tgz", + "integrity": "sha512-JY4qImsTqivQ0Gl3qvdaizCpomFaNrHnjEhNjNNKeNEA5jZHAJDYu1+yO4V9jn4/ti8GrKdAScaT4F71knoxsA==", "requires": { - "mdast-util-gfm-autolink-literal": "^0.1.0", - "mdast-util-gfm-strikethrough": "^0.2.0", - "mdast-util-gfm-table": "^0.1.0", - "mdast-util-gfm-task-list-item": "^0.1.0", - "mdast-util-to-markdown": "^0.6.1" + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0" } }, "mdast-util-gfm-autolink-literal": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.2.tgz", - "integrity": "sha512-WFeIrcNNsfBety0gyWuiBIPing9UkVcl/m2iZOyW1uHEH2evjFocet2h77M24ub0WyZ4ucnQn/jWhO5Ozl6j4g==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.0.tgz", + "integrity": "sha512-NaGypnNJop+hybP/PLnMVV5aN14VFda31DU+j8qsQdPR8m8AENuCX959hXaCiwVeUem33O6zY+JTt0sH1Kj7ng==", + "requires": { + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + } }, "mdast-util-gfm-strikethrough": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", - "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", "requires": { - "mdast-util-to-markdown": "^0.6.0" + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" } }, "mdast-util-gfm-table": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", - "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", + "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", "requires": { - "markdown-table": "^2.0.0", - "mdast-util-to-markdown": "~0.6.0" + "markdown-table": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0" } }, "mdast-util-gfm-task-list-item": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", - "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", "requires": { - "mdast-util-to-markdown": "~0.6.0" + "@types/mdast": "^3.0.3", + "mdast-util-to-markdown": "^1.0.0" } }, "mdast-util-heading-style": { @@ -10367,87 +6995,226 @@ } }, "mdast-util-to-markdown": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.2.tgz", - "integrity": "sha512-iRczns6WMvu0hUw02LXsPDJshBIwtUPbvHBWo19IQeU0YqmzlA8Pd30U8V7uiI0VPkxzS7A/NXBXH6u+HS87Zg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.1.1.tgz", + "integrity": "sha512-4puev/CxuxVdlsx5lVmuzgdqfjkkJJLS1Zm/MnejQ8I7BLeeBlbkwp6WOGJypEcN8g56LbVbhNmn84MvvcAvSQ==", "requires": { + "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" + "longest-streak": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "parse-entities": "^3.0.0", + "zwitch": "^2.0.0" } }, "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", + "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" }, "micromark": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.2.tgz", - "integrity": "sha512-IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ==", + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", "requires": { "debug": "^4.0.0", "parse-entities": "^2.0.0" + }, + "dependencies": { + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + } } }, "micromark-extension-gfm": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.2.tgz", - "integrity": "sha512-ToQEpLkRgg7Tp8D3GM/SjZFPV0cCwWNxZmoEVIOQivOswRtPg7gg2WlCrtHhUWFNX+DgDjbq0iLOPGp4Y15oug==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-1.0.0.tgz", + "integrity": "sha512-OjqbQPL1Vec/4l5hnC8WnMNmWwgrT9JvzR2udqIGrGKecZsdwY9GAWZ5482CuD12SXuHNj8aS8epni6ip0Pwog==", "requires": { - "micromark": "~2.11.0", - "micromark-extension-gfm-autolink-literal": "~0.5.0", - "micromark-extension-gfm-strikethrough": "~0.6.0", - "micromark-extension-gfm-table": "~0.4.0", - "micromark-extension-gfm-tagfilter": "~0.3.0", - "micromark-extension-gfm-task-list-item": "~0.3.0" + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, "micromark-extension-gfm-autolink-literal": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.4.tgz", - "integrity": "sha512-471VKd4k3SiX7vx9fC+IYeGQL0RnxwBBXeEc5WConb7naJDG5m16guA+VoFzyXchrvmU08t0dUWWPZ0mkJSXVw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz", + "integrity": "sha512-t+K0aPK32mXypVTEKV+WRfoT/Rb7MERDgHZVRr56NXpyQQhgMk72QnK4NljYUlrgbuesH+MxiPQwThzqRDIwvA==", "requires": { - "micromark": "~2.11.0" + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, "micromark-extension-gfm-strikethrough": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.3.tgz", - "integrity": "sha512-MKMoP9x2dsr1aeX46ibBwVf4Q6nJsi5aaUFTOMOID5VOLSxwl4CrqUV4OGFQd6AqhtzBJAxaV+N2trlTBtZDNQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.0.tgz", + "integrity": "sha512-5PhVJVK8zRsrc+A715NBPMY5iOQwtkMfL/8XURAPeU5fPC0S5dm4qjpoA6fGy4B9MHm+6WNs3xZDxF1ZGTtGDw==", "requires": { - "micromark": "~2.11.0" + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, "micromark-extension-gfm-table": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.2.tgz", - "integrity": "sha512-AAzmj85XO1ydHYX0Lz52HGhcH2sZLm2AVvkwzELXWgZF6vGdq5yZ3CTByFRsqNUPyQBSIYFKLDAtc6KlnO42aw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.0.tgz", + "integrity": "sha512-OATRuHDgEAT/aaJJRSdU12V+s01kNSnJ0jumdfLq5mPy0F5DkR3zbTSFLH4tjVYM0/kEG6umxIhHY62mFe4z5Q==", "requires": { - "micromark": "~2.11.0" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, "micromark-extension-gfm-tagfilter": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", - "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", + "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "requires": { + "micromark-util-types": "^1.0.0" + } }, "micromark-extension-gfm-task-list-item": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", - "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.0.tgz", + "integrity": "sha512-3tkHCq1NNwijtwpjYba9+rl1yvQ4xYg8iQpUAfTJRyq8MtIEsBUF/vW6B9Gh8Qwy1hE2FmpyHhP4jnFAt61zLg==", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-factory-space": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "requires": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "requires": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-encode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", + "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==" + }, + "micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", "requires": { - "micromark": "~2.11.0" + "micromark-util-types": "^1.0.0" } }, - "micromark-util-normalize-identifier": { + "micromark-util-sanitize-uri": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", + "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", "micromark-util-symbol": "^1.0.0" } }, @@ -10456,6 +7223,11 @@ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==" }, + "micromark-util-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.0.tgz", + "integrity": "sha512-psf1WAaP1B77WpW4mBGDkTr+3RsPuDAgsvlP47GJzbH1jmjH8xjOx7Z6kp84L8oqHmy5pYO3Ev46odosZV+3AA==" + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -10509,22 +7281,22 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", + "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" + "character-entities": "^2.0.0", + "character-entities-legacy": "^2.0.0", + "character-reference-invalid": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" } }, "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -10579,9 +7351,9 @@ } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "requires": { "picomatch": "^2.2.1" } @@ -10604,65 +7376,6 @@ "rehype-parse": "^8.0.0", "rehype-stringify": "^9.0.0", "unified": "^10.0.0" - }, - "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - } } }, "rehype-parse": { @@ -10674,65 +7387,6 @@ "hast-util-from-parse5": "^7.0.0", "parse5": "^6.0.0", "unified": "^10.0.0" - }, - "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - } } }, "rehype-stringify": { @@ -10743,92 +7397,85 @@ "@types/hast": "^2.0.0", "hast-util-to-html": "^8.0.0", "unified": "^10.0.0" + } + }, + "remark": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", + "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", + "requires": { + "remark-parse": "^9.0.0", + "remark-stringify": "^9.0.0", + "unified": "^9.1.0" }, "dependencies": { "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" }, "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" }, "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" }, "unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", + "bail": "^1.0.0", "extend": "^3.0.0", "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" } }, "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "requires": { - "@types/unist": "^2.0.0" + "@types/unist": "^2.0.2" } }, "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" } }, "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "requires": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "unist-util-stringify-position": "^2.0.0" } } } }, - "remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "requires": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - } - }, "remark-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", - "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", - "requires": { - "mdast-util-gfm": "^0.1.0", - "micromark-extension-gfm": "^0.3.0" - } - }, - "remark-lint": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-8.0.0.tgz", - "integrity": "sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-2.0.0.tgz", + "integrity": "sha512-waIv4Tjcd2CTUDxKRYzuPyIHw1FoX4H2GjXAzXV9PxQWb+dU4fJivd/FZ+nxyzPARrqTjMIkwIwPoWNbpBhjcQ==", "requires": { - "remark-message-control": "^6.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^1.0.0", + "micromark-extension-gfm": "^1.0.0", + "unified": "^10.0.0" } }, "remark-lint-blockquote-indentation": { @@ -10845,35 +7492,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -10895,14 +7513,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -10921,26 +7531,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -10956,35 +7546,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11006,14 +7567,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -11032,26 +7585,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -11068,35 +7601,6 @@ "vfile-location": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11118,14 +7622,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -11145,17 +7641,6 @@ "unist-util-is": "^5.0.0" } }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, "vfile-location": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", @@ -11164,15 +7649,6 @@ "@types/unist": "^2.0.0", "vfile": "^5.0.0" } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -11189,35 +7665,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11239,14 +7686,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -11265,26 +7704,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -11300,35 +7719,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11350,14 +7740,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -11376,26 +7758,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -11412,35 +7774,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11462,14 +7795,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -11488,26 +7813,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -11523,35 +7828,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11573,14 +7849,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -11599,26 +7867,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -11632,35 +7880,6 @@ "unified-lint-rule": "^2.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11671,34 +7890,6 @@ "unified": "^10.0.0", "vfile": "^5.0.0" } - }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -11715,35 +7906,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11765,14 +7927,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -11791,26 +7945,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -11824,35 +7958,6 @@ "unified-lint-rule": "^2.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11863,34 +7968,6 @@ "unified": "^10.0.0", "vfile": "^5.0.0" } - }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -11906,35 +7983,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -11951,14 +7999,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -11977,26 +8017,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -12004,44 +8024,15 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.0.0.tgz", "integrity": "sha512-TNTI32Va6hE33pTYC6iqn4NvyZHqCULsOKKLnAzBocFFFIYuaNUdfKyVc9wknAAutbQLqApr8tgs1mLHtHm9Fw==", - "requires": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -12063,14 +8054,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -12089,26 +8072,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -12125,35 +8088,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -12170,14 +8104,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -12196,26 +8122,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -12231,35 +8137,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -12276,14 +8153,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -12302,26 +8171,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -12339,35 +8188,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -12389,14 +8209,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -12415,26 +8227,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -12451,35 +8243,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -12501,14 +8264,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -12527,26 +8282,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -12564,40 +8299,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -12619,14 +8320,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -12645,26 +8338,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -12682,35 +8355,6 @@ "vfile-location": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -12732,14 +8376,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -12759,17 +8395,6 @@ "unist-util-is": "^5.0.0" } }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, "vfile-location": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", @@ -12778,62 +8403,24 @@ "@types/unist": "^2.0.0", "vfile": "^5.0.0" } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, "remark-lint-no-consecutive-blank-lines": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.0.0.tgz", - "integrity": "sha512-gP1b3lM+oemvA0WOC5HbvkjESG2BiZHL8ZDSX+wbg/2+7zu14rOmAAMiUOlk/CxbusttwJxsz8a/Wn1dEK/jPg==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "pluralize": "^8.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, + "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.0.0.tgz", + "integrity": "sha512-gP1b3lM+oemvA0WOC5HbvkjESG2BiZHL8ZDSX+wbg/2+7zu14rOmAAMiUOlk/CxbusttwJxsz8a/Wn1dEK/jPg==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "pluralize": "^8.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -12855,14 +8442,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -12881,26 +8460,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -12918,35 +8477,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -12968,14 +8498,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -12994,26 +8516,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13027,35 +8529,6 @@ "unified-lint-rule": "^2.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13066,34 +8539,6 @@ "unified": "^10.0.0", "vfile": "^5.0.0" } - }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13107,35 +8552,6 @@ "unified-lint-rule": "^2.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13146,34 +8562,6 @@ "unified": "^10.0.0", "vfile": "^5.0.0" } - }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13187,35 +8575,6 @@ "unified-lint-rule": "^2.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13226,34 +8585,6 @@ "unified": "^10.0.0", "vfile": "^5.0.0" } - }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13272,35 +8603,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13322,14 +8624,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -13348,26 +8642,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13385,35 +8659,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13435,14 +8680,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -13461,26 +8698,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13488,49 +8705,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.0.0.tgz", "integrity": "sha512-dugEtHudM/UVQYzTbQoWy4aeG9Micd9g6O/uzN59sIMM8Xb+Srbv/p5/2JNtJWej9PmzINldE0AHjpuB8NiNLA==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13547,14 +8730,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -13573,26 +8748,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13610,40 +8765,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13665,14 +8786,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -13691,26 +8804,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13728,35 +8821,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13778,14 +8842,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -13804,26 +8860,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13839,35 +8875,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13884,14 +8891,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -13910,26 +8909,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -13945,35 +8924,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -13990,14 +8940,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -14016,26 +8958,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -14051,35 +8973,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -14096,14 +8989,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -14122,26 +9007,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -14158,35 +9023,6 @@ "vfile-location": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -14208,14 +9044,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -14235,17 +9063,6 @@ "unist-util-is": "^5.0.0" } }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, "vfile-location": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", @@ -14254,58 +9071,20 @@ "@types/unist": "^2.0.0", "vfile": "^5.0.0" } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - } - } - }, - "remark-lint-no-tabs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.0.0.tgz", - "integrity": "sha512-iK5gXQLoBchviHRNNDIWKQsMAbsLIZzK2ZKo0ywzNBHBckd8fy+wIP6RUosb6p/RBHtq1JG1lUC5ADg1PSj0tQ==", - "requires": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "vfile-location": "^4.0.0" - }, - "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, + } + } + }, + "remark-lint-no-tabs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.0.0.tgz", + "integrity": "sha512-iK5gXQLoBchviHRNNDIWKQsMAbsLIZzK2ZKo0ywzNBHBckd8fy+wIP6RUosb6p/RBHtq1JG1lUC5ADg1PSj0tQ==", + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "vfile-location": "^4.0.0" + }, + "dependencies": { "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -14317,25 +9096,6 @@ "vfile": "^5.0.0" } }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, "vfile-location": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", @@ -14344,15 +9104,6 @@ "@types/unist": "^2.0.0", "vfile": "^5.0.0" } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -14379,35 +9130,6 @@ "vfile-location": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -14429,14 +9151,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -14456,17 +9170,6 @@ "unist-util-is": "^5.0.0" } }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, "vfile-location": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", @@ -14475,15 +9178,6 @@ "@types/unist": "^2.0.0", "vfile": "^5.0.0" } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -14499,35 +9193,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -14544,14 +9209,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -14570,26 +9227,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -14606,35 +9243,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -14656,14 +9264,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -14682,26 +9282,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -14729,35 +9309,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -14779,14 +9330,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -14805,26 +9348,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -14840,35 +9363,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -14890,14 +9384,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -14916,26 +9402,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -14952,35 +9418,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -15002,14 +9439,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -15028,70 +9457,21 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, "remark-lint-table-pipes": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.0.0.tgz", - "integrity": "sha512-wOIAwkPAEDArKYMEpDylycGOCCt9hUxfgirgYCaHujCvyg484GWO+n+Moabgd19O9ZjuYr2P7akuOocsTh2z3g==", - "requires": { - "@types/mdast": "^3.0.0", - "unified": "^10.0.0", - "unified-lint-rule": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, + "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.0.0.tgz", + "integrity": "sha512-wOIAwkPAEDArKYMEpDylycGOCCt9hUxfgirgYCaHujCvyg484GWO+n+Moabgd19O9ZjuYr2P7akuOocsTh2z3g==", + "requires": { + "@types/mdast": "^3.0.0", + "unified": "^10.0.0", + "unified-lint-rule": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -15113,14 +9493,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -15139,26 +9511,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -15175,35 +9527,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -15225,14 +9548,6 @@ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -15251,38 +9566,9 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, - "remark-message-control": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-6.0.0.tgz", - "integrity": "sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==", - "requires": { - "mdast-comment-marker": "^1.0.0", - "unified-message-control": "^3.0.0" - } - }, "remark-parse": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", @@ -15332,48 +9618,6 @@ "unist-util-visit": "^4.0.0" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "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==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "requires": { - "argparse": "^2.0.1" - } - }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-lint-rule": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.0.tgz", @@ -15390,14 +9634,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", @@ -15416,26 +9652,6 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } - }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -15464,16 +9680,6 @@ "unified": "^10.0.0" }, "dependencies": { - "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" - }, - "is-plain-obj": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", - "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==" - }, "mdast-comment-marker": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.0.0.tgz", @@ -15502,25 +9708,6 @@ "vfile": "^5.0.0" } }, - "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "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==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, "unified-message-control": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz", @@ -15539,14 +9726,6 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" }, - "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", - "requires": { - "@types/unist": "^2.0.0" - } - }, "unist-util-visit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", @@ -15566,17 +9745,6 @@ "unist-util-is": "^5.0.0" } }, - "vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", - "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, "vfile-location": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", @@ -15585,15 +9753,6 @@ "@types/unist": "^2.0.0", "vfile": "^5.0.0" } - }, - "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } } } }, @@ -15603,6 +9762,88 @@ "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", "requires": { "mdast-util-to-markdown": "^0.6.0" + }, + "dependencies": { + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, + "longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" + }, + "mdast-util-to-markdown": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", + "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", + "requires": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" + } + }, + "mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" + }, + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" + } } }, "repeat-string": { @@ -15626,12 +9867,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "rollup": { - "version": "2.36.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.36.1.tgz", - "integrity": "sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ==", + "version": "2.52.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.7.tgz", + "integrity": "sha512-55cSH4CCU6MaPr9TAOyrIC+7qFCHscL7tkNsm1MBfIJRRqRbCEY0mmeFn4Wg8FKsHtEH8r389Fz38r/o+kgXLg==", "dev": true, "requires": { - "fsevents": "~2.1.2" + "fsevents": "~2.3.2" } }, "safe-buffer": { @@ -15698,9 +9939,9 @@ } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -15714,13 +9955,6 @@ "requires": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^2.0.0" - }, - "dependencies": { - "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==" - } } }, "strip-ansi": { @@ -15759,12 +9993,42 @@ "requires": { "is-buffer": "^2.0.0", "vfile": "^4.0.0" + }, + "dependencies": { + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + } } }, "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", + "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==" }, "typedarray": { "version": "0.0.6", @@ -15772,16 +10036,17 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", + "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", "requires": { - "bail": "^1.0.0", + "@types/unist": "^2.0.0", + "bail": "^2.0.0", "extend": "^3.0.0", "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" } }, "unified-args": { @@ -15800,9 +10065,9 @@ } }, "unified-engine": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-8.0.0.tgz", - "integrity": "sha512-vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-8.2.0.tgz", + "integrity": "sha512-ZlMm62ejrf+tJHdyOjQfljszngQjRor95q2XZMGk6rpJUYi7ZIHY/EXEhOcj9PZkMKKdLIM+dqL4s0ceyk9wbA==", "requires": { "concat-stream": "^2.0.0", "debug": "^4.0.0", @@ -15821,6 +10086,35 @@ "unist-util-inspect": "^5.0.0", "vfile-reporter": "^6.0.0", "vfile-statistics": "^1.1.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + } } }, "unified-lint-rule": { @@ -15831,15 +10125,6 @@ "wrapped": "^1.0.1" } }, - "unified-message-control": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.2.tgz", - "integrity": "sha512-lhF8fKjDo2cIPx1re5X1QinqUonl+AN6F0XfEaab8w/hjqX7FZAhzu4P8g6pmYp09ld+HSWFwdRJj+Y8xD0q7Q==", - "requires": { - "unist-util-visit": "^2.0.0", - "vfile-location": "^3.0.0" - } - }, "unist-util-generated": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", @@ -15864,11 +10149,11 @@ "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" }, "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", + "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", "requires": { - "@types/unist": "^2.0.2" + "@types/unist": "^2.0.0" } }, "unist-util-visit": { @@ -15896,14 +10181,14 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz", + "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==", "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" } }, "vfile-location": { @@ -15912,12 +10197,12 @@ "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==" }, "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", + "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", "requires": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "unist-util-stringify-position": "^3.0.0" } }, "vfile-reporter": { @@ -15945,6 +10230,14 @@ "requires": { "has-flag": "^3.0.0" } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "requires": { + "@types/unist": "^2.0.2" + } } } }, @@ -15983,9 +10276,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz", + "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==" } } } diff --git a/tools/node-lint-md-cli-rollup/package.json b/tools/node-lint-md-cli-rollup/package.json index 6357c6210d..0ce68f4a8a 100644 --- a/tools/node-lint-md-cli-rollup/package.json +++ b/tools/node-lint-md-cli-rollup/package.json @@ -3,17 +3,16 @@ "description": "remark packaged for Node.js Markdown linting", "version": "2.0.2", "devDependencies": { - "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.0.1", - "rollup": "^2.36.1", + "@rollup/plugin-node-resolve": "^13.0.4", + "rollup": "^2.52.7", "shx": "^0.3.3" }, "dependencies": { "markdown-extensions": "^1.1.1", "remark": "^13.0.0", - "remark-gfm": "^1.0.0", - "remark-lint": "^8.0.0", + "remark-gfm": "^2.0.0", "remark-preset-lint-node": "^3.0.0", "unified-args": "^8.1.0" }, -- cgit v1.2.1