{"version":3,"file":"static/js/main.7c507758.js","mappings":"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","sources":["../node_modules/extend/index.js","../node_modules/inline-style-parser/index.js","../node_modules/is-buffer/index.js","../node_modules/mdurl/encode.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/index.js","apps/policies|sync|/^/.//.*/.txt$","../webpack/bootstrap","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../../packages/react-router-dom/index.tsx","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/unist-util-stringify-position/index.js","../node_modules/vfile-message/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/bail/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/unist-builder/index.js","../node_modules/unist-util-is/index.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/unist-util-visit/index.js","../node_modules/unist-util-position/index.js","../node_modules/mdast-util-definitions/index.js","../node_modules/mdast-util-to-hast/lib/traverse.js","../node_modules/micromark-util-encode/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/wrap.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/unist-util-generated/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/react-markdown/lib/react-markdown.js","apps/list.js","App.js","reportWebVitals.js","index.js"],"sourcesContent":["'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","var map = {\n\t\"./unprompted.txt\": 820\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 275;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"9661e67c\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"static:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkstatic\"] = self[\"webpackChunkstatic\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\n/**\n * Stringify one point, a position (start and end points), or a node’s\n * positional information.\n *\n * @param {Node|NodeLike|Position|Point|null} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point|undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position|undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number|undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nexport class VFileMessage extends Error {\n /**\n * Constructor of a message for `reason` at `place` from `origin`.\n * When an error is passed in as `reason`, copies the `stack`.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n */\n constructor(reason, place, origin) {\n /** @type {[string|null, string|null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n position.start = place\n }\n }\n\n // Fields from `Error`\n this.name = stringifyPosition(place) || '1:1'\n this.message = typeof reason === 'object' ? reason.message : reason\n this.stack = typeof reason === 'object' ? reason.stack : ''\n\n /**\n * Reason for message.\n * @type {string}\n */\n this.reason = this.message\n /**\n * If true, marks associated file as no longer processable.\n * @type {boolean?}\n */\n // eslint-disable-next-line no-unused-expressions\n this.fatal\n /**\n * Starting line of error.\n * @type {number?}\n */\n this.line = position.start.line\n /**\n * Starting column of error.\n * @type {number?}\n */\n this.column = position.start.column\n /**\n * Namespace of warning.\n * @type {string?}\n */\n this.source = parts[0]\n /**\n * Category of message.\n * @type {string?}\n */\n this.ruleId = parts[1]\n /**\n * Full range information, when available.\n * Has start and end properties, both set to an object with line and column, set to number?.\n * @type {Position?}\n */\n this.position = position\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /* eslint-disable no-unused-expressions */\n /**\n * You can use this to specify the source value that’s being reported, which\n * is deemed incorrect.\n * @type {string?}\n */\n this.actual\n /**\n * You can use this to suggest values that should be used instead of\n * `actual`, one or more values that are deemed as acceptable.\n * @type {Array?}\n */\n this.expected\n /**\n * You may add a file property with a path of a file (used throughout the VFile ecosystem).\n * @type {string?}\n */\n this.file\n /**\n * You may add a url property with a link to documentation for the message.\n * @type {string?}\n */\n this.url\n /**\n * You may add a note property with a long form description of the message (supported by vfile-reporter).\n * @type {string?}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * @param {Array} segments\n * @returns {string}\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string|undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Note: `normalize` is not exposed as `path.normalize`, so some code is\n * manually removed from it.\n *\n * @param {string} path\n * @returns {string}\n */\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * @param {boolean} allowAboveRoot\n * @returns {string}\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number|undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * @param {string} path\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * @param {unknown} fileURLOrPath\n * @returns {fileURLOrPath is URL}\n */\n// From: \nexport function isUrl(fileURLOrPath) {\n return (\n fileURLOrPath !== null &&\n typeof fileURLOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileURLOrPath.href &&\n // @ts-expect-error: indexable.\n fileURLOrPath.origin\n )\n}\n","/// \n\nimport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {string|URL} path\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * @param {URL} url\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {Record & {type: string, position?: Position|undefined}} NodeLike\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n *\n * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n * This is a copy of the typing from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: \n *\n * @typedef {Value|Options|VFile|URL} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * @property {Value} [value]\n * @property {string} [cwd]\n * @property {Array} [history]\n * @property {string|URL} [path]\n * @property {string} [basename]\n * @property {string} [stem]\n * @property {string} [extname]\n * @property {string} [dirname]\n * @property {Data} [data]\n *\n * @typedef Map\n * Raw source map, see:\n * .\n * @property {number} version\n * @property {Array} sources\n * @property {Array} names\n * @property {string|undefined} [sourceRoot]\n * @property {Array|undefined} [sourcesContent]\n * @property {string} mappings\n * @property {string} file\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration: a bunch of keys that will be shallow copied over to the new\n * file.\n *\n * @typedef {Record} ReporterSettings\n * @typedef {(files: Array, options: T) => string} Reporter\n */\n\nimport buffer from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * If `options` is `string` or `Buffer`, it’s treated as `{value: options}`.\n * If `options` is a `URL`, it’s treated as `{path: options}`.\n * If `options` is a `VFile`, shallow copies its data over to the new file.\n * All fields in `options` are set on the newly created `VFile`.\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * It’s not possible to set either `dirname` or `extname` without setting\n * either `history`, `path`, `basename`, or `stem` as well.\n *\n * @param {Compatible} [value]\n */\n constructor(value) {\n /** @type {Options} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n // @ts-expect-error Looks like a buffer.\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n // @ts-expect-error Looks like file or options.\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n * @type {Array}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n * The first is the original path and the last is the current path.\n * @type {Array}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n * This is used by vfile reporters.\n * @type {boolean}\n */\n this.stored\n\n /**\n * Sometimes files have a non-string, compiled, representation.\n * This can be stored in the `result` field.\n * One example is when turning markdown into React nodes.\n * This is used by unified to store non-string results.\n * @type {unknown}\n */\n this.result\n\n /**\n * Sometimes files have a source map associated with them.\n * This can be stored in the `map` field.\n * This should be a `Map` type, which is equivalent to the `RawSourceMap`\n * type from the `source-map` module.\n * @type {Map|undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (prop in options && options[prop] !== undefined) {\n // @ts-expect-error: TS is confused by the different types for `history`.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) this[prop] = options[prop]\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n * @param {string|URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding} [encoding='utf8']\n * When `value` is a `Buffer`, `encoding` is a character encoding to\n * understand it as (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding)\n }\n\n /**\n * Constructs a new `VFileMessage`, where `fatal` is set to `false`, and\n * associates it with the file by adding it to `vfile.messages` and setting\n * `message.file` to the current filepath.\n *\n * @param {string|Error} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Like `VFile#message()`, but associates an informational message where\n * `fatal` is set to `null`.\n *\n * @param {string|Error} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Like `VFile#message()`, but associates a fatal message where `fatal` is\n * set to `true`, and then immediately throws it.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string|Error} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {never}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {void}\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {asserts part is string}\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string|undefined} path\n * @param {string} name\n * @returns {asserts path is string}\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array) => void} Callback\n * @typedef {(...input: Array) => any} Middleware\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error|null|undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef Options\n * @property {boolean} [includeImageAlt=true]\n */\n\n/**\n * Get the text content of a node.\n * Prefer the node’s plain-text fields, otherwise serialize its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toString(node, options) {\n var {includeImageAlt = true} = options || {}\n return one(node, includeImageAlt)\n}\n\n/**\n * @param {unknown} node\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction one(node, includeImageAlt) {\n return (\n (node &&\n typeof node === 'object' &&\n // @ts-ignore looks like a literal.\n (node.value ||\n // @ts-ignore looks like an image.\n (includeImageAlt ? node.alt : '') ||\n // @ts-ignore looks like a parent.\n ('children' in node && all(node.children, includeImageAlt)) ||\n (Array.isArray(node) && all(node, includeImageAlt)))) ||\n ''\n )\n}\n\n/**\n * @param {Array.} values\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction all(values, includeImageAlt) {\n /** @type {Array.} */\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt)\n }\n\n return result.join('')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {unknown[]} */\n\n let parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let code\n\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {unknown[]} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let type\n\n if (right) {\n for (type in right) {\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n return check\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code Character code\n * @returns {code is number} Whether the character code matches the bound regex\n */\n\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n /** @type {State} */\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n\n let previous\n return contentStart\n /** @type {State} */\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n /** @type {State} */\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n /** @type {State} */\n\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n const self = this\n /** @type {StackItem[]} */\n\n const stack = []\n let continued = 0\n /** @type {TokenizeContext|undefined} */\n\n let childFlow\n /** @type {Token|undefined} */\n\n let childToken\n /** @type {number} */\n\n let lineStartOffset\n return start\n /** @type {State} */\n\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n } // Done.\n\n return checkNewContainers(code)\n }\n /** @type {State} */\n\n function documentContinue(code) {\n continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point|undefined} */\n\n let point // Find the flow chunk.\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n /** @type {State} */\n\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n } // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n } // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n } // Check if there is a new container.\n\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n /** @type {State} */\n\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n /** @type {State} */\n\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n /** @type {State} */\n\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n /** @type {State} */\n\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n return documentContinued(code)\n }\n /** @type {State} */\n\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n /** @type {State} */\n\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n /**\n * @param {Token} token\n * @param {boolean} [eof]\n * @returns {void}\n */\n\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream) // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n (!childFlow.events[index][1].end || // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean|undefined} */\n\n let seen\n /** @type {Point|undefined} */\n\n let point // Find the previous chunk (the one before the lazy line).\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n }\n }\n /**\n * @param {number} size\n * @returns {void}\n */\n\n function exitContainers(size) {\n let index = stack.length // Exit open containers.\n\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n /** @type {State} */\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n /** @type {Record} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n\n let event\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number} */\n\n let otherIndex\n /** @type {Event} */\n\n let otherEvent\n /** @type {Event[]} */\n\n let parameters\n /** @type {Event[]} */\n\n let subevents\n /** @type {boolean|undefined} */\n\n let more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record}\n */\n\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {number[]} */\n\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {[number, number][]} */\n\n const jumps = []\n /** @type {Record} */\n\n const gaps = {}\n /** @type {Chunk[]} */\n\n let stream\n /** @type {Token|undefined} */\n\n let previous\n let index = -1\n /** @type {Token|undefined} */\n\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = current\n current = current.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start) // Help GC.\n\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n } // Help GC.\n\n tokenizer.events = [] // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n } // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n\n index = -1\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n /** @type {Token} */\n let previous\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return data\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n /** @type {State} */\n\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n /** @type {State} */\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n /** @type {State} */\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n /** @type {Initializer} */\n\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n /** @type {State} */\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n /** @type {State} */\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n\n function atBreak(code) {\n if (code === null) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n while (++index < list.length) {\n const item = list[index]\n\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n /** @type {Resolver} */\n\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number|undefined} */\n\n let enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean|undefined} */\n\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Resolver[]} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n\n const columnStart = {}\n /** @type {Construct[]} */\n\n const resolveAllConstructs = []\n /** @type {Chunk[]} */\n\n let chunks = []\n /** @type {Token[]} */\n\n let stack = []\n /** @type {boolean|undefined} */\n\n let consumed = true\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n /**\n * The state function.\n *\n * @type {State|void}\n */\n\n let state = initialize.tokenize.call(context, effects)\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n /** @type {TokenizeContext['write']} */\n\n function write(slice) {\n chunks = push(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n /** @type {TokenizeContext['sliceStream']} */\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n /** @type {TokenizeContext['now']} */\n\n function now() {\n return Object.assign({}, point)\n }\n /** @type {TokenizeContext['defineSkip']} */\n\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n /** @type {Effects['consume']} */\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n\n consumed = true\n }\n /** @type {Effects['enter']} */\n\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n /** @type {Effects['exit']} */\n\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {Record} [fields]\n */\n\n function constructFactory(onreturn, fields) {\n return hook\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Construct|Construct[]|ConstructRecord} constructs\n * @param {State} returnState\n * @param {State} [bogusState]\n * @returns {State}\n */\n\n function hook(constructs, returnState, bogusState) {\n /** @type {Construct[]} */\n let listOfConstructs\n /** @type {number} */\n\n let constructIndex\n /** @type {Construct} */\n\n let currentConstruct\n /** @type {Info} */\n\n let info\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n ? handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n\n function handleMapOfConstructs(map) {\n return start\n /** @type {State} */\n\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Construct[]} list\n * @returns {State}\n */\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n\n function handleConstruct(construct) {\n return start\n /** @type {State} */\n\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n /** @type {State} */\n\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n /** @type {State} */\n\n function nok(code) {\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */\n\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n /**\n * Restore state.\n *\n * @returns {void}\n */\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Chunk[]} chunks\n * @param {Pick} token\n * @returns {Chunk[]}\n */\n\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Chunk[]} */\n\n let view\n\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Chunk[]} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {string[]} */\n\n const result = []\n /** @type {boolean|undefined} */\n\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n\n case -4: {\n value = '\\n'\n break\n }\n\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n /**\n * @type {State}\n **/\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n /** @type {State} */\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n /** @type {State} */\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n /** @type {State} */\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (code === null || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n /** @type {State} */\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n /** @type {State} */\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n /** @type {State} */\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n /** @type {State} */\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable} */\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n /** @type {State} */\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n /** @type {State} */\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n /** @type {State} */\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n /** @type {State} */\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n\n let identifier\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (!self.parser.defined.includes(identifier)) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n /** @type {State} */\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeIndented')\n return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterStartPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? afterPrefix(code)\n : nok(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContent, afterPrefix, after)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n /** @type {State} */\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeIndented')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? start(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n // @ts-expect-error Constants are fine to assign.\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n const self = this\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n /** @type {State} */\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length\n /** @type {number|undefined} */\n\n let content\n /** @type {number|undefined} */\n\n let text\n /** @type {number|undefined} */\n\n let definition // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {NonNullable} */\n\n let marker\n /** @type {boolean} */\n\n let paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesn’t have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * .\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * .\n *\n * Note that `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n\n let kind\n /** @type {boolean} */\n\n let startTag\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {Code} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.includes(buffer.toLowerCase())\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting\n\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n /** @type {State} */\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = null\n return completeAttributeValueUnquoted(code)\n }\n /** @type {State} */\n\n function completeAttributeValueQuoted(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n /** @type {State} */\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n /** @type {State} */\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n /** @type {State} */\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n /** @type {State} */\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n /** @type {State} */\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n {\n tokenize: htmlLineEnd,\n partial: true\n },\n htmlContinueStart,\n done\n )(code)\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n /** @type {Tokenizer} */\n\n function htmlLineEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {State} */\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n } // More dashes.\n\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n\n const closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n /** @type {Construct} */\n\n const nonLazyLine = {\n tokenize: tokenizeNonLazyLine,\n partial: true\n }\n const tail = this.events[this.events.length - 1]\n const initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n /** @type {State} */\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n /** @type {State} */\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n /** @type {State} */\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n /** @type {State} */\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n /** @type {State} */\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n /** @type {State} */\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : contentStart(code)\n }\n /** @type {State} */\n\n function contentStart(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n nonLazyLine,\n effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(\n effects,\n contentStart,\n 'linePrefix',\n initialPrefix + 1\n )\n : contentStart\n ),\n after\n )(code)\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return contentStart(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeNonLazyLine(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {Tokenizer} */\n\n function tokenizeClosingFence(effects, ok, nok) {\n let size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n /** @type {State} */\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n\n let max\n /** @type {(code: Code) => code is number} */\n\n let test\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n /** @type {State} */\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n /** @type {State} */\n\n function value(code) {\n /** @type {Token} */\n let token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n let index = -1\n /** @type {Token} */\n\n let token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n\n let token\n /** @type {number|undefined} */\n\n let open\n /** @type {number|undefined} */\n\n let close\n /** @type {Event[]} */\n\n let media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = push(media, [['enter', text, context]]) // Between.\n\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = push(media, events.slice(close + 1)) // Media close.\n\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n\n let labelStart\n /** @type {boolean} */\n\n let defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n /** @type {State} */\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n /** @type {State} */\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n /** @type {State} */\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n /** @type {State} */\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n /** @type {State} */\n\n function afterLabel(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * Note that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n\n let open\n /** @type {Token} */\n\n let group\n /** @type {Token} */\n\n let text\n /** @type {Token} */\n\n let openingSequence\n /** @type {Token} */\n\n let closingSequence\n /** @type {number} */\n\n let use\n /** @type {Event[]} */\n\n let nextEvents\n /** @type {number} */\n\n let offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 1\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n /** @type {State} */\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n /** @type {State} */\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n /** @type {State} */\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n /** @type {State} */\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n /** @type {State} */\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n /** @type {State} */\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable|undefined} */\n\n let marker\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {State} */\n\n let returnState\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n /** @type {State} */\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n /** @type {State} */\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n /** @type {State} */\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n /** @type {State} */\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n /** @type {State} */\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n /** @type {State} */\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook. */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n\n let index\n /** @type {number|undefined} */\n\n let enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n\n let size\n /** @type {Token} */\n\n let token\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n /** @type {State} */\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n /** @type {State} */\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n /** @type {State} */\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n /** @type {State} */\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n/** @type {Extension['document']} */\n\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n/** @type {Extension['string']} */\n\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Chunk[]}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean|undefined} */\n\n let start = true\n /** @type {boolean|undefined} */\n\n let atCarriageReturn\n return preprocessor\n /** @type {Preprocessor} */\n\n function preprocessor(value, encoding, end) {\n /** @type {Chunk[]} */\n const chunks = []\n /** @type {RegExpMatchArray|null} */\n\n let match\n /** @type {number} */\n\n let next\n /** @type {number} */\n\n let startPosition\n /** @type {number} */\n\n let endPosition\n /** @type {Code} */\n\n let code // @ts-expect-error `Buffer` does allow an encoding.\n\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n\n break\n }\n\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n/**\n * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n } // Reference.\n\n const head = $2.charCodeAt(0)\n\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {Extract} Parent\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {UnistParent & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @typedef _CompileDataFields\n * @property {boolean|undefined} expectingFirstListItemValue\n * @property {boolean|undefined} flowCodeInside\n * @property {boolean|undefined} setextHeadingSlurpLineEnding\n * @property {boolean|undefined} atHardBreak\n * @property {'collapsed'|'full'} referenceType\n * @property {boolean|undefined} inReference\n * @property {'characterReferenceMarkerHexadecimal'|'characterReferenceMarkerNumeric'} characterReferenceType\n *\n * @typedef {Record & Partial<_CompileDataFields>} CompileData\n *\n * @typedef {(tree: Root) => Root|void} Transform\n * @typedef {(this: CompileContext, token: Token) => void} Handle\n * @typedef {Record} Handles\n * Token types mapping to handles\n * @typedef {Record|Array> & {canContainEols: Array, transforms: Array, enter: Handles, exit: Handles}} NormalizedExtension\n * @typedef {Partial} Extension\n * An mdast extension changes how markdown tokens are turned into mdast.\n *\n * @typedef {(this: Omit, left: Token|undefined, right: Token) => void} OnEnterError\n * @typedef {(this: Omit, left: Token, right: Token) => void} OnExitError\n *\n * @typedef CompileContext\n * mdast compiler context\n * @property {Array} stack\n * @property {Array<[Token, OnEnterError|undefined]>} tokenStack\n * @property {(key: string, value?: unknown) => void} setData\n * Set data into the key-value store.\n * @property {(key: K) => CompileData[K]} getData\n * Get data from the key-value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: N, token: Token, onError?: OnEnterError) => N} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {NormalizedExtension} config\n * Configuration.\n *\n * @typedef {{mdastExtensions?: Array>}} FromMarkdownOptions\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n */\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n/**\n * @param value Markdown to parse (`string` or `Buffer`).\n * @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`).\n * @param [options] Configuration\n */\n\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options) => Root) &\n * ((value: Value, options?: Options) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {Options} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options} [options]\n */\n\nfunction compiler(options = {}) {\n /** @type {NormalizedExtension} */\n // @ts-expect-error: our base has all required fields, so the result will too.\n const config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n options.mdastExtensions || []\n )\n /** @type {CompileData} */\n\n const data = {}\n return compile\n /**\n * @param {Array} events\n * @returns {Root}\n */\n\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {CompileContext['stack']} */\n\n const stack = [tree]\n /** @type {CompileContext['tokenStack']} */\n\n const tokenStack = []\n /** @type {Array} */\n\n const listStack = []\n /** @type {Omit} */\n\n const context = {\n stack,\n tokenStack,\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n let index = -1\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n const handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length > 0) {\n const tail = tokenStack[tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n } // Figure out `root` position.\n\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n index = -1\n\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token|undefined} */\n\n let listItem\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number|undefined} */\n\n let firstBlankLineIndex\n /** @type {boolean|undefined} */\n\n let atMarker\n\n while (++index <= length) {\n const event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n // @ts-expect-error Patched.\n listItem._spread = true\n } // Fix position.\n\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n } // Create a new list item.\n\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n // @ts-expect-error Patched\n _spread: false,\n start: Object.assign({}, event[1].start)\n } // @ts-expect-error: `listItem` is most definitely defined, TS...\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n } // @ts-expect-error Patched.\n\n events[start][1]._spread = listSpread\n return length\n }\n /**\n * @type {CompileContext['setData']}\n * @param [value]\n */\n\n function setData(key, value) {\n data[key] = value\n }\n /**\n * @type {CompileContext['getData']}\n * @template {string} K\n * @param {K} key\n * @returns {CompileData[K]}\n */\n\n function getData(key) {\n return data[key]\n }\n /**\n * @param {Point} d\n * @returns {Point}\n */\n\n function point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n }\n /**\n * @param {(token: Token) => Node} create\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function opener(create, and) {\n return open\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n /** @type {CompileContext['buffer']} */\n\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n /**\n * @type {CompileContext['enter']}\n * @template {Node} N\n * @this {CompileContext}\n * @param {N} node\n * @param {Token} token\n * @param {OnEnterError} [errorHandler]\n * @returns {N}\n */\n\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler]) // @ts-expect-error: `end` will be patched later.\n\n node.position = {\n start: point(token.start)\n }\n return node\n }\n /**\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function closer(and) {\n return close\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n /**\n * @type {CompileContext['exit']}\n * @this {CompileContext}\n * @param {Token} token\n * @param {OnExitError} [onExitError]\n * @returns {Node}\n */\n\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n\n node.position.end = point(token.end)\n return node\n }\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n\n function resume() {\n return toString(this.stack.pop())\n } //\n // Handlers.\n //\n\n /** @type {Handle} */\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n /** @type {Handle} */\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor =\n /** @type {List} */\n this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n /** @type {Handle} */\n\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.lang = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.meta = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n /** @type {Handle} */\n\n function onexitcodefenced() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n /** @type {Handle} */\n\n function onexitcodeindented() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n /** @type {Handle} */\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n const label = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitatxheadingsequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n /** @type {Handle} */\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n /** @type {Handle} */\n\n function onexitsetextheadinglinesequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n /** @type {Handle} */\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n /** @type {Handle} */\n\n function onenterdata(token) {\n const parent =\n /** @type {Parent} */\n this.stack[this.stack.length - 1]\n /** @type {Node} */\n\n let tail = parent.children[parent.children.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text() // @ts-expect-error: we’ll add `end` later.\n\n tail.position = {\n start: point(token.start)\n } // @ts-expect-error: Assume `parent` accepts `text`.\n\n parent.children.push(tail)\n }\n\n this.stack.push(tail)\n }\n /** @type {Handle} */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n /** @type {Handle} */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n /** @type {Handle} */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexithtmltext() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitcodetext() {\n const data = this.resume()\n const node =\n /** @type {InlineCode} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitlink() {\n const context =\n /** @type {Link & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitimage() {\n const context =\n /** @type {Image & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitlabeltext(token) {\n const ancestor =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 2]\n const string = this.sliceSerialize(token)\n ancestor.label = decodeString(string)\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitlabel() {\n const fragment =\n /** @type {Fragment} */\n this.stack[this.stack.length - 1]\n const value = this.resume()\n const node =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // Assume a reference.\n\n setData('inReference', true)\n\n if (node.type === 'link') {\n // @ts-expect-error: Assume static phrasing content.\n node.children = fragment.children\n } else {\n node.alt = value\n }\n }\n /** @type {Handle} */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitresource() {\n setData('inReference')\n }\n /** @type {Handle} */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n /** @type {Handle} */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node =\n /** @type {LinkReference|ImageReference} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n\n let value\n\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n // @ts-expect-error `decodeNamedCharacterReference` can return false for\n // invalid named character references, but everything we’ve tokenized is\n // valid.\n value = decodeNamedCharacterReference(data)\n }\n\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n /** @type {Handle} */\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n } //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n /** @returns {Code} */\n\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n /** @returns {InlineCode} */\n\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n /** @returns {Definition} */\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n /** @returns {Emphasis} */\n\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n /** @returns {Heading} */\n\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n /** @returns {Break} */\n\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n /** @returns {HTML} */\n\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n /** @returns {Image} */\n\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n /** @returns {Link} */\n\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {List}\n */\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n // @ts-expect-error Patched.\n spread: token._spread,\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n\n function listItem(token) {\n return {\n type: 'listItem',\n // @ts-expect-error Patched.\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n /** @returns {Paragraph} */\n\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n /** @returns {Strong} */\n\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n /** @returns {Text} */\n\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n /** @returns {ThematicBreak} */\n\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n/**\n * @param {Extension} combined\n * @param {Array>} extensions\n * @returns {Extension}\n */\n\nfunction configure(combined, extensions) {\n let index = -1\n\n while (++index < extensions.length) {\n const value = extensions[index]\n\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n\n return combined\n}\n/**\n * @param {Extension} combined\n * @param {Extension} extension\n * @returns {void}\n */\n\nfunction extension(combined, extension) {\n /** @type {string} */\n let key\n\n for (key in extension) {\n if (own.call(extension, key)) {\n const list = key === 'canContainEols' || key === 'transforms'\n const maybe = own.call(combined, key) ? combined[key] : undefined\n /* c8 ignore next */\n\n const left = maybe || (combined[key] = list ? [] : {})\n const right = extension[key]\n\n if (right) {\n if (list) {\n // @ts-expect-error: `left` is an array.\n combined[key] = [...left, ...right]\n } else {\n Object.assign(left, right)\n }\n }\n }\n }\n}\n/** @type {OnEnterError} */\n\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Event[]} events\n * @returns {Event[]}\n */\n\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\n */\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n /** @type {FullNormalizedExtension} */\n // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n const constructs = combineExtensions(\n // @ts-expect-error Same as above.\n [defaultConstructs].concat(options.extensions || [])\n )\n /** @type {ParseContext} */\n\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n /**\n * @param {InitialConstruct} initial\n */\n\n function create(initial) {\n return creator\n /** @type {Create} */\n\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","import remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist').Literal} Literal\n * @typedef {Object.} Props\n * @typedef {Array.|string} ChildrenOrValue\n *\n * @typedef {(, C extends Node[]>(type: T, props: P, children: C) => {type: T, children: C} & P)} BuildParentWithProps\n * @typedef {(>(type: T, props: P, value: string) => {type: T, value: string} & P)} BuildLiteralWithProps\n * @typedef {(>(type: T, props: P) => {type: T} & P)} BuildVoidWithProps\n * @typedef {((type: T, children: C) => {type: T, children: C})} BuildParent\n * @typedef {((type: T, value: string) => {type: T, value: string})} BuildLiteral\n * @typedef {((type: T) => {type: T})} BuildVoid\n */\n\nexport var u = /**\n * @type {BuildVoid & BuildVoidWithProps & BuildLiteral & BuildLiteralWithProps & BuildParent & BuildParentWithProps}\n */ (\n /**\n * @param {string} type Type of node\n * @param {Props|ChildrenOrValue} [props] Additional properties for node (or `children` or `value`)\n * @param {ChildrenOrValue} [value] `children` or `value` of node\n * @returns {Node}\n */\n function (type, props, value) {\n /** @type {Node} */\n var node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n node.children = value\n } else if (value !== undefined && value !== null) {\n node.value = String(value)\n }\n\n return node\n }\n)\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * ((node: unknown, test: T['type']|Partial|TestFunctionPredicate|Array.|TestFunctionPredicate>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * When `array`, checks any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * When `array`, checks any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types.js').Action} Action\n * @typedef {import('./complex-types.js').Index} Index\n * @typedef {import('./complex-types.js').ActionTuple} ActionTuple\n * @typedef {import('./complex-types.js').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n * Tree to walk\n * @param [test]\n * `unist-util-is`-compatible test\n * @param visitor\n * Function called for nodes that pass `test`.\n * @param [reverse=false]\n * Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor, reverse?: boolean) => void) &\n * ((tree: Tree, visitor: import('./complex-types.js').BuildVisitor, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types.js').Visitor} visitor\n * @param {boolean} [reverse=false]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n /** @type {Record} */\n // @ts-expect-error: hush\n const value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string|undefined} */\n let name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n * Tree to walk\n * @param [test]\n * `unist-util-is`-compatible test\n * @param visitor\n * Function called for nodes that pass `test`.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visit =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor, reverse?: boolean) => void) &\n * ((tree: Tree, visitor: import('./complex-types.js').BuildVisitor, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types.js').Visitor} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {Record & {type: string, position?: PositionLike|undefined}} NodeLike\n * @typedef {import('unist').Point} Point\n *\n * @typedef {Partial} PointLike\n *\n * @typedef PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n */\n\nexport const pointStart = point('start')\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {Position}\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start'|'end'} type\n */\nfunction point(type) {\n return point\n\n /**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n return {\n line: point.line || null,\n column: point.column || null,\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n * @typedef {import('mdast').Definition} Definition\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `node`.\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} node\n */\nexport function definitions(node) {\n /** @type {Record} */\n const cache = Object.create(null)\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(node, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /**\n * Get a node from the bound definition cache.\n *\n * @param {string} identifier\n * @returns {Definition|null}\n */\n function definition(identifier) {\n const id = clean(identifier)\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('./index.js').H} H\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Transform an unknown node.\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction unknown(h, node) {\n const data = node.data || {}\n\n if (\n 'value' in node &&\n !(\n own.call(data, 'hName') ||\n own.call(data, 'hProperties') ||\n own.call(data, 'hChildren')\n )\n ) {\n return h.augment(node, u('text', node.value))\n }\n\n return h(node, 'div', all(h, node))\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nexport function one(h, node, parent) {\n const type = node && node.type\n /** @type {Handler} */\n let fn\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(h.handlers, type)) {\n fn = h.handlers[type]\n } else if (h.passThrough && h.passThrough.includes(type)) {\n fn = returnNode\n } else {\n fn = h.unknownHandler\n }\n\n return (typeof fn === 'function' ? fn : unknown)(h, node, parent)\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction returnNode(h, node) {\n // @ts-expect-error: Pass through custom node.\n return 'children' in node ? {...node, children: all(h, node)} : node\n}\n\n/**\n * @param {H} h\n * @param {MdastNode} parent\n */\nexport function all(h, parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n\n while (++index < nodes.length) {\n const result = one(h, nodes[index], parent)\n\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '')\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = head.value.replace(/^\\s+/, '')\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n}\n","const characterReferences = {'\"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}\n\n/**\n * Encode only the dangerous HTML characters.\n *\n * This ensures that certain characters which have special meaning in HTML are\n * dealt with.\n * Technically, we can skip `>` and `\"` in many cases, but CM includes them.\n *\n * @param {string} value\n * @returns {string}\n */\nexport function encode(value) {\n return value.replace(/[\"&<>]/g, replace)\n\n /**\n * @param {string} value\n * @returns {string}\n */\n function replace(value) {\n // @ts-expect-error Hush, it’s fine.\n return '&' + characterReferences[value] + ';'\n }\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri` below).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * Then, a regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`,\n * or `/^https?$/i` for `img[src]`.\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string|undefined} url\n * @param {RegExp} [protocol]\n * @returns {string}\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n\n if (!protocol) {\n return value\n }\n\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) || // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n/**\n * Normalize a URL (such as used in definitions).\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * @returns {string}\n */\n\nfunction normalizeUri(value) {\n /** @type {string[]} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n\n let replace = '' // A correct percent encoded value.\n\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n } // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n } // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1) // A correct surrogate pair.\n\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n } // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n } // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n\n if (skip) {\n index += skip\n skip = 0\n }\n }\n\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Wrap `nodes` with line feeds between each entry.\n * Optionally adds line feeds at the start and end.\n *\n * @param {Array} nodes\n * @param {boolean} [loose=false]\n * @returns {Array}\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push(u('text', '\\n'))\n }\n\n while (++index < nodes.length) {\n if (index) result.push(u('text', '\\n'))\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push(u('text', '\\n'))\n }\n\n return result\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {sanitizeUri} from 'micromark-util-sanitize-uri'\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {FootnoteReference} node\n */\nexport function footnoteReference(h, node) {\n const id = String(node.identifier)\n const safeId = sanitizeUri(id.toLowerCase())\n const index = h.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n h.footnoteOrder.push(id)\n h.footnoteCounts[id] = 1\n counter = h.footnoteOrder.length\n } else {\n h.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = h.footnoteCounts[id]\n\n return h(node, 'sup', [\n h(\n node.position,\n 'a',\n {\n href: '#' + h.clobberPrefix + 'fn-' + safeId,\n id:\n h.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: 'footnote-label'\n },\n [u('text', String(counter))]\n )\n ])\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @type {Handler}\n * @param {ImageReference|LinkReference} node\n * @returns {Content|Array}\n */\nexport function revert(h, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return u('text', '![' + node.alt + suffix)\n }\n\n const contents = all(h, node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift(u('text', '['))\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push(u('text', suffix))\n }\n\n return contents\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {ListItem} node\n * @param {List} parent\n */\nexport function listItem(h, node, parent) {\n const result = all(h, node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const props = {}\n /** @type {Array} */\n const wrapped = []\n\n if (typeof node.checked === 'boolean') {\n /** @type {Element} */\n let paragraph\n\n if (\n result[0] &&\n result[0].type === 'element' &&\n result[0].tagName === 'p'\n ) {\n paragraph = result[0]\n } else {\n paragraph = h(null, 'p', [])\n result.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift(u('text', ' '))\n }\n\n paragraph.children.unshift(\n h(null, 'input', {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n })\n )\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n props.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < result.length) {\n const child = result[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n wrapped.push(u('text', '\\n'))\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n wrapped.push(...child.children)\n } else {\n wrapped.push(child)\n }\n }\n\n const tail = result[result.length - 1]\n\n // Add a final eol.\n if (tail && (loose || !('tagName' in tail) || tail.tagName !== 'p')) {\n wrapped.push(u('text', '\\n'))\n }\n\n return h(node, 'li', props, wrapped)\n}\n\n/**\n * @param {List} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = node.spread\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n\n return Boolean(loose)\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return null\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Blockquote} node\n */\nexport function blockquote(h, node) {\n return h(node, 'blockquote', wrap(all(h, node), true))\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Break} node\n * @returns {Array}\n */\nexport function hardBreak(h, node) {\n return [h(node, 'br'), u('text', '\\n')]\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Code} node\n */\nexport function code(h, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang && node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/)\n /** @type {Properties} */\n const props = {}\n\n if (lang) {\n props.className = ['language-' + lang]\n }\n\n const code = h(node, 'code', props, [u('text', value)])\n\n if (node.meta) {\n code.data = {meta: node.meta}\n }\n\n return h(node.position, 'pre', [code])\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Delete} node\n */\nexport function strikethrough(h, node) {\n return h(node, 'del', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Emphasis} node\n */\nexport function emphasis(h, node) {\n return h(node, 'em', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../index.js').Handler} Handler\n *\n * @todo\n * `footnote` (or “inline note”) are a pandoc footnotes feature (`^[a note]`)\n * that does not exist in GFM.\n * We still have support for it, so that things remain working with\n * `micromark-extension-footnote` and `mdast-util-footnote`, but in the future\n * we might be able to remove it?\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n/**\n * @type {Handler}\n * @param {Footnote} node\n */\nexport function footnote(h, node) {\n const footnoteById = h.footnoteById\n let no = 1\n\n while (no in footnoteById) no++\n\n const identifier = String(no)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(h, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Heading} node\n */\nexport function heading(h, node) {\n return h(node, 'h' + node.depth, all(h, node))\n}\n","/**\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Return either a `raw` node in dangerous mode, otherwise nothing.\n *\n * @type {Handler}\n * @param {HTML} node\n */\nexport function html(h, node) {\n return h.dangerous ? h.augment(node, u('raw', node.value)) : null\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\n\n/**\n * @type {Handler}\n * @param {ImageReference} node\n */\nexport function imageReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {src: normalize(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\n\n/**\n * @type {Handler}\n * @param {Image} node\n */\nexport function image(h, node) {\n /** @type {Properties} */\n const props = {src: normalize(node.url), alt: node.alt}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {InlineCode} node\n */\nexport function inlineCode(h, node) {\n return h(node, 'code', [u('text', node.value.replace(/\\r?\\n|\\r/g, ' '))])\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {LinkReference} node\n */\nexport function linkReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {href: normalize(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Link} node\n */\nexport function link(h, node) {\n /** @type {Properties} */\n const props = {href: normalize(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {List} node\n * @returns {Element}\n */\nexport function list(h, node) {\n /** @type {Properties} */\n const props = {}\n const name = node.ordered ? 'ol' : 'ul'\n const items = all(h, node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n props.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < items.length) {\n const item = items[index]\n\n if (\n item.type === 'element' &&\n item.tagName === 'li' &&\n item.properties &&\n Array.isArray(item.properties.className) &&\n item.properties.className.includes('task-list-item')\n ) {\n props.className = ['contains-task-list']\n break\n }\n }\n\n return h(node, name, props, wrap(items, true))\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Paragraph} node\n */\nexport function paragraph(h, node) {\n return h(node, 'p', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\nimport {wrap} from '../wrap.js'\n\n/**\n * @type {Handler}\n * @param {Root} node\n */\nexport function root(h, node) {\n // @ts-expect-error `root`s are also fine.\n return h.augment(node, u('root', wrap(all(h, node))))\n}\n","/**\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Strong} node\n */\nexport function strong(h, node) {\n return h(node, 'strong', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Table} Table\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Table} node\n */\nexport function table(h, node) {\n const rows = node.children\n let index = -1\n const align = node.align || []\n /** @type {Array} */\n const result = []\n\n while (++index < rows.length) {\n const row = rows[index].children\n const name = index === 0 ? 'th' : 'td'\n /** @type {Array} */\n const out = []\n let cellIndex = -1\n const length = node.align ? align.length : row.length\n\n while (++cellIndex < length) {\n const cell = row[cellIndex]\n out.push(\n h(cell, name, {align: align[cellIndex]}, cell ? all(h, cell) : [])\n )\n }\n\n result[index] = h(rows[index], 'tr', wrap(out, true))\n }\n\n return h(\n node,\n 'table',\n wrap(\n [h(result[0].position, 'thead', wrap([result[0]], true))].concat(\n result[1]\n ? h(\n {\n start: pointStart(result[1]),\n end: pointEnd(result[result.length - 1])\n },\n 'tbody',\n wrap(result.slice(1), true)\n )\n : []\n ),\n true\n )\n )\n}\n","/**\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {trimLines} from 'trim-lines'\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Text} node\n */\nexport function text(h, node) {\n return h.augment(node, u('text', trimLines(String(node.value))))\n}\n","/**\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n */\n\n/**\n * @type {Handler}\n * @param {ThematicBreak} [node]\n * @returns {Element}\n */\nexport function thematicBreak(h, node) {\n return h(node, 'hr')\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('hast').Root|import('hast').Parent['children'][number]} HastNode\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} Content\n * @typedef {import('unist-util-position').PositionLike} PositionLike\n *\n * @typedef EmbeddedHastFields\n * @property {string} [hName]\n * Defines the tag name of an element.\n * @property {Properties} [hProperties]\n * Defines the properties of an element.\n * @property {Array} [hChildren]\n * Defines the (hast) children of an element.\n *\n * @typedef {Record & EmbeddedHastFields} Data\n * unist data with embedded hast fields.\n *\n * @typedef {MdastNode & {data?: Data}} NodeWithData\n * unist node with embedded hast data.\n *\n * @callback Handler\n * Handle a node.\n * @param {H} h\n * Handle context.\n * @param {any} node\n * mdast node to handle.\n * @param {Parent|null} parent\n * Parent of `node`.\n * @returns {Content|Array|null|undefined}\n * hast node.\n *\n * @callback HFunctionProps\n * @param {MdastNode|PositionLike|null|undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {Properties} props\n * Properties.\n * @param {Array?} [children]\n * hast content.\n * @returns {Element}\n * Compiled element.\n *\n * @callback HFunctionNoProps\n * @param {MdastNode|PositionLike|null|undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {Array?} [children]\n * hast content\n * @returns {Element}\n * Compiled element.\n *\n * @typedef HFields\n * @property {boolean} dangerous\n * Whether HTML is allowed.\n * @property {string} clobberPrefix\n * Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n * Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n * HTML used for the footnote label.\n * @property {Properties} footnoteLabelProperties\n * Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n * Label to use to go back to a footnote call from the footnote section.\n * @property {(identifier: string) => Definition|null} definition\n * Definition cache.\n * @property {Record} footnoteById\n * Footnote cache.\n * @property {Array} footnoteOrder\n * Order in which footnotes occur.\n * @property {Record} footnoteCounts\n * Counts the same footnote was used.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {Handler} unknownHandler\n * Handler for any none not in `passThrough` or otherwise handled.\n * @property {(left: NodeWithData|PositionLike|null|undefined, right: Content) => Content} augment\n * Like `h` but lower-level and usable on non-elements.\n * @property {Array} passThrough\n * List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean} [allowDangerousHtml=false]\n * Whether to allow `html` nodes and inject them as `raw` HTML.\n * @property {string} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute to prevent it from *clobbering*.\n * attributes.\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available in browsers on the `window` object.\n * Using a prefix prevents this from being a problem.\n * @property {string} [footnoteLabel='Footnotes']\n * Label to use for the footnotes section.\n * Affects screen reader users.\n * Change it if you’re authoring in a different language.\n * @property {string} [footnoteLabelTagName='h2']\n * HTML tag to use for the footnote label.\n * Can be changed to match your document structure and play well with your choice of css.\n * @property {Properties} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label.\n * A 'sr-only' class is added by default to hide this from sighted users.\n * Change it to make the label visible, or add classes for other purposes.\n * @property {string} [footnoteBackLabel='Back to content']\n * Label to use from backreferences back to their footnote call.\n * Affects screen reader users.\n * Change it if you’re authoring in a different language.\n * @property {Handlers} [handlers]\n * Object mapping mdast nodes to functions handling them\n * @property {Array} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast\n * @property {Handler} [unknownHandler]\n * Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n * Map of node types to handlers\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} H\n * Handle context\n */\n\nimport {u} from 'unist-builder'\nimport {visit} from 'unist-util-visit'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {one} from './traverse.js'\nimport {footer} from './footer.js'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Turn mdast into hast.\n *\n * @param {MdastNode} tree\n * mdast node.\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {H}\n * `h` function.\n */\nfunction factory(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Record} */\n const footnoteById = {}\n\n h.dangerous = dangerous\n h.clobberPrefix =\n settings.clobberPrefix === undefined || settings.clobberPrefix === null\n ? 'user-content-'\n : settings.clobberPrefix\n h.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n h.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n h.footnoteLabelProperties = settings.footnoteLabelProperties || {\n className: ['sr-only']\n }\n h.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n h.definition = definitions(tree)\n h.footnoteById = footnoteById\n /** @type {Array} */\n h.footnoteOrder = []\n /** @type {Record} */\n h.footnoteCounts = {}\n h.augment = augment\n h.handlers = {...handlers, ...settings.handlers}\n h.unknownHandler = settings.unknownHandler\n h.passThrough = settings.passThrough\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, it’s fine!\n return h\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n *\n * @param {(NodeWithData|PositionLike)?} left\n * @param {Content} right\n * @returns {Content}\n */\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {Data} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n // @ts-expect-error: fine.\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n function h(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n}\n\n/**\n * Transform `tree` (an mdast node) to a hast node.\n *\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {HastNode|null|undefined} hast node\n */\nexport function toHast(tree, options) {\n const h = factory(tree, options)\n const node = one(h, tree, null)\n const foot = footer(h)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push(u('text', '\\n'), foot)\n }\n\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n\nexport {handlers as defaultHandlers} from './handlers/index.js'\n","/**\n * @typedef {Object} PointLike\n * @property {number} [line]\n * @property {number} [column]\n * @property {number} [offset]\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\n/**\n * Check if `node` is *generated*.\n *\n * @param {NodeLike} [node]\n * @returns {boolean}\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('./index.js').H} H\n */\n\nimport {sanitizeUri} from 'micromark-util-sanitize-uri'\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\nimport {wrap} from './wrap.js'\n\n/**\n * @param {H} h\n * @returns {Element|null}\n */\nexport function footer(h) {\n let index = -1\n /** @type {Array} */\n const listItems = []\n\n while (++index < h.footnoteOrder.length) {\n const def = h.footnoteById[h.footnoteOrder[index].toUpperCase()]\n\n if (!def) {\n continue\n }\n\n const content = all(h, def)\n const id = String(def.identifier)\n const safeId = sanitizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= h.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n h.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: h.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: h.clobberPrefix + 'fn-' + safeId},\n children: wrap(content, true)\n }\n\n if (def.position) {\n listItem.position = def.position\n }\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return null\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: h.footnoteLabelTagName,\n properties: {\n ...JSON.parse(JSON.stringify(h.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [u('text', h.footnoteLabel)]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `