{"version":3,"file":"react/js/vendor.mdast-util-to-markdown@current.dd26edf7adc022e0185b.js","mappings":"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","sources":["webpack:///./node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/break.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/code.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-quote.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/html.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/image.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/link.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-rule.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/strong.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-strong.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/index.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-fence.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/definition.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/heading.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/list.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/list-item.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/root.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/text.js","webpack:///./node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","webpack:///./node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js"],"sourcesContent":["/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').ConstructName} ConstructName\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\n\nemphasis.peek = emphasisPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker)\n exit()\n return value\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Html} Html\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').State} State\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = state.compilePattern(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').State} State\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Exit} Exit\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkStrong} from '../util/check-strong.js'\n\nstrong.peek = strongPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker + marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker + marker)\n exit()\n return value\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value =\n '&#x' +\n value.charCodeAt(0).toString(16).toUpperCase() +\n ';' +\n value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').State} State\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, function (node) {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? bullet === '.'\n ? ')'\n : '.'\n : checkBulletOther(state)\n let useDifferentMarker =\n parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'one'\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function (d) {\n return phrasing(d)\n })\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow\n return fn.call(state, node, info)\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n"],"names":["map","line","_","blank","listInScope","stack","list","none","length","index","includes","hardBreak","_1","state","info","unsafe","character","pattern","inConstruct","notInConstruct","test","before","checkQuote","marker","options","quote","Error","emphasis","node","checkEmphasis","exit","enter","tracker","createTracker","value","move","containerPhrasing","after","current","peek","html","suffix","subexit","safe","alt","url","title","imageReference","type","referenceType","reference","associationId","slice","inlineCode","sequence","RegExp","expression","compilePattern","match","atBreak","exec","position","charCodeAt","formatLinkAsAutolink","raw","Boolean","resourceLink","children","linkReference","text","checkBullet","bullet","checkRule","rule","strong","checkStrong","handle","blockquote","shift","indentLines","containerFlow","break","code","fence","checkFence","fences","lang","formatCodeAsIndented","repeat","Math","max","encode","meta","definition","heading","rank","min","depth","literalWithBreak","setext","formatHeadingAsSetext","lastIndexOf","toString","toUpperCase","closeAtx","image","link","parent","bulletCurrent","ordered","bulletOrdered","checkBulletOrdered","bulletOther","checkBulletOther","useDifferentMarker","bulletLastUsed","firstListItem","undefined","indexStack","item","listItem","listItemIndent","style","checkListItemIndent","start","incrementListMarker","indexOf","size","spread","ceil","paragraph","root","some","d","call","thematicBreak","ruleSpaces","repetition","ruleRepetition","checkRuleRepetition"],"sourceRoot":""}