knowledgebase_law/node_modules/.vite/deps/chunk-ZJALRI2F.js
2025-04-11 11:47:09 -04:00

4507 lines
131 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {
__publicField
} from "./chunk-2TUXWMP5.js";
// node_modules/devlop/lib/development.js
var AssertionError = class extends Error {
/**
* Create an assertion error.
*
* @param {string} message
* Message explaining error.
* @param {unknown} actual
* Value.
* @param {unknown} expected
* Baseline.
* @param {string} operator
* Name of equality operation.
* @param {boolean} generated
* Whether `message` is a custom message or not
* @returns
* Instance.
*/
// eslint-disable-next-line max-params
constructor(message, actual, expected, operator, generated) {
super(message);
__publicField(
this,
"name",
/** @type {const} */
"Assertion"
);
__publicField(
this,
"code",
/** @type {const} */
"ERR_ASSERTION"
);
if (Error.captureStackTrace) {
Error.captureStackTrace(this, this.constructor);
}
this.actual = actual;
this.expected = expected;
this.generated = generated;
this.operator = operator;
}
};
function ok(value, message) {
assert(
Boolean(value),
false,
true,
"ok",
"Expected value to be truthy",
message
);
}
function unreachable(message) {
assert(false, false, true, "ok", "Unreachable", message);
}
function assert(bool, actual, expected, operator, defaultMessage, userMessage) {
if (!bool) {
throw userMessage instanceof Error ? userMessage : new AssertionError(
userMessage || defaultMessage,
actual,
expected,
operator,
!userMessage
);
}
}
// node_modules/unist-util-is/lib/index.js
var convert = (
// Note: overloads in JSDoc cant yet use different `@template`s.
/**
* @type {(
* (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &
* (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &
* (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &
* ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &
* ((test?: Test) => Check)
* )}
*/
/**
* @param {Test} [test]
* @returns {Check}
*/
function(test) {
if (test === null || test === void 0) {
return ok2;
}
if (typeof test === "function") {
return castFactory(test);
}
if (typeof test === "object") {
return Array.isArray(test) ? anyFactory(test) : propsFactory(test);
}
if (typeof test === "string") {
return typeFactory(test);
}
throw new Error("Expected function, string, or object as test");
}
);
function anyFactory(tests) {
const checks = [];
let index = -1;
while (++index < tests.length) {
checks[index] = convert(tests[index]);
}
return castFactory(any);
function any(...parameters) {
let index2 = -1;
while (++index2 < checks.length) {
if (checks[index2].apply(this, parameters)) return true;
}
return false;
}
}
function propsFactory(check) {
const checkAsRecord = (
/** @type {Record<string, unknown>} */
check
);
return castFactory(all2);
function all2(node2) {
const nodeAsRecord = (
/** @type {Record<string, unknown>} */
/** @type {unknown} */
node2
);
let key;
for (key in check) {
if (nodeAsRecord[key] !== checkAsRecord[key]) return false;
}
return true;
}
}
function typeFactory(check) {
return castFactory(type);
function type(node2) {
return node2 && node2.type === check;
}
}
function castFactory(testFunction) {
return check;
function check(value, index, parent) {
return Boolean(
looksLikeANode(value) && testFunction.call(
this,
value,
typeof index === "number" ? index : void 0,
parent || void 0
)
);
}
}
function ok2() {
return true;
}
function looksLikeANode(value) {
return value !== null && typeof value === "object" && "type" in value;
}
// node_modules/unist-util-visit-parents/lib/color.js
function color(d) {
return d;
}
// node_modules/unist-util-visit-parents/lib/index.js
var empty = [];
var CONTINUE = true;
var EXIT = false;
var SKIP = "skip";
function visitParents(tree, test, visitor, reverse) {
let check;
if (typeof test === "function" && typeof visitor !== "function") {
reverse = visitor;
visitor = test;
} else {
check = test;
}
const is2 = convert(check);
const step = reverse ? -1 : 1;
factory(tree, void 0, [])();
function factory(node2, index, parents) {
const value = (
/** @type {Record<string, unknown>} */
node2 && typeof node2 === "object" ? node2 : {}
);
if (typeof value.type === "string") {
const name = (
// `hast`
typeof value.tagName === "string" ? value.tagName : (
// `xast`
typeof value.name === "string" ? value.name : void 0
)
);
Object.defineProperty(visit2, "name", {
value: "node (" + color(node2.type + (name ? "<" + name + ">" : "")) + ")"
});
}
return visit2;
function visit2() {
let result = empty;
let subresult;
let offset;
let grandparents;
if (!test || is2(node2, index, parents[parents.length - 1] || void 0)) {
result = toResult(visitor(node2, parents));
if (result[0] === EXIT) {
return result;
}
}
if ("children" in node2 && node2.children) {
const nodeAsParent = (
/** @type {UnistParent} */
node2
);
if (nodeAsParent.children && result[0] !== SKIP) {
offset = (reverse ? nodeAsParent.children.length : -1) + step;
grandparents = parents.concat(nodeAsParent);
while (offset > -1 && offset < nodeAsParent.children.length) {
const child = nodeAsParent.children[offset];
subresult = factory(child, offset, grandparents)();
if (subresult[0] === EXIT) {
return subresult;
}
offset = typeof subresult[1] === "number" ? subresult[1] : offset + step;
}
}
}
return result;
}
}
}
function toResult(value) {
if (Array.isArray(value)) {
return value;
}
if (typeof value === "number") {
return [CONTINUE, value];
}
return value === null || value === void 0 ? empty : [value];
}
// node_modules/unist-util-visit/lib/index.js
function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {
let reverse;
let test;
let visitor;
if (typeof testOrVisitor === "function" && typeof visitorOrReverse !== "function") {
test = void 0;
visitor = testOrVisitor;
reverse = visitorOrReverse;
} else {
test = testOrVisitor;
visitor = visitorOrReverse;
reverse = maybeReverse;
}
visitParents(tree, test, overload, reverse);
function overload(node2, parents) {
const parent = parents[parents.length - 1];
const index = parent ? parent.children.indexOf(node2) : void 0;
return visitor(node2, index, parent);
}
}
// node_modules/micromark-util-symbol/lib/codes.js
var codes = (
/** @type {const} */
{
carriageReturn: -5,
lineFeed: -4,
carriageReturnLineFeed: -3,
horizontalTab: -2,
virtualSpace: -1,
eof: null,
nul: 0,
soh: 1,
stx: 2,
etx: 3,
eot: 4,
enq: 5,
ack: 6,
bel: 7,
bs: 8,
ht: 9,
// `\t`
lf: 10,
// `\n`
vt: 11,
// `\v`
ff: 12,
// `\f`
cr: 13,
// `\r`
so: 14,
si: 15,
dle: 16,
dc1: 17,
dc2: 18,
dc3: 19,
dc4: 20,
nak: 21,
syn: 22,
etb: 23,
can: 24,
em: 25,
sub: 26,
esc: 27,
fs: 28,
gs: 29,
rs: 30,
us: 31,
space: 32,
exclamationMark: 33,
// `!`
quotationMark: 34,
// `"`
numberSign: 35,
// `#`
dollarSign: 36,
// `$`
percentSign: 37,
// `%`
ampersand: 38,
// `&`
apostrophe: 39,
// `'`
leftParenthesis: 40,
// `(`
rightParenthesis: 41,
// `)`
asterisk: 42,
// `*`
plusSign: 43,
// `+`
comma: 44,
// `,`
dash: 45,
// `-`
dot: 46,
// `.`
slash: 47,
// `/`
digit0: 48,
// `0`
digit1: 49,
// `1`
digit2: 50,
// `2`
digit3: 51,
// `3`
digit4: 52,
// `4`
digit5: 53,
// `5`
digit6: 54,
// `6`
digit7: 55,
// `7`
digit8: 56,
// `8`
digit9: 57,
// `9`
colon: 58,
// `:`
semicolon: 59,
// `;`
lessThan: 60,
// `<`
equalsTo: 61,
// `=`
greaterThan: 62,
// `>`
questionMark: 63,
// `?`
atSign: 64,
// `@`
uppercaseA: 65,
// `A`
uppercaseB: 66,
// `B`
uppercaseC: 67,
// `C`
uppercaseD: 68,
// `D`
uppercaseE: 69,
// `E`
uppercaseF: 70,
// `F`
uppercaseG: 71,
// `G`
uppercaseH: 72,
// `H`
uppercaseI: 73,
// `I`
uppercaseJ: 74,
// `J`
uppercaseK: 75,
// `K`
uppercaseL: 76,
// `L`
uppercaseM: 77,
// `M`
uppercaseN: 78,
// `N`
uppercaseO: 79,
// `O`
uppercaseP: 80,
// `P`
uppercaseQ: 81,
// `Q`
uppercaseR: 82,
// `R`
uppercaseS: 83,
// `S`
uppercaseT: 84,
// `T`
uppercaseU: 85,
// `U`
uppercaseV: 86,
// `V`
uppercaseW: 87,
// `W`
uppercaseX: 88,
// `X`
uppercaseY: 89,
// `Y`
uppercaseZ: 90,
// `Z`
leftSquareBracket: 91,
// `[`
backslash: 92,
// `\`
rightSquareBracket: 93,
// `]`
caret: 94,
// `^`
underscore: 95,
// `_`
graveAccent: 96,
// `` ` ``
lowercaseA: 97,
// `a`
lowercaseB: 98,
// `b`
lowercaseC: 99,
// `c`
lowercaseD: 100,
// `d`
lowercaseE: 101,
// `e`
lowercaseF: 102,
// `f`
lowercaseG: 103,
// `g`
lowercaseH: 104,
// `h`
lowercaseI: 105,
// `i`
lowercaseJ: 106,
// `j`
lowercaseK: 107,
// `k`
lowercaseL: 108,
// `l`
lowercaseM: 109,
// `m`
lowercaseN: 110,
// `n`
lowercaseO: 111,
// `o`
lowercaseP: 112,
// `p`
lowercaseQ: 113,
// `q`
lowercaseR: 114,
// `r`
lowercaseS: 115,
// `s`
lowercaseT: 116,
// `t`
lowercaseU: 117,
// `u`
lowercaseV: 118,
// `v`
lowercaseW: 119,
// `w`
lowercaseX: 120,
// `x`
lowercaseY: 121,
// `y`
lowercaseZ: 122,
// `z`
leftCurlyBrace: 123,
// `{`
verticalBar: 124,
// `|`
rightCurlyBrace: 125,
// `}`
tilde: 126,
// `~`
del: 127,
// Unicode Specials block.
byteOrderMarker: 65279,
// Unicode Specials block.
replacementCharacter: 65533
// `<60>`
}
);
// node_modules/micromark-util-symbol/lib/constants.js
var constants = (
/** @type {const} */
{
attentionSideAfter: 2,
// Symbol to mark an attention sequence as after content: `a*`
attentionSideBefore: 1,
// Symbol to mark an attention sequence as before content: `*a`
atxHeadingOpeningFenceSizeMax: 6,
// 6 number signs is fine, 7 isnt.
autolinkDomainSizeMax: 63,
// 63 characters is fine, 64 is too many.
autolinkSchemeSizeMax: 32,
// 32 characters is fine, 33 is too many.
cdataOpeningString: "CDATA[",
// And preceded by `<![`.
characterGroupPunctuation: 2,
// Symbol used to indicate a character is punctuation
characterGroupWhitespace: 1,
// Symbol used to indicate a character is whitespace
characterReferenceDecimalSizeMax: 7,
// `&#9999999;`.
characterReferenceHexadecimalSizeMax: 6,
// `&#xff9999;`.
characterReferenceNamedSizeMax: 31,
// `&CounterClockwiseContourIntegral;`.
codeFencedSequenceSizeMin: 3,
// At least 3 ticks or tildes are needed.
contentTypeContent: "content",
contentTypeDocument: "document",
contentTypeFlow: "flow",
contentTypeString: "string",
contentTypeText: "text",
hardBreakPrefixSizeMin: 2,
// At least 2 trailing spaces are needed.
htmlBasic: 6,
// Symbol for `<div`
htmlCdata: 5,
// Symbol for `<![CDATA[]]>`
htmlComment: 2,
// Symbol for `<!---->`
htmlComplete: 7,
// Symbol for `<x>`
htmlDeclaration: 4,
// Symbol for `<!doctype>`
htmlInstruction: 3,
// Symbol for `<?php?>`
htmlRawSizeMax: 8,
// Length of `textarea`.
htmlRaw: 1,
// Symbol for `<script>`
linkResourceDestinationBalanceMax: 32,
// See: <https://spec.commonmark.org/0.30/#link-destination>, <https://github.com/remarkjs/react-markdown/issues/658#issuecomment-984345577>
linkReferenceSizeMax: 999,
// See: <https://spec.commonmark.org/0.30/#link-label>
listItemValueSizeMax: 10,
// See: <https://spec.commonmark.org/0.30/#ordered-list-marker>
numericBaseDecimal: 10,
numericBaseHexadecimal: 16,
tabSize: 4,
// Tabs have a hard-coded size of 4, per CommonMark.
thematicBreakMarkerCountMin: 3,
// At least 3 asterisks, dashes, or underscores are needed.
v8MaxSafeChunkSize: 1e4
// V8 (and potentially others) have problems injecting giant arrays into other arrays, hence we operate in chunks.
}
);
// node_modules/micromark-util-symbol/lib/types.js
var types = (
/** @type {const} */
{
// Generic type for data, such as in a title, a destination, etc.
data: "data",
// Generic type for syntactic whitespace (tabs, virtual spaces, spaces).
// Such as, between a fenced code fence and an info string.
whitespace: "whitespace",
// Generic type for line endings (line feed, carriage return, carriage return +
// line feed).
lineEnding: "lineEnding",
// A line ending, but ending a blank line.
lineEndingBlank: "lineEndingBlank",
// Generic type for whitespace (tabs, virtual spaces, spaces) at the start of a
// line.
linePrefix: "linePrefix",
// Generic type for whitespace (tabs, virtual spaces, spaces) at the end of a
// line.
lineSuffix: "lineSuffix",
// Whole ATX heading:
//
// ```markdown
// #
// ## Alpha
// ### Bravo ###
// ```
//
// Includes `atxHeadingSequence`, `whitespace`, `atxHeadingText`.
atxHeading: "atxHeading",
// Sequence of number signs in an ATX heading (`###`).
atxHeadingSequence: "atxHeadingSequence",
// Content in an ATX heading (`alpha`).
// Includes text.
atxHeadingText: "atxHeadingText",
// Whole autolink (`<https://example.com>` or `<admin@example.com>`)
// Includes `autolinkMarker` and `autolinkProtocol` or `autolinkEmail`.
autolink: "autolink",
// Email autolink w/o markers (`admin@example.com`)
autolinkEmail: "autolinkEmail",
// Marker around an `autolinkProtocol` or `autolinkEmail` (`<` or `>`).
autolinkMarker: "autolinkMarker",
// Protocol autolink w/o markers (`https://example.com`)
autolinkProtocol: "autolinkProtocol",
// A whole character escape (`\-`).
// Includes `escapeMarker` and `characterEscapeValue`.
characterEscape: "characterEscape",
// The escaped character (`-`).
characterEscapeValue: "characterEscapeValue",
// A whole character reference (`&amp;`, `&#8800;`, or `&#x1D306;`).
// Includes `characterReferenceMarker`, an optional
// `characterReferenceMarkerNumeric`, in which case an optional
// `characterReferenceMarkerHexadecimal`, and a `characterReferenceValue`.
characterReference: "characterReference",
// The start or end marker (`&` or `;`).
characterReferenceMarker: "characterReferenceMarker",
// Mark reference as numeric (`#`).
characterReferenceMarkerNumeric: "characterReferenceMarkerNumeric",
// Mark reference as numeric (`x` or `X`).
characterReferenceMarkerHexadecimal: "characterReferenceMarkerHexadecimal",
// Value of character reference w/o markers (`amp`, `8800`, or `1D306`).
characterReferenceValue: "characterReferenceValue",
// Whole fenced code:
//
// ````markdown
// ```js
// alert(1)
// ```
// ````
codeFenced: "codeFenced",
// A fenced code fence, including whitespace, sequence, info, and meta
// (` ```js `).
codeFencedFence: "codeFencedFence",
// Sequence of grave accent or tilde characters (` ``` `) in a fence.
codeFencedFenceSequence: "codeFencedFenceSequence",
// Info word (`js`) in a fence.
// Includes string.
codeFencedFenceInfo: "codeFencedFenceInfo",
// Meta words (`highlight="1"`) in a fence.
// Includes string.
codeFencedFenceMeta: "codeFencedFenceMeta",
// A line of code.
codeFlowValue: "codeFlowValue",
// Whole indented code:
//
// ```markdown
// alert(1)
// ```
//
// Includes `lineEnding`, `linePrefix`, and `codeFlowValue`.
codeIndented: "codeIndented",
// A text code (``` `alpha` ```).
// Includes `codeTextSequence`, `codeTextData`, `lineEnding`, and can include
// `codeTextPadding`.
codeText: "codeText",
codeTextData: "codeTextData",
// A space or line ending right after or before a tick.
codeTextPadding: "codeTextPadding",
// A text code fence (` `` `).
codeTextSequence: "codeTextSequence",
// Whole content:
//
// ```markdown
// [a]: b
// c
// =
// d
// ```
//
// Includes `paragraph` and `definition`.
content: "content",
// Whole definition:
//
// ```markdown
// [micromark]: https://github.com/micromark/micromark
// ```
//
// Includes `definitionLabel`, `definitionMarker`, `whitespace`,
// `definitionDestination`, and optionally `lineEnding` and `definitionTitle`.
definition: "definition",
// Destination of a definition (`https://github.com/micromark/micromark` or
// `<https://github.com/micromark/micromark>`).
// Includes `definitionDestinationLiteral` or `definitionDestinationRaw`.
definitionDestination: "definitionDestination",
// Enclosed destination of a definition
// (`<https://github.com/micromark/micromark>`).
// Includes `definitionDestinationLiteralMarker` and optionally
// `definitionDestinationString`.
definitionDestinationLiteral: "definitionDestinationLiteral",
// Markers of an enclosed definition destination (`<` or `>`).
definitionDestinationLiteralMarker: "definitionDestinationLiteralMarker",
// Unenclosed destination of a definition
// (`https://github.com/micromark/micromark`).
// Includes `definitionDestinationString`.
definitionDestinationRaw: "definitionDestinationRaw",
// Text in an destination (`https://github.com/micromark/micromark`).
// Includes string.
definitionDestinationString: "definitionDestinationString",
// Label of a definition (`[micromark]`).
// Includes `definitionLabelMarker` and `definitionLabelString`.
definitionLabel: "definitionLabel",
// Markers of a definition label (`[` or `]`).
definitionLabelMarker: "definitionLabelMarker",
// Value of a definition label (`micromark`).
// Includes string.
definitionLabelString: "definitionLabelString",
// Marker between a label and a destination (`:`).
definitionMarker: "definitionMarker",
// Title of a definition (`"x"`, `'y'`, or `(z)`).
// Includes `definitionTitleMarker` and optionally `definitionTitleString`.
definitionTitle: "definitionTitle",
// Marker around a title of a definition (`"`, `'`, `(`, or `)`).
definitionTitleMarker: "definitionTitleMarker",
// Data without markers in a title (`z`).
// Includes string.
definitionTitleString: "definitionTitleString",
// Emphasis (`*alpha*`).
// Includes `emphasisSequence` and `emphasisText`.
emphasis: "emphasis",
// Sequence of emphasis markers (`*` or `_`).
emphasisSequence: "emphasisSequence",
// Emphasis text (`alpha`).
// Includes text.
emphasisText: "emphasisText",
// The character escape marker (`\`).
escapeMarker: "escapeMarker",
// A hard break created with a backslash (`\\n`).
// Note: does not include the line ending.
hardBreakEscape: "hardBreakEscape",
// A hard break created with trailing spaces (` \n`).
// Does not include the line ending.
hardBreakTrailing: "hardBreakTrailing",
// Flow HTML:
//
// ```markdown
// <div
// ```
//
// Inlcudes `lineEnding`, `htmlFlowData`.
htmlFlow: "htmlFlow",
htmlFlowData: "htmlFlowData",
// HTML in text (the tag in `a <i> b`).
// Includes `lineEnding`, `htmlTextData`.
htmlText: "htmlText",
htmlTextData: "htmlTextData",
// Whole image (`![alpha](bravo)`, `![alpha][bravo]`, `![alpha][]`, or
// `![alpha]`).
// Includes `label` and an optional `resource` or `reference`.
image: "image",
// Whole link label (`[*alpha*]`).
// Includes `labelLink` or `labelImage`, `labelText`, and `labelEnd`.
label: "label",
// Text in an label (`*alpha*`).
// Includes text.
labelText: "labelText",
// Start a link label (`[`).
// Includes a `labelMarker`.
labelLink: "labelLink",
// Start an image label (`![`).
// Includes `labelImageMarker` and `labelMarker`.
labelImage: "labelImage",
// Marker of a label (`[` or `]`).
labelMarker: "labelMarker",
// Marker to start an image (`!`).
labelImageMarker: "labelImageMarker",
// End a label (`]`).
// Includes `labelMarker`.
labelEnd: "labelEnd",
// Whole link (`[alpha](bravo)`, `[alpha][bravo]`, `[alpha][]`, or `[alpha]`).
// Includes `label` and an optional `resource` or `reference`.
link: "link",
// Whole paragraph:
//
// ```markdown
// alpha
// bravo.
// ```
//
// Includes text.
paragraph: "paragraph",
// A reference (`[alpha]` or `[]`).
// Includes `referenceMarker` and an optional `referenceString`.
reference: "reference",
// A reference marker (`[` or `]`).
referenceMarker: "referenceMarker",
// Reference text (`alpha`).
// Includes string.
referenceString: "referenceString",
// A resource (`(https://example.com "alpha")`).
// Includes `resourceMarker`, an optional `resourceDestination` with an optional
// `whitespace` and `resourceTitle`.
resource: "resource",
// A resource destination (`https://example.com`).
// Includes `resourceDestinationLiteral` or `resourceDestinationRaw`.
resourceDestination: "resourceDestination",
// A literal resource destination (`<https://example.com>`).
// Includes `resourceDestinationLiteralMarker` and optionally
// `resourceDestinationString`.
resourceDestinationLiteral: "resourceDestinationLiteral",
// A resource destination marker (`<` or `>`).
resourceDestinationLiteralMarker: "resourceDestinationLiteralMarker",
// A raw resource destination (`https://example.com`).
// Includes `resourceDestinationString`.
resourceDestinationRaw: "resourceDestinationRaw",
// Resource destination text (`https://example.com`).
// Includes string.
resourceDestinationString: "resourceDestinationString",
// A resource marker (`(` or `)`).
resourceMarker: "resourceMarker",
// A resource title (`"alpha"`, `'alpha'`, or `(alpha)`).
// Includes `resourceTitleMarker` and optionally `resourceTitleString`.
resourceTitle: "resourceTitle",
// A resource title marker (`"`, `'`, `(`, or `)`).
resourceTitleMarker: "resourceTitleMarker",
// Resource destination title (`alpha`).
// Includes string.
resourceTitleString: "resourceTitleString",
// Whole setext heading:
//
// ```markdown
// alpha
// bravo
// =====
// ```
//
// Includes `setextHeadingText`, `lineEnding`, `linePrefix`, and
// `setextHeadingLine`.
setextHeading: "setextHeading",
// Content in a setext heading (`alpha\nbravo`).
// Includes text.
setextHeadingText: "setextHeadingText",
// Underline in a setext heading, including whitespace suffix (`==`).
// Includes `setextHeadingLineSequence`.
setextHeadingLine: "setextHeadingLine",
// Sequence of equals or dash characters in underline in a setext heading (`-`).
setextHeadingLineSequence: "setextHeadingLineSequence",
// Strong (`**alpha**`).
// Includes `strongSequence` and `strongText`.
strong: "strong",
// Sequence of strong markers (`**` or `__`).
strongSequence: "strongSequence",
// Strong text (`alpha`).
// Includes text.
strongText: "strongText",
// Whole thematic break:
//
// ```markdown
// * * *
// ```
//
// Includes `thematicBreakSequence` and `whitespace`.
thematicBreak: "thematicBreak",
// A sequence of one or more thematic break markers (`***`).
thematicBreakSequence: "thematicBreakSequence",
// Whole block quote:
//
// ```markdown
// > a
// >
// > b
// ```
//
// Includes `blockQuotePrefix` and flow.
blockQuote: "blockQuote",
// The `>` or `> ` of a block quote.
blockQuotePrefix: "blockQuotePrefix",
// The `>` of a block quote prefix.
blockQuoteMarker: "blockQuoteMarker",
// The optional ` ` of a block quote prefix.
blockQuotePrefixWhitespace: "blockQuotePrefixWhitespace",
// Whole ordered list:
//
// ```markdown
// 1. a
// b
// ```
//
// Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
// lines.
listOrdered: "listOrdered",
// Whole unordered list:
//
// ```markdown
// - a
// b
// ```
//
// Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further
// lines.
listUnordered: "listUnordered",
// The indent of further list item lines.
listItemIndent: "listItemIndent",
// A marker, as in, `*`, `+`, `-`, `.`, or `)`.
listItemMarker: "listItemMarker",
// The thing that starts a list item, such as `1. `.
// Includes `listItemValue` if ordered, `listItemMarker`, and
// `listItemPrefixWhitespace` (unless followed by a line ending).
listItemPrefix: "listItemPrefix",
// The whitespace after a marker.
listItemPrefixWhitespace: "listItemPrefixWhitespace",
// The numerical value of an ordered item.
listItemValue: "listItemValue",
// Internal types used for subtokenizers, compiled away
chunkDocument: "chunkDocument",
chunkContent: "chunkContent",
chunkFlow: "chunkFlow",
chunkText: "chunkText",
chunkString: "chunkString"
}
);
// node_modules/micromark-util-symbol/lib/values.js
var values = (
/** @type {const} */
{
ht: " ",
lf: "\n",
cr: "\r",
space: " ",
exclamationMark: "!",
quotationMark: '"',
numberSign: "#",
dollarSign: "$",
percentSign: "%",
ampersand: "&",
apostrophe: "'",
leftParenthesis: "(",
rightParenthesis: ")",
asterisk: "*",
plusSign: "+",
comma: ",",
dash: "-",
dot: ".",
slash: "/",
digit0: "0",
digit1: "1",
digit2: "2",
digit3: "3",
digit4: "4",
digit5: "5",
digit6: "6",
digit7: "7",
digit8: "8",
digit9: "9",
colon: ":",
semicolon: ";",
lessThan: "<",
equalsTo: "=",
greaterThan: ">",
questionMark: "?",
atSign: "@",
uppercaseA: "A",
uppercaseB: "B",
uppercaseC: "C",
uppercaseD: "D",
uppercaseE: "E",
uppercaseF: "F",
uppercaseG: "G",
uppercaseH: "H",
uppercaseI: "I",
uppercaseJ: "J",
uppercaseK: "K",
uppercaseL: "L",
uppercaseM: "M",
uppercaseN: "N",
uppercaseO: "O",
uppercaseP: "P",
uppercaseQ: "Q",
uppercaseR: "R",
uppercaseS: "S",
uppercaseT: "T",
uppercaseU: "U",
uppercaseV: "V",
uppercaseW: "W",
uppercaseX: "X",
uppercaseY: "Y",
uppercaseZ: "Z",
leftSquareBracket: "[",
backslash: "\\",
rightSquareBracket: "]",
caret: "^",
underscore: "_",
graveAccent: "`",
lowercaseA: "a",
lowercaseB: "b",
lowercaseC: "c",
lowercaseD: "d",
lowercaseE: "e",
lowercaseF: "f",
lowercaseG: "g",
lowercaseH: "h",
lowercaseI: "i",
lowercaseJ: "j",
lowercaseK: "k",
lowercaseL: "l",
lowercaseM: "m",
lowercaseN: "n",
lowercaseO: "o",
lowercaseP: "p",
lowercaseQ: "q",
lowercaseR: "r",
lowercaseS: "s",
lowercaseT: "t",
lowercaseU: "u",
lowercaseV: "v",
lowercaseW: "w",
lowercaseX: "x",
lowercaseY: "y",
lowercaseZ: "z",
leftCurlyBrace: "{",
verticalBar: "|",
rightCurlyBrace: "}",
tilde: "~",
replacementCharacter: "<22>"
}
);
// node_modules/micromark-util-chunked/dev/index.js
function splice(list2, start, remove, items) {
const end = list2.length;
let chunkStart = 0;
let parameters;
if (start < 0) {
start = -start > end ? 0 : end + start;
} else {
start = start > end ? end : start;
}
remove = remove > 0 ? remove : 0;
if (items.length < constants.v8MaxSafeChunkSize) {
parameters = Array.from(items);
parameters.unshift(start, remove);
list2.splice(...parameters);
} else {
if (remove) list2.splice(start, remove);
while (chunkStart < items.length) {
parameters = items.slice(
chunkStart,
chunkStart + constants.v8MaxSafeChunkSize
);
parameters.unshift(start, 0);
list2.splice(...parameters);
chunkStart += constants.v8MaxSafeChunkSize;
start += constants.v8MaxSafeChunkSize;
}
}
}
function push(list2, items) {
if (list2.length > 0) {
splice(list2, list2.length, 0, items);
return list2;
}
return items;
}
// node_modules/micromark-util-combine-extensions/index.js
var hasOwnProperty = {}.hasOwnProperty;
function combineExtensions(extensions) {
const all2 = {};
let index = -1;
while (++index < extensions.length) {
syntaxExtension(all2, extensions[index]);
}
return all2;
}
function syntaxExtension(all2, extension) {
let hook;
for (hook in extension) {
const maybe = hasOwnProperty.call(all2, hook) ? all2[hook] : void 0;
const left = maybe || (all2[hook] = {});
const right = extension[hook];
let code;
if (right) {
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] : []
);
}
}
}
}
function constructs(existing, list2) {
let index = -1;
const before = [];
while (++index < list2.length) {
;
(list2[index].add === "after" ? existing : before).push(list2[index]);
}
splice(existing, 0, 0, before);
}
// node_modules/mdast-util-to-string/lib/index.js
var emptyOptions = {};
function toString(value, options) {
const settings = options || emptyOptions;
const includeImageAlt = typeof settings.includeImageAlt === "boolean" ? settings.includeImageAlt : true;
const includeHtml = typeof settings.includeHtml === "boolean" ? settings.includeHtml : true;
return one(value, includeImageAlt, includeHtml);
}
function one(value, includeImageAlt, includeHtml) {
if (node(value)) {
if ("value" in value) {
return value.type === "html" && !includeHtml ? "" : value.value;
}
if (includeImageAlt && "alt" in value && value.alt) {
return value.alt;
}
if ("children" in value) {
return all(value.children, includeImageAlt, includeHtml);
}
}
if (Array.isArray(value)) {
return all(value, includeImageAlt, includeHtml);
}
return "";
}
function all(values2, includeImageAlt, includeHtml) {
const result = [];
let index = -1;
while (++index < values2.length) {
result[index] = one(values2[index], includeImageAlt, includeHtml);
}
return result.join("");
}
function node(value) {
return Boolean(value && typeof value === "object");
}
// node_modules/decode-named-character-reference/index.dom.js
var element = document.createElement("i");
function decodeNamedCharacterReference(value) {
const characterReference2 = "&" + value + ";";
element.innerHTML = characterReference2;
const character = element.textContent;
if (
// @ts-expect-error: TypeScript is wrong that `textContent` on elements can
// yield `null`.
character.charCodeAt(character.length - 1) === 59 && value !== "semi"
) {
return false;
}
return character === characterReference2 ? false : character;
}
// node_modules/micromark-util-decode-numeric-character-reference/dev/index.js
function decodeNumericCharacterReference(value, base) {
const code = Number.parseInt(value, base);
if (
// C0 except for HT, LF, FF, CR, space.
code < codes.ht || code === codes.vt || code > codes.cr && code < codes.space || // Control character (DEL) of C0, and C1 controls.
code > codes.tilde && code < 160 || // Lone high surrogates and low surrogates.
code > 55295 && code < 57344 || // Noncharacters.
code > 64975 && code < 65008 || /* eslint-disable no-bitwise */
(code & 65535) === 65535 || (code & 65535) === 65534 || /* eslint-enable no-bitwise */
// Out of range
code > 1114111
) {
return values.replacementCharacter;
}
return String.fromCodePoint(code);
}
// node_modules/micromark-util-normalize-identifier/dev/index.js
function normalizeIdentifier(value) {
return value.replace(/[\t\n\r ]+/g, values.space).replace(/^ | $/g, "").toLowerCase().toUpperCase();
}
// node_modules/micromark-util-character/dev/index.js
var asciiAlpha = regexCheck(/[A-Za-z]/);
var asciiAlphanumeric = regexCheck(/[\dA-Za-z]/);
var asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/);
function asciiControl(code) {
return (
// Special whitespace codes (which have negative values), C0 and Control
// character DEL
code !== null && (code < codes.space || code === codes.del)
);
}
var asciiDigit = regexCheck(/\d/);
var asciiHexDigit = regexCheck(/[\dA-Fa-f]/);
var asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);
function markdownLineEnding(code) {
return code !== null && code < codes.horizontalTab;
}
function markdownLineEndingOrSpace(code) {
return code !== null && (code < codes.nul || code === codes.space);
}
function markdownSpace(code) {
return code === codes.horizontalTab || code === codes.virtualSpace || code === codes.space;
}
var unicodePunctuation = regexCheck(new RegExp("\\p{P}|\\p{S}", "u"));
var unicodeWhitespace = regexCheck(/\s/);
function regexCheck(regex) {
return check;
function check(code) {
return code !== null && code > -1 && regex.test(String.fromCharCode(code));
}
}
// node_modules/micromark-util-sanitize-uri/dev/index.js
function normalizeUri(value) {
const result = [];
let index = -1;
let start = 0;
let skip = 0;
while (++index < value.length) {
const code = value.charCodeAt(index);
let replace = "";
if (code === codes.percentSign && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {
skip = 2;
} else if (code < 128) {
if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {
replace = String.fromCharCode(code);
}
} else if (code > 55295 && code < 57344) {
const next = value.charCodeAt(index + 1);
if (code < 56320 && next > 56319 && next < 57344) {
replace = String.fromCharCode(code, next);
skip = 1;
} else {
replace = values.replacementCharacter;
}
} else {
replace = String.fromCharCode(code);
}
if (replace) {
result.push(value.slice(start, index), encodeURIComponent(replace));
start = index + skip + 1;
replace = "";
}
if (skip) {
index += skip;
skip = 0;
}
}
return result.join("") + value.slice(start);
}
// node_modules/micromark-factory-space/dev/index.js
function factorySpace(effects, ok3, type, max) {
const limit = max ? max - 1 : Number.POSITIVE_INFINITY;
let size = 0;
return start;
function start(code) {
if (markdownSpace(code)) {
effects.enter(type);
return prefix(code);
}
return ok3(code);
}
function prefix(code) {
if (markdownSpace(code) && size++ < limit) {
effects.consume(code);
return prefix;
}
effects.exit(type);
return ok3(code);
}
}
// node_modules/micromark-util-classify-character/dev/index.js
function classifyCharacter(code) {
if (code === codes.eof || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {
return constants.characterGroupWhitespace;
}
if (unicodePunctuation(code)) {
return constants.characterGroupPunctuation;
}
}
// node_modules/micromark-util-resolve-all/index.js
function resolveAll(constructs2, events, context) {
const called = [];
let index = -1;
while (++index < constructs2.length) {
const resolve = constructs2[index].resolveAll;
if (resolve && !called.includes(resolve)) {
events = resolve(events, context);
called.push(resolve);
}
}
return events;
}
// node_modules/micromark-core-commonmark/dev/lib/blank-line.js
var blankLine = { partial: true, tokenize: tokenizeBlankLine };
function tokenizeBlankLine(effects, ok3, nok) {
return start;
function start(code) {
return markdownSpace(code) ? factorySpace(effects, after, types.linePrefix)(code) : after(code);
}
function after(code) {
return code === codes.eof || markdownLineEnding(code) ? ok3(code) : nok(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/attention.js
var attention = {
name: "attention",
resolveAll: resolveAllAttention,
tokenize: tokenizeAttention
};
function resolveAllAttention(events, context) {
let index = -1;
let open;
let group;
let text;
let openingSequence;
let closingSequence;
let use;
let nextEvents;
let offset;
while (++index < events.length) {
if (events[index][0] === "enter" && events[index][1].type === "attentionSequence" && events[index][1]._close) {
open = index;
while (open--) {
if (events[open][0] === "exit" && events[open][1].type === "attentionSequence" && events[open][1]._open && // If the markers are the same:
context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {
if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {
continue;
}
use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;
const start = { ...events[open][1].end };
const end = { ...events[index][1].start };
movePoint(start, -use);
movePoint(end, use);
openingSequence = {
type: use > 1 ? types.strongSequence : types.emphasisSequence,
start,
end: { ...events[open][1].end }
};
closingSequence = {
type: use > 1 ? types.strongSequence : types.emphasisSequence,
start: { ...events[index][1].start },
end
};
text = {
type: use > 1 ? types.strongText : types.emphasisText,
start: { ...events[open][1].end },
end: { ...events[index][1].start }
};
group = {
type: use > 1 ? types.strong : types.emphasis,
start: { ...openingSequence.start },
end: { ...closingSequence.end }
};
events[open][1].end = { ...openingSequence.start };
events[index][1].start = { ...closingSequence.end };
nextEvents = [];
if (events[open][1].end.offset - events[open][1].start.offset) {
nextEvents = push(nextEvents, [
["enter", events[open][1], context],
["exit", events[open][1], context]
]);
}
nextEvents = push(nextEvents, [
["enter", group, context],
["enter", openingSequence, context],
["exit", openingSequence, context],
["enter", text, context]
]);
ok(
context.parser.constructs.insideSpan.null,
"expected `insideSpan` to be populated"
);
nextEvents = push(
nextEvents,
resolveAll(
context.parser.constructs.insideSpan.null,
events.slice(open + 1, index),
context
)
);
nextEvents = push(nextEvents, [
["exit", text, context],
["enter", closingSequence, context],
["exit", closingSequence, context],
["exit", group, context]
]);
if (events[index][1].end.offset - events[index][1].start.offset) {
offset = 2;
nextEvents = push(nextEvents, [
["enter", events[index][1], context],
["exit", events[index][1], context]
]);
} else {
offset = 0;
}
splice(events, open - 1, index - open + 3, nextEvents);
index = open + nextEvents.length - offset - 2;
break;
}
}
}
}
index = -1;
while (++index < events.length) {
if (events[index][1].type === "attentionSequence") {
events[index][1].type = "data";
}
}
return events;
}
function tokenizeAttention(effects, ok3) {
const attentionMarkers = this.parser.constructs.attentionMarkers.null;
const previous2 = this.previous;
const before = classifyCharacter(previous2);
let marker;
return start;
function start(code) {
ok(
code === codes.asterisk || code === codes.underscore,
"expected asterisk or underscore"
);
marker = code;
effects.enter("attentionSequence");
return inside(code);
}
function inside(code) {
if (code === marker) {
effects.consume(code);
return inside;
}
const token = effects.exit("attentionSequence");
const after = classifyCharacter(code);
ok(attentionMarkers, "expected `attentionMarkers` to be populated");
const open = !after || after === constants.characterGroupPunctuation && before || attentionMarkers.includes(code);
const close = !before || before === constants.characterGroupPunctuation && after || attentionMarkers.includes(previous2);
token._open = Boolean(
marker === codes.asterisk ? open : open && (before || !close)
);
token._close = Boolean(
marker === codes.asterisk ? close : close && (after || !open)
);
return ok3(code);
}
}
function movePoint(point, offset) {
point.column += offset;
point.offset += offset;
point._bufferIndex += offset;
}
// node_modules/micromark-core-commonmark/dev/lib/autolink.js
var autolink = { name: "autolink", tokenize: tokenizeAutolink };
function tokenizeAutolink(effects, ok3, nok) {
let size = 0;
return start;
function start(code) {
ok(code === codes.lessThan, "expected `<`");
effects.enter(types.autolink);
effects.enter(types.autolinkMarker);
effects.consume(code);
effects.exit(types.autolinkMarker);
effects.enter(types.autolinkProtocol);
return open;
}
function open(code) {
if (asciiAlpha(code)) {
effects.consume(code);
return schemeOrEmailAtext;
}
if (code === codes.atSign) {
return nok(code);
}
return emailAtext(code);
}
function schemeOrEmailAtext(code) {
if (code === codes.plusSign || code === codes.dash || code === codes.dot || asciiAlphanumeric(code)) {
size = 1;
return schemeInsideOrEmailAtext(code);
}
return emailAtext(code);
}
function schemeInsideOrEmailAtext(code) {
if (code === codes.colon) {
effects.consume(code);
size = 0;
return urlInside;
}
if ((code === codes.plusSign || code === codes.dash || code === codes.dot || asciiAlphanumeric(code)) && size++ < constants.autolinkSchemeSizeMax) {
effects.consume(code);
return schemeInsideOrEmailAtext;
}
size = 0;
return emailAtext(code);
}
function urlInside(code) {
if (code === codes.greaterThan) {
effects.exit(types.autolinkProtocol);
effects.enter(types.autolinkMarker);
effects.consume(code);
effects.exit(types.autolinkMarker);
effects.exit(types.autolink);
return ok3;
}
if (code === codes.eof || code === codes.space || code === codes.lessThan || asciiControl(code)) {
return nok(code);
}
effects.consume(code);
return urlInside;
}
function emailAtext(code) {
if (code === codes.atSign) {
effects.consume(code);
return emailAtSignOrDot;
}
if (asciiAtext(code)) {
effects.consume(code);
return emailAtext;
}
return nok(code);
}
function emailAtSignOrDot(code) {
return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);
}
function emailLabel(code) {
if (code === codes.dot) {
effects.consume(code);
size = 0;
return emailAtSignOrDot;
}
if (code === codes.greaterThan) {
effects.exit(types.autolinkProtocol).type = types.autolinkEmail;
effects.enter(types.autolinkMarker);
effects.consume(code);
effects.exit(types.autolinkMarker);
effects.exit(types.autolink);
return ok3;
}
return emailValue(code);
}
function emailValue(code) {
if ((code === codes.dash || asciiAlphanumeric(code)) && size++ < constants.autolinkDomainSizeMax) {
const next = code === codes.dash ? emailValue : emailLabel;
effects.consume(code);
return next;
}
return nok(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/block-quote.js
var blockQuote = {
continuation: { tokenize: tokenizeBlockQuoteContinuation },
exit,
name: "blockQuote",
tokenize: tokenizeBlockQuoteStart
};
function tokenizeBlockQuoteStart(effects, ok3, nok) {
const self = this;
return start;
function start(code) {
if (code === codes.greaterThan) {
const state = self.containerState;
ok(state, "expected `containerState` to be defined in container");
if (!state.open) {
effects.enter(types.blockQuote, { _container: true });
state.open = true;
}
effects.enter(types.blockQuotePrefix);
effects.enter(types.blockQuoteMarker);
effects.consume(code);
effects.exit(types.blockQuoteMarker);
return after;
}
return nok(code);
}
function after(code) {
if (markdownSpace(code)) {
effects.enter(types.blockQuotePrefixWhitespace);
effects.consume(code);
effects.exit(types.blockQuotePrefixWhitespace);
effects.exit(types.blockQuotePrefix);
return ok3;
}
effects.exit(types.blockQuotePrefix);
return ok3(code);
}
}
function tokenizeBlockQuoteContinuation(effects, ok3, nok) {
const self = this;
return contStart;
function contStart(code) {
if (markdownSpace(code)) {
ok(
self.parser.constructs.disable.null,
"expected `disable.null` to be populated"
);
return factorySpace(
effects,
contBefore,
types.linePrefix,
self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : constants.tabSize
)(code);
}
return contBefore(code);
}
function contBefore(code) {
return effects.attempt(blockQuote, ok3, nok)(code);
}
}
function exit(effects) {
effects.exit(types.blockQuote);
}
// node_modules/micromark-core-commonmark/dev/lib/character-escape.js
var characterEscape = {
name: "characterEscape",
tokenize: tokenizeCharacterEscape
};
function tokenizeCharacterEscape(effects, ok3, nok) {
return start;
function start(code) {
ok(code === codes.backslash, "expected `\\`");
effects.enter(types.characterEscape);
effects.enter(types.escapeMarker);
effects.consume(code);
effects.exit(types.escapeMarker);
return inside;
}
function inside(code) {
if (asciiPunctuation(code)) {
effects.enter(types.characterEscapeValue);
effects.consume(code);
effects.exit(types.characterEscapeValue);
effects.exit(types.characterEscape);
return ok3;
}
return nok(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/character-reference.js
var characterReference = {
name: "characterReference",
tokenize: tokenizeCharacterReference
};
function tokenizeCharacterReference(effects, ok3, nok) {
const self = this;
let size = 0;
let max;
let test;
return start;
function start(code) {
ok(code === codes.ampersand, "expected `&`");
effects.enter(types.characterReference);
effects.enter(types.characterReferenceMarker);
effects.consume(code);
effects.exit(types.characterReferenceMarker);
return open;
}
function open(code) {
if (code === codes.numberSign) {
effects.enter(types.characterReferenceMarkerNumeric);
effects.consume(code);
effects.exit(types.characterReferenceMarkerNumeric);
return numeric;
}
effects.enter(types.characterReferenceValue);
max = constants.characterReferenceNamedSizeMax;
test = asciiAlphanumeric;
return value(code);
}
function numeric(code) {
if (code === codes.uppercaseX || code === codes.lowercaseX) {
effects.enter(types.characterReferenceMarkerHexadecimal);
effects.consume(code);
effects.exit(types.characterReferenceMarkerHexadecimal);
effects.enter(types.characterReferenceValue);
max = constants.characterReferenceHexadecimalSizeMax;
test = asciiHexDigit;
return value;
}
effects.enter(types.characterReferenceValue);
max = constants.characterReferenceDecimalSizeMax;
test = asciiDigit;
return value(code);
}
function value(code) {
if (code === codes.semicolon && size) {
const token = effects.exit(types.characterReferenceValue);
if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {
return nok(code);
}
effects.enter(types.characterReferenceMarker);
effects.consume(code);
effects.exit(types.characterReferenceMarker);
effects.exit(types.characterReference);
return ok3;
}
if (test(code) && size++ < max) {
effects.consume(code);
return value;
}
return nok(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/code-fenced.js
var nonLazyContinuation = {
partial: true,
tokenize: tokenizeNonLazyContinuation
};
var codeFenced = {
concrete: true,
name: "codeFenced",
tokenize: tokenizeCodeFenced
};
function tokenizeCodeFenced(effects, ok3, nok) {
const self = this;
const closeStart = { partial: true, tokenize: tokenizeCloseStart };
let initialPrefix = 0;
let sizeOpen = 0;
let marker;
return start;
function start(code) {
return beforeSequenceOpen(code);
}
function beforeSequenceOpen(code) {
ok(
code === codes.graveAccent || code === codes.tilde,
"expected `` ` `` or `~`"
);
const tail = self.events[self.events.length - 1];
initialPrefix = tail && tail[1].type === types.linePrefix ? tail[2].sliceSerialize(tail[1], true).length : 0;
marker = code;
effects.enter(types.codeFenced);
effects.enter(types.codeFencedFence);
effects.enter(types.codeFencedFenceSequence);
return sequenceOpen(code);
}
function sequenceOpen(code) {
if (code === marker) {
sizeOpen++;
effects.consume(code);
return sequenceOpen;
}
if (sizeOpen < constants.codeFencedSequenceSizeMin) {
return nok(code);
}
effects.exit(types.codeFencedFenceSequence);
return markdownSpace(code) ? factorySpace(effects, infoBefore, types.whitespace)(code) : infoBefore(code);
}
function infoBefore(code) {
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.codeFencedFence);
return self.interrupt ? ok3(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);
}
effects.enter(types.codeFencedFenceInfo);
effects.enter(types.chunkString, { contentType: constants.contentTypeString });
return info(code);
}
function info(code) {
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.chunkString);
effects.exit(types.codeFencedFenceInfo);
return infoBefore(code);
}
if (markdownSpace(code)) {
effects.exit(types.chunkString);
effects.exit(types.codeFencedFenceInfo);
return factorySpace(effects, metaBefore, types.whitespace)(code);
}
if (code === codes.graveAccent && code === marker) {
return nok(code);
}
effects.consume(code);
return info;
}
function metaBefore(code) {
if (code === codes.eof || markdownLineEnding(code)) {
return infoBefore(code);
}
effects.enter(types.codeFencedFenceMeta);
effects.enter(types.chunkString, { contentType: constants.contentTypeString });
return meta(code);
}
function meta(code) {
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.chunkString);
effects.exit(types.codeFencedFenceMeta);
return infoBefore(code);
}
if (code === codes.graveAccent && code === marker) {
return nok(code);
}
effects.consume(code);
return meta;
}
function atNonLazyBreak(code) {
ok(markdownLineEnding(code), "expected eol");
return effects.attempt(closeStart, after, contentBefore)(code);
}
function contentBefore(code) {
ok(markdownLineEnding(code), "expected eol");
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return contentStart;
}
function contentStart(code) {
return initialPrefix > 0 && markdownSpace(code) ? factorySpace(
effects,
beforeContentChunk,
types.linePrefix,
initialPrefix + 1
)(code) : beforeContentChunk(code);
}
function beforeContentChunk(code) {
if (code === codes.eof || markdownLineEnding(code)) {
return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);
}
effects.enter(types.codeFlowValue);
return contentChunk(code);
}
function contentChunk(code) {
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.codeFlowValue);
return beforeContentChunk(code);
}
effects.consume(code);
return contentChunk;
}
function after(code) {
effects.exit(types.codeFenced);
return ok3(code);
}
function tokenizeCloseStart(effects2, ok4, nok2) {
let size = 0;
return startBefore;
function startBefore(code) {
ok(markdownLineEnding(code), "expected eol");
effects2.enter(types.lineEnding);
effects2.consume(code);
effects2.exit(types.lineEnding);
return start2;
}
function start2(code) {
ok(
self.parser.constructs.disable.null,
"expected `disable.null` to be populated"
);
effects2.enter(types.codeFencedFence);
return markdownSpace(code) ? factorySpace(
effects2,
beforeSequenceClose,
types.linePrefix,
self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : constants.tabSize
)(code) : beforeSequenceClose(code);
}
function beforeSequenceClose(code) {
if (code === marker) {
effects2.enter(types.codeFencedFenceSequence);
return sequenceClose(code);
}
return nok2(code);
}
function sequenceClose(code) {
if (code === marker) {
size++;
effects2.consume(code);
return sequenceClose;
}
if (size >= sizeOpen) {
effects2.exit(types.codeFencedFenceSequence);
return markdownSpace(code) ? factorySpace(effects2, sequenceCloseAfter, types.whitespace)(code) : sequenceCloseAfter(code);
}
return nok2(code);
}
function sequenceCloseAfter(code) {
if (code === codes.eof || markdownLineEnding(code)) {
effects2.exit(types.codeFencedFence);
return ok4(code);
}
return nok2(code);
}
}
}
function tokenizeNonLazyContinuation(effects, ok3, nok) {
const self = this;
return start;
function start(code) {
if (code === codes.eof) {
return nok(code);
}
ok(markdownLineEnding(code), "expected eol");
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return lineStart;
}
function lineStart(code) {
return self.parser.lazy[self.now().line] ? nok(code) : ok3(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/code-indented.js
var codeIndented = {
name: "codeIndented",
tokenize: tokenizeCodeIndented
};
var furtherStart = { partial: true, tokenize: tokenizeFurtherStart };
function tokenizeCodeIndented(effects, ok3, nok) {
const self = this;
return start;
function start(code) {
ok(markdownSpace(code));
effects.enter(types.codeIndented);
return factorySpace(
effects,
afterPrefix,
types.linePrefix,
constants.tabSize + 1
)(code);
}
function afterPrefix(code) {
const tail = self.events[self.events.length - 1];
return tail && tail[1].type === types.linePrefix && tail[2].sliceSerialize(tail[1], true).length >= constants.tabSize ? atBreak(code) : nok(code);
}
function atBreak(code) {
if (code === codes.eof) {
return after(code);
}
if (markdownLineEnding(code)) {
return effects.attempt(furtherStart, atBreak, after)(code);
}
effects.enter(types.codeFlowValue);
return inside(code);
}
function inside(code) {
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.codeFlowValue);
return atBreak(code);
}
effects.consume(code);
return inside;
}
function after(code) {
effects.exit(types.codeIndented);
return ok3(code);
}
}
function tokenizeFurtherStart(effects, ok3, nok) {
const self = this;
return furtherStart2;
function furtherStart2(code) {
if (self.parser.lazy[self.now().line]) {
return nok(code);
}
if (markdownLineEnding(code)) {
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return furtherStart2;
}
return factorySpace(
effects,
afterPrefix,
types.linePrefix,
constants.tabSize + 1
)(code);
}
function afterPrefix(code) {
const tail = self.events[self.events.length - 1];
return tail && tail[1].type === types.linePrefix && tail[2].sliceSerialize(tail[1], true).length >= constants.tabSize ? ok3(code) : markdownLineEnding(code) ? furtherStart2(code) : nok(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/code-text.js
var codeText = {
name: "codeText",
previous,
resolve: resolveCodeText,
tokenize: tokenizeCodeText
};
function resolveCodeText(events) {
let tailExitIndex = events.length - 4;
let headEnterIndex = 3;
let index;
let enter;
if ((events[headEnterIndex][1].type === types.lineEnding || events[headEnterIndex][1].type === "space") && (events[tailExitIndex][1].type === types.lineEnding || events[tailExitIndex][1].type === "space")) {
index = headEnterIndex;
while (++index < tailExitIndex) {
if (events[index][1].type === types.codeTextData) {
events[headEnterIndex][1].type = types.codeTextPadding;
events[tailExitIndex][1].type = types.codeTextPadding;
headEnterIndex += 2;
tailExitIndex -= 2;
break;
}
}
}
index = headEnterIndex - 1;
tailExitIndex++;
while (++index <= tailExitIndex) {
if (enter === void 0) {
if (index !== tailExitIndex && events[index][1].type !== types.lineEnding) {
enter = index;
}
} else if (index === tailExitIndex || events[index][1].type === types.lineEnding) {
events[enter][1].type = types.codeTextData;
if (index !== enter + 2) {
events[enter][1].end = events[index - 1][1].end;
events.splice(enter + 2, index - enter - 2);
tailExitIndex -= index - enter - 2;
index = enter + 2;
}
enter = void 0;
}
}
return events;
}
function previous(code) {
return code !== codes.graveAccent || this.events[this.events.length - 1][1].type === types.characterEscape;
}
function tokenizeCodeText(effects, ok3, nok) {
const self = this;
let sizeOpen = 0;
let size;
let token;
return start;
function start(code) {
ok(code === codes.graveAccent, "expected `` ` ``");
ok(previous.call(self, self.previous), "expected correct previous");
effects.enter(types.codeText);
effects.enter(types.codeTextSequence);
return sequenceOpen(code);
}
function sequenceOpen(code) {
if (code === codes.graveAccent) {
effects.consume(code);
sizeOpen++;
return sequenceOpen;
}
effects.exit(types.codeTextSequence);
return between(code);
}
function between(code) {
if (code === codes.eof) {
return nok(code);
}
if (code === codes.space) {
effects.enter("space");
effects.consume(code);
effects.exit("space");
return between;
}
if (code === codes.graveAccent) {
token = effects.enter(types.codeTextSequence);
size = 0;
return sequenceClose(code);
}
if (markdownLineEnding(code)) {
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return between;
}
effects.enter(types.codeTextData);
return data(code);
}
function data(code) {
if (code === codes.eof || code === codes.space || code === codes.graveAccent || markdownLineEnding(code)) {
effects.exit(types.codeTextData);
return between(code);
}
effects.consume(code);
return data;
}
function sequenceClose(code) {
if (code === codes.graveAccent) {
effects.consume(code);
size++;
return sequenceClose;
}
if (size === sizeOpen) {
effects.exit(types.codeTextSequence);
effects.exit(types.codeText);
return ok3(code);
}
token.type = types.codeTextData;
return data(code);
}
}
// node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js
var SpliceBuffer = class {
/**
* @param {ReadonlyArray<T> | null | undefined} [initial]
* Initial items (optional).
* @returns
* Splice buffer.
*/
constructor(initial) {
this.left = initial ? [...initial] : [];
this.right = [];
}
/**
* Array access;
* does not move the cursor.
*
* @param {number} index
* Index.
* @return {T}
* Item.
*/
get(index) {
if (index < 0 || index >= this.left.length + this.right.length) {
throw new RangeError(
"Cannot access index `" + index + "` in a splice buffer of size `" + (this.left.length + this.right.length) + "`"
);
}
if (index < this.left.length) return this.left[index];
return this.right[this.right.length - index + this.left.length - 1];
}
/**
* The length of the splice buffer, one greater than the largest index in the
* array.
*/
get length() {
return this.left.length + this.right.length;
}
/**
* Remove and return `list[0]`;
* moves the cursor to `0`.
*
* @returns {T | undefined}
* Item, optional.
*/
shift() {
this.setCursor(0);
return this.right.pop();
}
/**
* Slice the buffer to get an array;
* does not move the cursor.
*
* @param {number} start
* Start.
* @param {number | null | undefined} [end]
* End (optional).
* @returns {Array<T>}
* Array of items.
*/
slice(start, end) {
const stop = end === null || end === void 0 ? Number.POSITIVE_INFINITY : end;
if (stop < this.left.length) {
return this.left.slice(start, stop);
}
if (start > this.left.length) {
return this.right.slice(
this.right.length - stop + this.left.length,
this.right.length - start + this.left.length
).reverse();
}
return this.left.slice(start).concat(
this.right.slice(this.right.length - stop + this.left.length).reverse()
);
}
/**
* Mimics the behavior of Array.prototype.splice() except for the change of
* interface necessary to avoid segfaults when patching in very large arrays.
*
* This operation moves cursor is moved to `start` and results in the cursor
* placed after any inserted items.
*
* @param {number} start
* Start;
* zero-based index at which to start changing the array;
* negative numbers count backwards from the end of the array and values
* that are out-of bounds are clamped to the appropriate end of the array.
* @param {number | null | undefined} [deleteCount=0]
* Delete count (default: `0`);
* maximum number of elements to delete, starting from start.
* @param {Array<T> | null | undefined} [items=[]]
* Items to include in place of the deleted items (default: `[]`).
* @return {Array<T>}
* Any removed items.
*/
splice(start, deleteCount, items) {
const count = deleteCount || 0;
this.setCursor(Math.trunc(start));
const removed = this.right.splice(
this.right.length - count,
Number.POSITIVE_INFINITY
);
if (items) chunkedPush(this.left, items);
return removed.reverse();
}
/**
* Remove and return the highest-numbered item in the array, so
* `list[list.length - 1]`;
* Moves the cursor to `length`.
*
* @returns {T | undefined}
* Item, optional.
*/
pop() {
this.setCursor(Number.POSITIVE_INFINITY);
return this.left.pop();
}
/**
* Inserts a single item to the high-numbered side of the array;
* moves the cursor to `length`.
*
* @param {T} item
* Item.
* @returns {undefined}
* Nothing.
*/
push(item) {
this.setCursor(Number.POSITIVE_INFINITY);
this.left.push(item);
}
/**
* Inserts many items to the high-numbered side of the array.
* Moves the cursor to `length`.
*
* @param {Array<T>} items
* Items.
* @returns {undefined}
* Nothing.
*/
pushMany(items) {
this.setCursor(Number.POSITIVE_INFINITY);
chunkedPush(this.left, items);
}
/**
* Inserts a single item to the low-numbered side of the array;
* Moves the cursor to `0`.
*
* @param {T} item
* Item.
* @returns {undefined}
* Nothing.
*/
unshift(item) {
this.setCursor(0);
this.right.push(item);
}
/**
* Inserts many items to the low-numbered side of the array;
* moves the cursor to `0`.
*
* @param {Array<T>} items
* Items.
* @returns {undefined}
* Nothing.
*/
unshiftMany(items) {
this.setCursor(0);
chunkedPush(this.right, items.reverse());
}
/**
* Move the cursor to a specific position in the array. Requires
* time proportional to the distance moved.
*
* If `n < 0`, the cursor will end up at the beginning.
* If `n > length`, the cursor will end up at the end.
*
* @param {number} n
* Position.
* @return {undefined}
* Nothing.
*/
setCursor(n) {
if (n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0)
return;
if (n < this.left.length) {
const removed = this.left.splice(n, Number.POSITIVE_INFINITY);
chunkedPush(this.right, removed.reverse());
} else {
const removed = this.right.splice(
this.left.length + this.right.length - n,
Number.POSITIVE_INFINITY
);
chunkedPush(this.left, removed.reverse());
}
}
};
function chunkedPush(list2, right) {
let chunkStart = 0;
if (right.length < constants.v8MaxSafeChunkSize) {
list2.push(...right);
} else {
while (chunkStart < right.length) {
list2.push(
...right.slice(chunkStart, chunkStart + constants.v8MaxSafeChunkSize)
);
chunkStart += constants.v8MaxSafeChunkSize;
}
}
}
// node_modules/micromark-util-subtokenize/dev/index.js
function subtokenize(eventsArray) {
const jumps = {};
let index = -1;
let event;
let lineIndex;
let otherIndex;
let otherEvent;
let parameters;
let subevents;
let more;
const events = new SpliceBuffer(eventsArray);
while (++index < events.length) {
while (index in jumps) {
index = jumps[index];
}
event = events.get(index);
if (index && event[1].type === types.chunkFlow && events.get(index - 1)[1].type === types.listItemPrefix) {
ok(event[1]._tokenizer, "expected `_tokenizer` on subtokens");
subevents = event[1]._tokenizer.events;
otherIndex = 0;
if (otherIndex < subevents.length && subevents[otherIndex][1].type === types.lineEndingBlank) {
otherIndex += 2;
}
if (otherIndex < subevents.length && subevents[otherIndex][1].type === types.content) {
while (++otherIndex < subevents.length) {
if (subevents[otherIndex][1].type === types.content) {
break;
}
if (subevents[otherIndex][1].type === types.chunkText) {
subevents[otherIndex][1]._isInFirstContentOfListItem = true;
otherIndex++;
}
}
}
}
if (event[0] === "enter") {
if (event[1].contentType) {
Object.assign(jumps, subcontent(events, index));
index = jumps[index];
more = true;
}
} else if (event[1]._container) {
otherIndex = index;
lineIndex = void 0;
while (otherIndex--) {
otherEvent = events.get(otherIndex);
if (otherEvent[1].type === types.lineEnding || otherEvent[1].type === types.lineEndingBlank) {
if (otherEvent[0] === "enter") {
if (lineIndex) {
events.get(lineIndex)[1].type = types.lineEndingBlank;
}
otherEvent[1].type = types.lineEnding;
lineIndex = otherIndex;
}
} else if (otherEvent[1].type === types.linePrefix || otherEvent[1].type === types.listItemIndent) {
} else {
break;
}
}
if (lineIndex) {
event[1].end = { ...events.get(lineIndex)[1].start };
parameters = events.slice(lineIndex, index);
parameters.unshift(event);
events.splice(lineIndex, index - lineIndex + 1, parameters);
}
}
}
splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0));
return !more;
}
function subcontent(events, eventIndex) {
const token = events.get(eventIndex)[1];
const context = events.get(eventIndex)[2];
let startPosition = eventIndex - 1;
const startPositions = [];
ok(token.contentType, "expected `contentType` on subtokens");
let tokenizer = token._tokenizer;
if (!tokenizer) {
tokenizer = context.parser[token.contentType](token.start);
if (token._contentTypeTextTrailing) {
tokenizer._contentTypeTextTrailing = true;
}
}
const childEvents = tokenizer.events;
const jumps = [];
const gaps = {};
let stream;
let previous2;
let index = -1;
let current = token;
let adjust = 0;
let start = 0;
const breaks = [start];
while (current) {
while (events.get(++startPosition)[1] !== current) {
}
ok(
!previous2 || current.previous === previous2,
"expected previous to match"
);
ok(!previous2 || previous2.next === current, "expected next to match");
startPositions.push(startPosition);
if (!current._tokenizer) {
stream = context.sliceStream(current);
if (!current.next) {
stream.push(codes.eof);
}
if (previous2) {
tokenizer.defineSkip(current.start);
}
if (current._isInFirstContentOfListItem) {
tokenizer._gfmTasklistFirstContentOfListItem = true;
}
tokenizer.write(stream);
if (current._isInFirstContentOfListItem) {
tokenizer._gfmTasklistFirstContentOfListItem = void 0;
}
}
previous2 = current;
current = current.next;
}
current = token;
while (++index < childEvents.length) {
if (
// Find a void token that includes a break.
childEvents[index][0] === "exit" && childEvents[index - 1][0] === "enter" && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line
) {
ok(current, "expected a current token");
start = index + 1;
breaks.push(start);
current._tokenizer = void 0;
current.previous = void 0;
current = current.next;
}
}
tokenizer.events = [];
if (current) {
current._tokenizer = void 0;
current.previous = void 0;
ok(!current.next, "expected no next token");
} else {
breaks.pop();
}
index = breaks.length;
while (index--) {
const slice = childEvents.slice(breaks[index], breaks[index + 1]);
const start2 = startPositions.pop();
ok(start2 !== void 0, "expected a start position when splicing");
jumps.push([start2, start2 + slice.length - 1]);
events.splice(start2, 2, slice);
}
jumps.reverse();
index = -1;
while (++index < jumps.length) {
gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];
adjust += jumps[index][1] - jumps[index][0] - 1;
}
return gaps;
}
// node_modules/micromark-core-commonmark/dev/lib/content.js
var content = { resolve: resolveContent, tokenize: tokenizeContent };
var continuationConstruct = { partial: true, tokenize: tokenizeContinuation };
function resolveContent(events) {
subtokenize(events);
return events;
}
function tokenizeContent(effects, ok3) {
let previous2;
return chunkStart;
function chunkStart(code) {
ok(
code !== codes.eof && !markdownLineEnding(code),
"expected no eof or eol"
);
effects.enter(types.content);
previous2 = effects.enter(types.chunkContent, {
contentType: constants.contentTypeContent
});
return chunkInside(code);
}
function chunkInside(code) {
if (code === codes.eof) {
return contentEnd(code);
}
if (markdownLineEnding(code)) {
return effects.check(
continuationConstruct,
contentContinue,
contentEnd
)(code);
}
effects.consume(code);
return chunkInside;
}
function contentEnd(code) {
effects.exit(types.chunkContent);
effects.exit(types.content);
return ok3(code);
}
function contentContinue(code) {
ok(markdownLineEnding(code), "expected eol");
effects.consume(code);
effects.exit(types.chunkContent);
ok(previous2, "expected previous token");
previous2.next = effects.enter(types.chunkContent, {
contentType: constants.contentTypeContent,
previous: previous2
});
previous2 = previous2.next;
return chunkInside;
}
}
function tokenizeContinuation(effects, ok3, nok) {
const self = this;
return startLookahead;
function startLookahead(code) {
ok(markdownLineEnding(code), "expected a line ending");
effects.exit(types.chunkContent);
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return factorySpace(effects, prefixed, types.linePrefix);
}
function prefixed(code) {
if (code === codes.eof || markdownLineEnding(code)) {
return nok(code);
}
ok(
self.parser.constructs.disable.null,
"expected `disable.null` to be populated"
);
const tail = self.events[self.events.length - 1];
if (!self.parser.constructs.disable.null.includes("codeIndented") && tail && tail[1].type === types.linePrefix && tail[2].sliceSerialize(tail[1], true).length >= constants.tabSize) {
return ok3(code);
}
return effects.interrupt(self.parser.constructs.flow, nok, ok3)(code);
}
}
// node_modules/micromark-factory-destination/dev/index.js
function factoryDestination(effects, ok3, nok, type, literalType, literalMarkerType, rawType, stringType, max) {
const limit = max || Number.POSITIVE_INFINITY;
let balance = 0;
return start;
function start(code) {
if (code === codes.lessThan) {
effects.enter(type);
effects.enter(literalType);
effects.enter(literalMarkerType);
effects.consume(code);
effects.exit(literalMarkerType);
return enclosedBefore;
}
if (code === codes.eof || code === codes.space || code === codes.rightParenthesis || asciiControl(code)) {
return nok(code);
}
effects.enter(type);
effects.enter(rawType);
effects.enter(stringType);
effects.enter(types.chunkString, { contentType: constants.contentTypeString });
return raw(code);
}
function enclosedBefore(code) {
if (code === codes.greaterThan) {
effects.enter(literalMarkerType);
effects.consume(code);
effects.exit(literalMarkerType);
effects.exit(literalType);
effects.exit(type);
return ok3;
}
effects.enter(stringType);
effects.enter(types.chunkString, { contentType: constants.contentTypeString });
return enclosed(code);
}
function enclosed(code) {
if (code === codes.greaterThan) {
effects.exit(types.chunkString);
effects.exit(stringType);
return enclosedBefore(code);
}
if (code === codes.eof || code === codes.lessThan || markdownLineEnding(code)) {
return nok(code);
}
effects.consume(code);
return code === codes.backslash ? enclosedEscape : enclosed;
}
function enclosedEscape(code) {
if (code === codes.lessThan || code === codes.greaterThan || code === codes.backslash) {
effects.consume(code);
return enclosed;
}
return enclosed(code);
}
function raw(code) {
if (!balance && (code === codes.eof || code === codes.rightParenthesis || markdownLineEndingOrSpace(code))) {
effects.exit(types.chunkString);
effects.exit(stringType);
effects.exit(rawType);
effects.exit(type);
return ok3(code);
}
if (balance < limit && code === codes.leftParenthesis) {
effects.consume(code);
balance++;
return raw;
}
if (code === codes.rightParenthesis) {
effects.consume(code);
balance--;
return raw;
}
if (code === codes.eof || code === codes.space || code === codes.leftParenthesis || asciiControl(code)) {
return nok(code);
}
effects.consume(code);
return code === codes.backslash ? rawEscape : raw;
}
function rawEscape(code) {
if (code === codes.leftParenthesis || code === codes.rightParenthesis || code === codes.backslash) {
effects.consume(code);
return raw;
}
return raw(code);
}
}
// node_modules/micromark-factory-label/dev/index.js
function factoryLabel(effects, ok3, nok, type, markerType, stringType) {
const self = this;
let size = 0;
let seen;
return start;
function start(code) {
ok(code === codes.leftSquareBracket, "expected `[`");
effects.enter(type);
effects.enter(markerType);
effects.consume(code);
effects.exit(markerType);
effects.enter(stringType);
return atBreak;
}
function atBreak(code) {
if (size > constants.linkReferenceSizeMax || code === codes.eof || code === codes.leftSquareBracket || code === codes.rightSquareBracket && !seen || // To do: remove in the future once weve switched from
// `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
// which doesnt need this.
// Hidden footnotes hook.
/* c8 ignore next 3 */
code === codes.caret && !size && "_hiddenFootnoteSupport" in self.parser.constructs) {
return nok(code);
}
if (code === codes.rightSquareBracket) {
effects.exit(stringType);
effects.enter(markerType);
effects.consume(code);
effects.exit(markerType);
effects.exit(type);
return ok3;
}
if (markdownLineEnding(code)) {
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return atBreak;
}
effects.enter(types.chunkString, { contentType: constants.contentTypeString });
return labelInside(code);
}
function labelInside(code) {
if (code === codes.eof || code === codes.leftSquareBracket || code === codes.rightSquareBracket || markdownLineEnding(code) || size++ > constants.linkReferenceSizeMax) {
effects.exit(types.chunkString);
return atBreak(code);
}
effects.consume(code);
if (!seen) seen = !markdownSpace(code);
return code === codes.backslash ? labelEscape : labelInside;
}
function labelEscape(code) {
if (code === codes.leftSquareBracket || code === codes.backslash || code === codes.rightSquareBracket) {
effects.consume(code);
size++;
return labelInside;
}
return labelInside(code);
}
}
// node_modules/micromark-factory-title/dev/index.js
function factoryTitle(effects, ok3, nok, type, markerType, stringType) {
let marker;
return start;
function start(code) {
if (code === codes.quotationMark || code === codes.apostrophe || code === codes.leftParenthesis) {
effects.enter(type);
effects.enter(markerType);
effects.consume(code);
effects.exit(markerType);
marker = code === codes.leftParenthesis ? codes.rightParenthesis : code;
return begin;
}
return nok(code);
}
function begin(code) {
if (code === marker) {
effects.enter(markerType);
effects.consume(code);
effects.exit(markerType);
effects.exit(type);
return ok3;
}
effects.enter(stringType);
return atBreak(code);
}
function atBreak(code) {
if (code === marker) {
effects.exit(stringType);
return begin(marker);
}
if (code === codes.eof) {
return nok(code);
}
if (markdownLineEnding(code)) {
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return factorySpace(effects, atBreak, types.linePrefix);
}
effects.enter(types.chunkString, { contentType: constants.contentTypeString });
return inside(code);
}
function inside(code) {
if (code === marker || code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.chunkString);
return atBreak(code);
}
effects.consume(code);
return code === codes.backslash ? escape : inside;
}
function escape(code) {
if (code === marker || code === codes.backslash) {
effects.consume(code);
return inside;
}
return inside(code);
}
}
// node_modules/micromark-factory-whitespace/dev/index.js
function factoryWhitespace(effects, ok3) {
let seen;
return start;
function start(code) {
if (markdownLineEnding(code)) {
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
seen = true;
return start;
}
if (markdownSpace(code)) {
return factorySpace(
effects,
start,
seen ? types.linePrefix : types.lineSuffix
)(code);
}
return ok3(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/definition.js
var definition = { name: "definition", tokenize: tokenizeDefinition };
var titleBefore = { partial: true, tokenize: tokenizeTitleBefore };
function tokenizeDefinition(effects, ok3, nok) {
const self = this;
let identifier;
return start;
function start(code) {
effects.enter(types.definition);
return before(code);
}
function before(code) {
ok(code === codes.leftSquareBracket, "expected `[`");
return factoryLabel.call(
self,
effects,
labelAfter,
// Note: we dont need to reset the way `markdown-rs` does.
nok,
types.definitionLabel,
types.definitionLabelMarker,
types.definitionLabelString
)(code);
}
function labelAfter(code) {
identifier = normalizeIdentifier(
self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
);
if (code === codes.colon) {
effects.enter(types.definitionMarker);
effects.consume(code);
effects.exit(types.definitionMarker);
return markerAfter;
}
return nok(code);
}
function markerAfter(code) {
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);
}
function destinationBefore(code) {
return factoryDestination(
effects,
destinationAfter,
// Note: we dont need to reset the way `markdown-rs` does.
nok,
types.definitionDestination,
types.definitionDestinationLiteral,
types.definitionDestinationLiteralMarker,
types.definitionDestinationRaw,
types.definitionDestinationString
)(code);
}
function destinationAfter(code) {
return effects.attempt(titleBefore, after, after)(code);
}
function after(code) {
return markdownSpace(code) ? factorySpace(effects, afterWhitespace, types.whitespace)(code) : afterWhitespace(code);
}
function afterWhitespace(code) {
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.definition);
self.parser.defined.push(identifier);
return ok3(code);
}
return nok(code);
}
}
function tokenizeTitleBefore(effects, ok3, nok) {
return titleBefore2;
function titleBefore2(code) {
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);
}
function beforeMarker(code) {
return factoryTitle(
effects,
titleAfter,
nok,
types.definitionTitle,
types.definitionTitleMarker,
types.definitionTitleString
)(code);
}
function titleAfter(code) {
return markdownSpace(code) ? factorySpace(
effects,
titleAfterOptionalWhitespace,
types.whitespace
)(code) : titleAfterOptionalWhitespace(code);
}
function titleAfterOptionalWhitespace(code) {
return code === codes.eof || markdownLineEnding(code) ? ok3(code) : nok(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js
var hardBreakEscape = {
name: "hardBreakEscape",
tokenize: tokenizeHardBreakEscape
};
function tokenizeHardBreakEscape(effects, ok3, nok) {
return start;
function start(code) {
ok(code === codes.backslash, "expected `\\`");
effects.enter(types.hardBreakEscape);
effects.consume(code);
return after;
}
function after(code) {
if (markdownLineEnding(code)) {
effects.exit(types.hardBreakEscape);
return ok3(code);
}
return nok(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/heading-atx.js
var headingAtx = {
name: "headingAtx",
resolve: resolveHeadingAtx,
tokenize: tokenizeHeadingAtx
};
function resolveHeadingAtx(events, context) {
let contentEnd = events.length - 2;
let contentStart = 3;
let content2;
let text;
if (events[contentStart][1].type === types.whitespace) {
contentStart += 2;
}
if (contentEnd - 2 > contentStart && events[contentEnd][1].type === types.whitespace) {
contentEnd -= 2;
}
if (events[contentEnd][1].type === types.atxHeadingSequence && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === types.whitespace)) {
contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;
}
if (contentEnd > contentStart) {
content2 = {
type: types.atxHeadingText,
start: events[contentStart][1].start,
end: events[contentEnd][1].end
};
text = {
type: types.chunkText,
start: events[contentStart][1].start,
end: events[contentEnd][1].end,
contentType: constants.contentTypeText
};
splice(events, contentStart, contentEnd - contentStart + 1, [
["enter", content2, context],
["enter", text, context],
["exit", text, context],
["exit", content2, context]
]);
}
return events;
}
function tokenizeHeadingAtx(effects, ok3, nok) {
let size = 0;
return start;
function start(code) {
effects.enter(types.atxHeading);
return before(code);
}
function before(code) {
ok(code === codes.numberSign, "expected `#`");
effects.enter(types.atxHeadingSequence);
return sequenceOpen(code);
}
function sequenceOpen(code) {
if (code === codes.numberSign && size++ < constants.atxHeadingOpeningFenceSizeMax) {
effects.consume(code);
return sequenceOpen;
}
if (code === codes.eof || markdownLineEndingOrSpace(code)) {
effects.exit(types.atxHeadingSequence);
return atBreak(code);
}
return nok(code);
}
function atBreak(code) {
if (code === codes.numberSign) {
effects.enter(types.atxHeadingSequence);
return sequenceFurther(code);
}
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.atxHeading);
return ok3(code);
}
if (markdownSpace(code)) {
return factorySpace(effects, atBreak, types.whitespace)(code);
}
effects.enter(types.atxHeadingText);
return data(code);
}
function sequenceFurther(code) {
if (code === codes.numberSign) {
effects.consume(code);
return sequenceFurther;
}
effects.exit(types.atxHeadingSequence);
return atBreak(code);
}
function data(code) {
if (code === codes.eof || code === codes.numberSign || markdownLineEndingOrSpace(code)) {
effects.exit(types.atxHeadingText);
return atBreak(code);
}
effects.consume(code);
return data;
}
}
// node_modules/micromark-util-html-tag-name/index.js
var htmlBlockNames = [
"address",
"article",
"aside",
"base",
"basefont",
"blockquote",
"body",
"caption",
"center",
"col",
"colgroup",
"dd",
"details",
"dialog",
"dir",
"div",
"dl",
"dt",
"fieldset",
"figcaption",
"figure",
"footer",
"form",
"frame",
"frameset",
"h1",
"h2",
"h3",
"h4",
"h5",
"h6",
"head",
"header",
"hr",
"html",
"iframe",
"legend",
"li",
"link",
"main",
"menu",
"menuitem",
"nav",
"noframes",
"ol",
"optgroup",
"option",
"p",
"param",
"search",
"section",
"summary",
"table",
"tbody",
"td",
"tfoot",
"th",
"thead",
"title",
"tr",
"track",
"ul"
];
var htmlRawNames = ["pre", "script", "style", "textarea"];
// node_modules/micromark-core-commonmark/dev/lib/html-flow.js
var htmlFlow = {
concrete: true,
name: "htmlFlow",
resolveTo: resolveToHtmlFlow,
tokenize: tokenizeHtmlFlow
};
var blankLineBefore = { partial: true, tokenize: tokenizeBlankLineBefore };
var nonLazyContinuationStart = {
partial: true,
tokenize: tokenizeNonLazyContinuationStart
};
function resolveToHtmlFlow(events) {
let index = events.length;
while (index--) {
if (events[index][0] === "enter" && events[index][1].type === types.htmlFlow) {
break;
}
}
if (index > 1 && events[index - 2][1].type === types.linePrefix) {
events[index][1].start = events[index - 2][1].start;
events[index + 1][1].start = events[index - 2][1].start;
events.splice(index - 2, 2);
}
return events;
}
function tokenizeHtmlFlow(effects, ok3, nok) {
const self = this;
let marker;
let closingTag;
let buffer;
let index;
let markerB;
return start;
function start(code) {
return before(code);
}
function before(code) {
ok(code === codes.lessThan, "expected `<`");
effects.enter(types.htmlFlow);
effects.enter(types.htmlFlowData);
effects.consume(code);
return open;
}
function open(code) {
if (code === codes.exclamationMark) {
effects.consume(code);
return declarationOpen;
}
if (code === codes.slash) {
effects.consume(code);
closingTag = true;
return tagCloseStart;
}
if (code === codes.questionMark) {
effects.consume(code);
marker = constants.htmlInstruction;
return self.interrupt ? ok3 : continuationDeclarationInside;
}
if (asciiAlpha(code)) {
ok(code !== null);
effects.consume(code);
buffer = String.fromCharCode(code);
return tagName;
}
return nok(code);
}
function declarationOpen(code) {
if (code === codes.dash) {
effects.consume(code);
marker = constants.htmlComment;
return commentOpenInside;
}
if (code === codes.leftSquareBracket) {
effects.consume(code);
marker = constants.htmlCdata;
index = 0;
return cdataOpenInside;
}
if (asciiAlpha(code)) {
effects.consume(code);
marker = constants.htmlDeclaration;
return self.interrupt ? ok3 : continuationDeclarationInside;
}
return nok(code);
}
function commentOpenInside(code) {
if (code === codes.dash) {
effects.consume(code);
return self.interrupt ? ok3 : continuationDeclarationInside;
}
return nok(code);
}
function cdataOpenInside(code) {
const value = constants.cdataOpeningString;
if (code === value.charCodeAt(index++)) {
effects.consume(code);
if (index === value.length) {
return self.interrupt ? ok3 : continuation;
}
return cdataOpenInside;
}
return nok(code);
}
function tagCloseStart(code) {
if (asciiAlpha(code)) {
ok(code !== null);
effects.consume(code);
buffer = String.fromCharCode(code);
return tagName;
}
return nok(code);
}
function tagName(code) {
if (code === codes.eof || code === codes.slash || code === codes.greaterThan || markdownLineEndingOrSpace(code)) {
const slash = code === codes.slash;
const name = buffer.toLowerCase();
if (!slash && !closingTag && htmlRawNames.includes(name)) {
marker = constants.htmlRaw;
return self.interrupt ? ok3(code) : continuation(code);
}
if (htmlBlockNames.includes(buffer.toLowerCase())) {
marker = constants.htmlBasic;
if (slash) {
effects.consume(code);
return basicSelfClosing;
}
return self.interrupt ? ok3(code) : continuation(code);
}
marker = constants.htmlComplete;
return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);
}
if (code === codes.dash || asciiAlphanumeric(code)) {
effects.consume(code);
buffer += String.fromCharCode(code);
return tagName;
}
return nok(code);
}
function basicSelfClosing(code) {
if (code === codes.greaterThan) {
effects.consume(code);
return self.interrupt ? ok3 : continuation;
}
return nok(code);
}
function completeClosingTagAfter(code) {
if (markdownSpace(code)) {
effects.consume(code);
return completeClosingTagAfter;
}
return completeEnd(code);
}
function completeAttributeNameBefore(code) {
if (code === codes.slash) {
effects.consume(code);
return completeEnd;
}
if (code === codes.colon || code === codes.underscore || asciiAlpha(code)) {
effects.consume(code);
return completeAttributeName;
}
if (markdownSpace(code)) {
effects.consume(code);
return completeAttributeNameBefore;
}
return completeEnd(code);
}
function completeAttributeName(code) {
if (code === codes.dash || code === codes.dot || code === codes.colon || code === codes.underscore || asciiAlphanumeric(code)) {
effects.consume(code);
return completeAttributeName;
}
return completeAttributeNameAfter(code);
}
function completeAttributeNameAfter(code) {
if (code === codes.equalsTo) {
effects.consume(code);
return completeAttributeValueBefore;
}
if (markdownSpace(code)) {
effects.consume(code);
return completeAttributeNameAfter;
}
return completeAttributeNameBefore(code);
}
function completeAttributeValueBefore(code) {
if (code === codes.eof || code === codes.lessThan || code === codes.equalsTo || code === codes.greaterThan || code === codes.graveAccent) {
return nok(code);
}
if (code === codes.quotationMark || code === codes.apostrophe) {
effects.consume(code);
markerB = code;
return completeAttributeValueQuoted;
}
if (markdownSpace(code)) {
effects.consume(code);
return completeAttributeValueBefore;
}
return completeAttributeValueUnquoted(code);
}
function completeAttributeValueQuoted(code) {
if (code === markerB) {
effects.consume(code);
markerB = null;
return completeAttributeValueQuotedAfter;
}
if (code === codes.eof || markdownLineEnding(code)) {
return nok(code);
}
effects.consume(code);
return completeAttributeValueQuoted;
}
function completeAttributeValueUnquoted(code) {
if (code === codes.eof || code === codes.quotationMark || code === codes.apostrophe || code === codes.slash || code === codes.lessThan || code === codes.equalsTo || code === codes.greaterThan || code === codes.graveAccent || markdownLineEndingOrSpace(code)) {
return completeAttributeNameAfter(code);
}
effects.consume(code);
return completeAttributeValueUnquoted;
}
function completeAttributeValueQuotedAfter(code) {
if (code === codes.slash || code === codes.greaterThan || markdownSpace(code)) {
return completeAttributeNameBefore(code);
}
return nok(code);
}
function completeEnd(code) {
if (code === codes.greaterThan) {
effects.consume(code);
return completeAfter;
}
return nok(code);
}
function completeAfter(code) {
if (code === codes.eof || markdownLineEnding(code)) {
return continuation(code);
}
if (markdownSpace(code)) {
effects.consume(code);
return completeAfter;
}
return nok(code);
}
function continuation(code) {
if (code === codes.dash && marker === constants.htmlComment) {
effects.consume(code);
return continuationCommentInside;
}
if (code === codes.lessThan && marker === constants.htmlRaw) {
effects.consume(code);
return continuationRawTagOpen;
}
if (code === codes.greaterThan && marker === constants.htmlDeclaration) {
effects.consume(code);
return continuationClose;
}
if (code === codes.questionMark && marker === constants.htmlInstruction) {
effects.consume(code);
return continuationDeclarationInside;
}
if (code === codes.rightSquareBracket && marker === constants.htmlCdata) {
effects.consume(code);
return continuationCdataInside;
}
if (markdownLineEnding(code) && (marker === constants.htmlBasic || marker === constants.htmlComplete)) {
effects.exit(types.htmlFlowData);
return effects.check(
blankLineBefore,
continuationAfter,
continuationStart
)(code);
}
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.htmlFlowData);
return continuationStart(code);
}
effects.consume(code);
return continuation;
}
function continuationStart(code) {
return effects.check(
nonLazyContinuationStart,
continuationStartNonLazy,
continuationAfter
)(code);
}
function continuationStartNonLazy(code) {
ok(markdownLineEnding(code));
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return continuationBefore;
}
function continuationBefore(code) {
if (code === codes.eof || markdownLineEnding(code)) {
return continuationStart(code);
}
effects.enter(types.htmlFlowData);
return continuation(code);
}
function continuationCommentInside(code) {
if (code === codes.dash) {
effects.consume(code);
return continuationDeclarationInside;
}
return continuation(code);
}
function continuationRawTagOpen(code) {
if (code === codes.slash) {
effects.consume(code);
buffer = "";
return continuationRawEndTag;
}
return continuation(code);
}
function continuationRawEndTag(code) {
if (code === codes.greaterThan) {
const name = buffer.toLowerCase();
if (htmlRawNames.includes(name)) {
effects.consume(code);
return continuationClose;
}
return continuation(code);
}
if (asciiAlpha(code) && buffer.length < constants.htmlRawSizeMax) {
ok(code !== null);
effects.consume(code);
buffer += String.fromCharCode(code);
return continuationRawEndTag;
}
return continuation(code);
}
function continuationCdataInside(code) {
if (code === codes.rightSquareBracket) {
effects.consume(code);
return continuationDeclarationInside;
}
return continuation(code);
}
function continuationDeclarationInside(code) {
if (code === codes.greaterThan) {
effects.consume(code);
return continuationClose;
}
if (code === codes.dash && marker === constants.htmlComment) {
effects.consume(code);
return continuationDeclarationInside;
}
return continuation(code);
}
function continuationClose(code) {
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.htmlFlowData);
return continuationAfter(code);
}
effects.consume(code);
return continuationClose;
}
function continuationAfter(code) {
effects.exit(types.htmlFlow);
return ok3(code);
}
}
function tokenizeNonLazyContinuationStart(effects, ok3, nok) {
const self = this;
return start;
function start(code) {
if (markdownLineEnding(code)) {
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return after;
}
return nok(code);
}
function after(code) {
return self.parser.lazy[self.now().line] ? nok(code) : ok3(code);
}
}
function tokenizeBlankLineBefore(effects, ok3, nok) {
return start;
function start(code) {
ok(markdownLineEnding(code), "expected a line ending");
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return effects.attempt(blankLine, ok3, nok);
}
}
// node_modules/micromark-core-commonmark/dev/lib/html-text.js
var htmlText = { name: "htmlText", tokenize: tokenizeHtmlText };
function tokenizeHtmlText(effects, ok3, nok) {
const self = this;
let marker;
let index;
let returnState;
return start;
function start(code) {
ok(code === codes.lessThan, "expected `<`");
effects.enter(types.htmlText);
effects.enter(types.htmlTextData);
effects.consume(code);
return open;
}
function open(code) {
if (code === codes.exclamationMark) {
effects.consume(code);
return declarationOpen;
}
if (code === codes.slash) {
effects.consume(code);
return tagCloseStart;
}
if (code === codes.questionMark) {
effects.consume(code);
return instruction;
}
if (asciiAlpha(code)) {
effects.consume(code);
return tagOpen;
}
return nok(code);
}
function declarationOpen(code) {
if (code === codes.dash) {
effects.consume(code);
return commentOpenInside;
}
if (code === codes.leftSquareBracket) {
effects.consume(code);
index = 0;
return cdataOpenInside;
}
if (asciiAlpha(code)) {
effects.consume(code);
return declaration;
}
return nok(code);
}
function commentOpenInside(code) {
if (code === codes.dash) {
effects.consume(code);
return commentEnd;
}
return nok(code);
}
function comment(code) {
if (code === codes.eof) {
return nok(code);
}
if (code === codes.dash) {
effects.consume(code);
return commentClose;
}
if (markdownLineEnding(code)) {
returnState = comment;
return lineEndingBefore(code);
}
effects.consume(code);
return comment;
}
function commentClose(code) {
if (code === codes.dash) {
effects.consume(code);
return commentEnd;
}
return comment(code);
}
function commentEnd(code) {
return code === codes.greaterThan ? end(code) : code === codes.dash ? commentClose(code) : comment(code);
}
function cdataOpenInside(code) {
const value = constants.cdataOpeningString;
if (code === value.charCodeAt(index++)) {
effects.consume(code);
return index === value.length ? cdata : cdataOpenInside;
}
return nok(code);
}
function cdata(code) {
if (code === codes.eof) {
return nok(code);
}
if (code === codes.rightSquareBracket) {
effects.consume(code);
return cdataClose;
}
if (markdownLineEnding(code)) {
returnState = cdata;
return lineEndingBefore(code);
}
effects.consume(code);
return cdata;
}
function cdataClose(code) {
if (code === codes.rightSquareBracket) {
effects.consume(code);
return cdataEnd;
}
return cdata(code);
}
function cdataEnd(code) {
if (code === codes.greaterThan) {
return end(code);
}
if (code === codes.rightSquareBracket) {
effects.consume(code);
return cdataEnd;
}
return cdata(code);
}
function declaration(code) {
if (code === codes.eof || code === codes.greaterThan) {
return end(code);
}
if (markdownLineEnding(code)) {
returnState = declaration;
return lineEndingBefore(code);
}
effects.consume(code);
return declaration;
}
function instruction(code) {
if (code === codes.eof) {
return nok(code);
}
if (code === codes.questionMark) {
effects.consume(code);
return instructionClose;
}
if (markdownLineEnding(code)) {
returnState = instruction;
return lineEndingBefore(code);
}
effects.consume(code);
return instruction;
}
function instructionClose(code) {
return code === codes.greaterThan ? end(code) : instruction(code);
}
function tagCloseStart(code) {
if (asciiAlpha(code)) {
effects.consume(code);
return tagClose;
}
return nok(code);
}
function tagClose(code) {
if (code === codes.dash || asciiAlphanumeric(code)) {
effects.consume(code);
return tagClose;
}
return tagCloseBetween(code);
}
function tagCloseBetween(code) {
if (markdownLineEnding(code)) {
returnState = tagCloseBetween;
return lineEndingBefore(code);
}
if (markdownSpace(code)) {
effects.consume(code);
return tagCloseBetween;
}
return end(code);
}
function tagOpen(code) {
if (code === codes.dash || asciiAlphanumeric(code)) {
effects.consume(code);
return tagOpen;
}
if (code === codes.slash || code === codes.greaterThan || markdownLineEndingOrSpace(code)) {
return tagOpenBetween(code);
}
return nok(code);
}
function tagOpenBetween(code) {
if (code === codes.slash) {
effects.consume(code);
return end;
}
if (code === codes.colon || code === codes.underscore || asciiAlpha(code)) {
effects.consume(code);
return tagOpenAttributeName;
}
if (markdownLineEnding(code)) {
returnState = tagOpenBetween;
return lineEndingBefore(code);
}
if (markdownSpace(code)) {
effects.consume(code);
return tagOpenBetween;
}
return end(code);
}
function tagOpenAttributeName(code) {
if (code === codes.dash || code === codes.dot || code === codes.colon || code === codes.underscore || asciiAlphanumeric(code)) {
effects.consume(code);
return tagOpenAttributeName;
}
return tagOpenAttributeNameAfter(code);
}
function tagOpenAttributeNameAfter(code) {
if (code === codes.equalsTo) {
effects.consume(code);
return tagOpenAttributeValueBefore;
}
if (markdownLineEnding(code)) {
returnState = tagOpenAttributeNameAfter;
return lineEndingBefore(code);
}
if (markdownSpace(code)) {
effects.consume(code);
return tagOpenAttributeNameAfter;
}
return tagOpenBetween(code);
}
function tagOpenAttributeValueBefore(code) {
if (code === codes.eof || code === codes.lessThan || code === codes.equalsTo || code === codes.greaterThan || code === codes.graveAccent) {
return nok(code);
}
if (code === codes.quotationMark || code === codes.apostrophe) {
effects.consume(code);
marker = code;
return tagOpenAttributeValueQuoted;
}
if (markdownLineEnding(code)) {
returnState = tagOpenAttributeValueBefore;
return lineEndingBefore(code);
}
if (markdownSpace(code)) {
effects.consume(code);
return tagOpenAttributeValueBefore;
}
effects.consume(code);
return tagOpenAttributeValueUnquoted;
}
function tagOpenAttributeValueQuoted(code) {
if (code === marker) {
effects.consume(code);
marker = void 0;
return tagOpenAttributeValueQuotedAfter;
}
if (code === codes.eof) {
return nok(code);
}
if (markdownLineEnding(code)) {
returnState = tagOpenAttributeValueQuoted;
return lineEndingBefore(code);
}
effects.consume(code);
return tagOpenAttributeValueQuoted;
}
function tagOpenAttributeValueUnquoted(code) {
if (code === codes.eof || code === codes.quotationMark || code === codes.apostrophe || code === codes.lessThan || code === codes.equalsTo || code === codes.graveAccent) {
return nok(code);
}
if (code === codes.slash || code === codes.greaterThan || markdownLineEndingOrSpace(code)) {
return tagOpenBetween(code);
}
effects.consume(code);
return tagOpenAttributeValueUnquoted;
}
function tagOpenAttributeValueQuotedAfter(code) {
if (code === codes.slash || code === codes.greaterThan || markdownLineEndingOrSpace(code)) {
return tagOpenBetween(code);
}
return nok(code);
}
function end(code) {
if (code === codes.greaterThan) {
effects.consume(code);
effects.exit(types.htmlTextData);
effects.exit(types.htmlText);
return ok3;
}
return nok(code);
}
function lineEndingBefore(code) {
ok(returnState, "expected return state");
ok(markdownLineEnding(code), "expected eol");
effects.exit(types.htmlTextData);
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return lineEndingAfter;
}
function lineEndingAfter(code) {
ok(
self.parser.constructs.disable.null,
"expected `disable.null` to be populated"
);
return markdownSpace(code) ? factorySpace(
effects,
lineEndingAfterPrefix,
types.linePrefix,
self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : constants.tabSize
)(code) : lineEndingAfterPrefix(code);
}
function lineEndingAfterPrefix(code) {
effects.enter(types.htmlTextData);
return returnState(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/label-end.js
var labelEnd = {
name: "labelEnd",
resolveAll: resolveAllLabelEnd,
resolveTo: resolveToLabelEnd,
tokenize: tokenizeLabelEnd
};
var resourceConstruct = { tokenize: tokenizeResource };
var referenceFullConstruct = { tokenize: tokenizeReferenceFull };
var referenceCollapsedConstruct = { tokenize: tokenizeReferenceCollapsed };
function resolveAllLabelEnd(events) {
let index = -1;
const newEvents = [];
while (++index < events.length) {
const token = events[index][1];
newEvents.push(events[index]);
if (token.type === types.labelImage || token.type === types.labelLink || token.type === types.labelEnd) {
const offset = token.type === types.labelImage ? 4 : 2;
token.type = types.data;
index += offset;
}
}
if (events.length !== newEvents.length) {
splice(events, 0, events.length, newEvents);
}
return events;
}
function resolveToLabelEnd(events, context) {
let index = events.length;
let offset = 0;
let token;
let open;
let close;
let media;
while (index--) {
token = events[index][1];
if (open) {
if (token.type === types.link || token.type === types.labelLink && token._inactive) {
break;
}
if (events[index][0] === "enter" && token.type === types.labelLink) {
token._inactive = true;
}
} else if (close) {
if (events[index][0] === "enter" && (token.type === types.labelImage || token.type === types.labelLink) && !token._balanced) {
open = index;
if (token.type !== types.labelLink) {
offset = 2;
break;
}
}
} else if (token.type === types.labelEnd) {
close = index;
}
}
ok(open !== void 0, "`open` is supposed to be found");
ok(close !== void 0, "`close` is supposed to be found");
const group = {
type: events[open][1].type === types.labelLink ? types.link : types.image,
start: { ...events[open][1].start },
end: { ...events[events.length - 1][1].end }
};
const label = {
type: types.label,
start: { ...events[open][1].start },
end: { ...events[close][1].end }
};
const text = {
type: types.labelText,
start: { ...events[open + offset + 2][1].end },
end: { ...events[close - 2][1].start }
};
media = [
["enter", group, context],
["enter", label, context]
];
media = push(media, events.slice(open + 1, open + offset + 3));
media = push(media, [["enter", text, context]]);
ok(
context.parser.constructs.insideSpan.null,
"expected `insideSpan.null` to be populated"
);
media = push(
media,
resolveAll(
context.parser.constructs.insideSpan.null,
events.slice(open + offset + 4, close - 3),
context
)
);
media = push(media, [
["exit", text, context],
events[close - 2],
events[close - 1],
["exit", label, context]
]);
media = push(media, events.slice(close + 1));
media = push(media, [["exit", group, context]]);
splice(events, open, events.length, media);
return events;
}
function tokenizeLabelEnd(effects, ok3, nok) {
const self = this;
let index = self.events.length;
let labelStart;
let defined;
while (index--) {
if ((self.events[index][1].type === types.labelImage || self.events[index][1].type === types.labelLink) && !self.events[index][1]._balanced) {
labelStart = self.events[index][1];
break;
}
}
return start;
function start(code) {
ok(code === codes.rightSquareBracket, "expected `]`");
if (!labelStart) {
return nok(code);
}
if (labelStart._inactive) {
return labelEndNok(code);
}
defined = self.parser.defined.includes(
normalizeIdentifier(
self.sliceSerialize({ start: labelStart.end, end: self.now() })
)
);
effects.enter(types.labelEnd);
effects.enter(types.labelMarker);
effects.consume(code);
effects.exit(types.labelMarker);
effects.exit(types.labelEnd);
return after;
}
function after(code) {
if (code === codes.leftParenthesis) {
return effects.attempt(
resourceConstruct,
labelEndOk,
defined ? labelEndOk : labelEndNok
)(code);
}
if (code === codes.leftSquareBracket) {
return effects.attempt(
referenceFullConstruct,
labelEndOk,
defined ? referenceNotFull : labelEndNok
)(code);
}
return defined ? labelEndOk(code) : labelEndNok(code);
}
function referenceNotFull(code) {
return effects.attempt(
referenceCollapsedConstruct,
labelEndOk,
labelEndNok
)(code);
}
function labelEndOk(code) {
return ok3(code);
}
function labelEndNok(code) {
labelStart._balanced = true;
return nok(code);
}
}
function tokenizeResource(effects, ok3, nok) {
return resourceStart;
function resourceStart(code) {
ok(code === codes.leftParenthesis, "expected left paren");
effects.enter(types.resource);
effects.enter(types.resourceMarker);
effects.consume(code);
effects.exit(types.resourceMarker);
return resourceBefore;
}
function resourceBefore(code) {
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);
}
function resourceOpen(code) {
if (code === codes.rightParenthesis) {
return resourceEnd(code);
}
return factoryDestination(
effects,
resourceDestinationAfter,
resourceDestinationMissing,
types.resourceDestination,
types.resourceDestinationLiteral,
types.resourceDestinationLiteralMarker,
types.resourceDestinationRaw,
types.resourceDestinationString,
constants.linkResourceDestinationBalanceMax
)(code);
}
function resourceDestinationAfter(code) {
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);
}
function resourceDestinationMissing(code) {
return nok(code);
}
function resourceBetween(code) {
if (code === codes.quotationMark || code === codes.apostrophe || code === codes.leftParenthesis) {
return factoryTitle(
effects,
resourceTitleAfter,
nok,
types.resourceTitle,
types.resourceTitleMarker,
types.resourceTitleString
)(code);
}
return resourceEnd(code);
}
function resourceTitleAfter(code) {
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);
}
function resourceEnd(code) {
if (code === codes.rightParenthesis) {
effects.enter(types.resourceMarker);
effects.consume(code);
effects.exit(types.resourceMarker);
effects.exit(types.resource);
return ok3;
}
return nok(code);
}
}
function tokenizeReferenceFull(effects, ok3, nok) {
const self = this;
return referenceFull;
function referenceFull(code) {
ok(code === codes.leftSquareBracket, "expected left bracket");
return factoryLabel.call(
self,
effects,
referenceFullAfter,
referenceFullMissing,
types.reference,
types.referenceMarker,
types.referenceString
)(code);
}
function referenceFullAfter(code) {
return self.parser.defined.includes(
normalizeIdentifier(
self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)
)
) ? ok3(code) : nok(code);
}
function referenceFullMissing(code) {
return nok(code);
}
}
function tokenizeReferenceCollapsed(effects, ok3, nok) {
return referenceCollapsedStart;
function referenceCollapsedStart(code) {
ok(code === codes.leftSquareBracket, "expected left bracket");
effects.enter(types.reference);
effects.enter(types.referenceMarker);
effects.consume(code);
effects.exit(types.referenceMarker);
return referenceCollapsedOpen;
}
function referenceCollapsedOpen(code) {
if (code === codes.rightSquareBracket) {
effects.enter(types.referenceMarker);
effects.consume(code);
effects.exit(types.referenceMarker);
effects.exit(types.reference);
return ok3;
}
return nok(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/label-start-image.js
var labelStartImage = {
name: "labelStartImage",
resolveAll: labelEnd.resolveAll,
tokenize: tokenizeLabelStartImage
};
function tokenizeLabelStartImage(effects, ok3, nok) {
const self = this;
return start;
function start(code) {
ok(code === codes.exclamationMark, "expected `!`");
effects.enter(types.labelImage);
effects.enter(types.labelImageMarker);
effects.consume(code);
effects.exit(types.labelImageMarker);
return open;
}
function open(code) {
if (code === codes.leftSquareBracket) {
effects.enter(types.labelMarker);
effects.consume(code);
effects.exit(types.labelMarker);
effects.exit(types.labelImage);
return after;
}
return nok(code);
}
function after(code) {
return code === codes.caret && "_hiddenFootnoteSupport" in self.parser.constructs ? nok(code) : ok3(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/label-start-link.js
var labelStartLink = {
name: "labelStartLink",
resolveAll: labelEnd.resolveAll,
tokenize: tokenizeLabelStartLink
};
function tokenizeLabelStartLink(effects, ok3, nok) {
const self = this;
return start;
function start(code) {
ok(code === codes.leftSquareBracket, "expected `[`");
effects.enter(types.labelLink);
effects.enter(types.labelMarker);
effects.consume(code);
effects.exit(types.labelMarker);
effects.exit(types.labelLink);
return after;
}
function after(code) {
return code === codes.caret && "_hiddenFootnoteSupport" in self.parser.constructs ? nok(code) : ok3(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/line-ending.js
var lineEnding = { name: "lineEnding", tokenize: tokenizeLineEnding };
function tokenizeLineEnding(effects, ok3) {
return start;
function start(code) {
ok(markdownLineEnding(code), "expected eol");
effects.enter(types.lineEnding);
effects.consume(code);
effects.exit(types.lineEnding);
return factorySpace(effects, ok3, types.linePrefix);
}
}
// node_modules/micromark-core-commonmark/dev/lib/thematic-break.js
var thematicBreak = {
name: "thematicBreak",
tokenize: tokenizeThematicBreak
};
function tokenizeThematicBreak(effects, ok3, nok) {
let size = 0;
let marker;
return start;
function start(code) {
effects.enter(types.thematicBreak);
return before(code);
}
function before(code) {
ok(
code === codes.asterisk || code === codes.dash || code === codes.underscore,
"expected `*`, `-`, or `_`"
);
marker = code;
return atBreak(code);
}
function atBreak(code) {
if (code === marker) {
effects.enter(types.thematicBreakSequence);
return sequence(code);
}
if (size >= constants.thematicBreakMarkerCountMin && (code === codes.eof || markdownLineEnding(code))) {
effects.exit(types.thematicBreak);
return ok3(code);
}
return nok(code);
}
function sequence(code) {
if (code === marker) {
effects.consume(code);
size++;
return sequence;
}
effects.exit(types.thematicBreakSequence);
return markdownSpace(code) ? factorySpace(effects, atBreak, types.whitespace)(code) : atBreak(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/list.js
var list = {
continuation: { tokenize: tokenizeListContinuation },
exit: tokenizeListEnd,
name: "list",
tokenize: tokenizeListStart
};
var listItemPrefixWhitespaceConstruct = {
partial: true,
tokenize: tokenizeListItemPrefixWhitespace
};
var indentConstruct = { partial: true, tokenize: tokenizeIndent };
function tokenizeListStart(effects, ok3, nok) {
const self = this;
const tail = self.events[self.events.length - 1];
let initialSize = tail && tail[1].type === types.linePrefix ? tail[2].sliceSerialize(tail[1], true).length : 0;
let size = 0;
return start;
function start(code) {
ok(self.containerState, "expected state");
const kind = self.containerState.type || (code === codes.asterisk || code === codes.plusSign || code === codes.dash ? types.listUnordered : types.listOrdered);
if (kind === types.listUnordered ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {
if (!self.containerState.type) {
self.containerState.type = kind;
effects.enter(kind, { _container: true });
}
if (kind === types.listUnordered) {
effects.enter(types.listItemPrefix);
return code === codes.asterisk || code === codes.dash ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);
}
if (!self.interrupt || code === codes.digit1) {
effects.enter(types.listItemPrefix);
effects.enter(types.listItemValue);
return inside(code);
}
}
return nok(code);
}
function inside(code) {
ok(self.containerState, "expected state");
if (asciiDigit(code) && ++size < constants.listItemValueSizeMax) {
effects.consume(code);
return inside;
}
if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === codes.rightParenthesis || code === codes.dot)) {
effects.exit(types.listItemValue);
return atMarker(code);
}
return nok(code);
}
function atMarker(code) {
ok(self.containerState, "expected state");
ok(code !== codes.eof, "eof (`null`) is not a marker");
effects.enter(types.listItemMarker);
effects.consume(code);
effects.exit(types.listItemMarker);
self.containerState.marker = self.containerState.marker || code;
return effects.check(
blankLine,
// Cant be empty when interrupting.
self.interrupt ? nok : onBlank,
effects.attempt(
listItemPrefixWhitespaceConstruct,
endOfPrefix,
otherPrefix
)
);
}
function onBlank(code) {
ok(self.containerState, "expected state");
self.containerState.initialBlankLine = true;
initialSize++;
return endOfPrefix(code);
}
function otherPrefix(code) {
if (markdownSpace(code)) {
effects.enter(types.listItemPrefixWhitespace);
effects.consume(code);
effects.exit(types.listItemPrefixWhitespace);
return endOfPrefix;
}
return nok(code);
}
function endOfPrefix(code) {
ok(self.containerState, "expected state");
self.containerState.size = initialSize + self.sliceSerialize(effects.exit(types.listItemPrefix), true).length;
return ok3(code);
}
}
function tokenizeListContinuation(effects, ok3, nok) {
const self = this;
ok(self.containerState, "expected state");
self.containerState._closeFlow = void 0;
return effects.check(blankLine, onBlank, notBlank);
function onBlank(code) {
ok(self.containerState, "expected state");
ok(typeof self.containerState.size === "number", "expected size");
self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;
return factorySpace(
effects,
ok3,
types.listItemIndent,
self.containerState.size + 1
)(code);
}
function notBlank(code) {
ok(self.containerState, "expected state");
if (self.containerState.furtherBlankLines || !markdownSpace(code)) {
self.containerState.furtherBlankLines = void 0;
self.containerState.initialBlankLine = void 0;
return notInCurrentItem(code);
}
self.containerState.furtherBlankLines = void 0;
self.containerState.initialBlankLine = void 0;
return effects.attempt(indentConstruct, ok3, notInCurrentItem)(code);
}
function notInCurrentItem(code) {
ok(self.containerState, "expected state");
self.containerState._closeFlow = true;
self.interrupt = void 0;
ok(
self.parser.constructs.disable.null,
"expected `disable.null` to be populated"
);
return factorySpace(
effects,
effects.attempt(list, ok3, nok),
types.linePrefix,
self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : constants.tabSize
)(code);
}
}
function tokenizeIndent(effects, ok3, nok) {
const self = this;
ok(self.containerState, "expected state");
ok(typeof self.containerState.size === "number", "expected size");
return factorySpace(
effects,
afterPrefix,
types.listItemIndent,
self.containerState.size + 1
);
function afterPrefix(code) {
ok(self.containerState, "expected state");
const tail = self.events[self.events.length - 1];
return tail && tail[1].type === types.listItemIndent && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok3(code) : nok(code);
}
}
function tokenizeListEnd(effects) {
ok(this.containerState, "expected state");
ok(typeof this.containerState.type === "string", "expected type");
effects.exit(this.containerState.type);
}
function tokenizeListItemPrefixWhitespace(effects, ok3, nok) {
const self = this;
ok(
self.parser.constructs.disable.null,
"expected `disable.null` to be populated"
);
return factorySpace(
effects,
afterPrefix,
types.listItemPrefixWhitespace,
self.parser.constructs.disable.null.includes("codeIndented") ? void 0 : constants.tabSize + 1
);
function afterPrefix(code) {
const tail = self.events[self.events.length - 1];
return !markdownSpace(code) && tail && tail[1].type === types.listItemPrefixWhitespace ? ok3(code) : nok(code);
}
}
// node_modules/micromark-core-commonmark/dev/lib/setext-underline.js
var setextUnderline = {
name: "setextUnderline",
resolveTo: resolveToSetextUnderline,
tokenize: tokenizeSetextUnderline
};
function resolveToSetextUnderline(events, context) {
let index = events.length;
let content2;
let text;
let definition2;
while (index--) {
if (events[index][0] === "enter") {
if (events[index][1].type === types.content) {
content2 = index;
break;
}
if (events[index][1].type === types.paragraph) {
text = index;
}
} else {
if (events[index][1].type === types.content) {
events.splice(index, 1);
}
if (!definition2 && events[index][1].type === types.definition) {
definition2 = index;
}
}
}
ok(text !== void 0, "expected a `text` index to be found");
ok(content2 !== void 0, "expected a `text` index to be found");
ok(events[content2][2] === context, "enter context should be same");
ok(
events[events.length - 1][2] === context,
"enter context should be same"
);
const heading = {
type: types.setextHeading,
start: { ...events[content2][1].start },
end: { ...events[events.length - 1][1].end }
};
events[text][1].type = types.setextHeadingText;
if (definition2) {
events.splice(text, 0, ["enter", heading, context]);
events.splice(definition2 + 1, 0, ["exit", events[content2][1], context]);
events[content2][1].end = { ...events[definition2][1].end };
} else {
events[content2][1] = heading;
}
events.push(["exit", heading, context]);
return events;
}
function tokenizeSetextUnderline(effects, ok3, nok) {
const self = this;
let marker;
return start;
function start(code) {
let index = self.events.length;
let paragraph;
ok(
code === codes.dash || code === codes.equalsTo,
"expected `=` or `-`"
);
while (index--) {
if (self.events[index][1].type !== types.lineEnding && self.events[index][1].type !== types.linePrefix && self.events[index][1].type !== types.content) {
paragraph = self.events[index][1].type === types.paragraph;
break;
}
}
if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {
effects.enter(types.setextHeadingLine);
marker = code;
return before(code);
}
return nok(code);
}
function before(code) {
effects.enter(types.setextHeadingLineSequence);
return inside(code);
}
function inside(code) {
if (code === marker) {
effects.consume(code);
return inside;
}
effects.exit(types.setextHeadingLineSequence);
return markdownSpace(code) ? factorySpace(effects, after, types.lineSuffix)(code) : after(code);
}
function after(code) {
if (code === codes.eof || markdownLineEnding(code)) {
effects.exit(types.setextHeadingLine);
return ok3(code);
}
return nok(code);
}
}
// node_modules/micromark-util-decode-string/dev/index.js
var characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
function decodeString(value) {
return value.replace(characterEscapeOrReference, decode);
}
function decode($0, $1, $2) {
if ($1) {
return $1;
}
const head = $2.charCodeAt(0);
if (head === codes.numberSign) {
const head2 = $2.charCodeAt(1);
const hex = head2 === codes.lowercaseX || head2 === codes.uppercaseX;
return decodeNumericCharacterReference(
$2.slice(hex ? 2 : 1),
hex ? constants.numericBaseHexadecimal : constants.numericBaseDecimal
);
}
return decodeNamedCharacterReference($2) || $0;
}
export {
ok,
unreachable,
toString,
decodeNamedCharacterReference,
codes,
constants,
types,
values,
splice,
push,
combineExtensions,
decodeNumericCharacterReference,
normalizeIdentifier,
asciiAlpha,
asciiAlphanumeric,
asciiControl,
markdownLineEnding,
markdownLineEndingOrSpace,
markdownSpace,
unicodePunctuation,
unicodeWhitespace,
normalizeUri,
factorySpace,
classifyCharacter,
resolveAll,
attention,
autolink,
blankLine,
blockQuote,
characterEscape,
characterReference,
codeFenced,
codeIndented,
codeText,
subtokenize,
content,
definition,
hardBreakEscape,
headingAtx,
htmlFlow,
htmlText,
labelEnd,
labelStartImage,
labelStartLink,
lineEnding,
thematicBreak,
list,
setextUnderline,
decodeString,
convert,
EXIT,
visitParents,
visit
};
//# sourceMappingURL=chunk-ZJALRI2F.js.map