diff --git a/asset-manifest.json b/asset-manifest.json index 04730bd..e18d7ab 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,29 +1,29 @@ { "files": { - "main.css": "/goit-react-hw-05-movies/static/css/main.6c4536ee.css", - "main.js": "/goit-react-hw-05-movies/static/js/main.9e7d4f20.js", - "static/js/53.897844ba.chunk.js": "/goit-react-hw-05-movies/static/js/53.897844ba.chunk.js", - "static/js/370.535c0b8a.chunk.js": "/goit-react-hw-05-movies/static/js/370.535c0b8a.chunk.js", - "static/js/783.1eecd861.chunk.js": "/goit-react-hw-05-movies/static/js/783.1eecd861.chunk.js", + "main.css": "/goit-react-hw-05-movies/static/css/main.f07fa495.css", + "main.js": "/goit-react-hw-05-movies/static/js/main.67db4e8a.js", + "static/js/14.12bb647c.chunk.js": "/goit-react-hw-05-movies/static/js/14.12bb647c.chunk.js", + "static/js/370.ac8ebae9.chunk.js": "/goit-react-hw-05-movies/static/js/370.ac8ebae9.chunk.js", + "static/js/783.283e4891.chunk.js": "/goit-react-hw-05-movies/static/js/783.283e4891.chunk.js", "static/js/83.75cb3deb.chunk.js": "/goit-react-hw-05-movies/static/js/83.75cb3deb.chunk.js", - "static/js/590.ed54b3f7.chunk.js": "/goit-react-hw-05-movies/static/js/590.ed54b3f7.chunk.js", + "static/js/590.0077b485.chunk.js": "/goit-react-hw-05-movies/static/js/590.0077b485.chunk.js", "static/js/128.f30358b4.chunk.js": "/goit-react-hw-05-movies/static/js/128.f30358b4.chunk.js", - "static/js/486.f7e54b4c.chunk.js": "/goit-react-hw-05-movies/static/js/486.f7e54b4c.chunk.js", + "static/js/649.5f988163.chunk.js": "/goit-react-hw-05-movies/static/js/649.5f988163.chunk.js", "static/media/GeistVariableVF.woff2": "/goit-react-hw-05-movies/static/media/GeistVariableVF.9ea1140bf2838309ca47.woff2", "static/media/GeistMonoVariableVF.woff2": "/goit-react-hw-05-movies/static/media/GeistMonoVariableVF.6405987f6394ae5b6c56.woff2", "index.html": "/goit-react-hw-05-movies/index.html", - "main.6c4536ee.css.map": "/goit-react-hw-05-movies/static/css/main.6c4536ee.css.map", - "main.9e7d4f20.js.map": "/goit-react-hw-05-movies/static/js/main.9e7d4f20.js.map", - "53.897844ba.chunk.js.map": "/goit-react-hw-05-movies/static/js/53.897844ba.chunk.js.map", - "370.535c0b8a.chunk.js.map": "/goit-react-hw-05-movies/static/js/370.535c0b8a.chunk.js.map", - "783.1eecd861.chunk.js.map": "/goit-react-hw-05-movies/static/js/783.1eecd861.chunk.js.map", + "main.f07fa495.css.map": "/goit-react-hw-05-movies/static/css/main.f07fa495.css.map", + "main.67db4e8a.js.map": "/goit-react-hw-05-movies/static/js/main.67db4e8a.js.map", + "14.12bb647c.chunk.js.map": "/goit-react-hw-05-movies/static/js/14.12bb647c.chunk.js.map", + "370.ac8ebae9.chunk.js.map": "/goit-react-hw-05-movies/static/js/370.ac8ebae9.chunk.js.map", + "783.283e4891.chunk.js.map": "/goit-react-hw-05-movies/static/js/783.283e4891.chunk.js.map", "83.75cb3deb.chunk.js.map": "/goit-react-hw-05-movies/static/js/83.75cb3deb.chunk.js.map", - "590.ed54b3f7.chunk.js.map": "/goit-react-hw-05-movies/static/js/590.ed54b3f7.chunk.js.map", + "590.0077b485.chunk.js.map": "/goit-react-hw-05-movies/static/js/590.0077b485.chunk.js.map", "128.f30358b4.chunk.js.map": "/goit-react-hw-05-movies/static/js/128.f30358b4.chunk.js.map", - "486.f7e54b4c.chunk.js.map": "/goit-react-hw-05-movies/static/js/486.f7e54b4c.chunk.js.map" + "649.5f988163.chunk.js.map": "/goit-react-hw-05-movies/static/js/649.5f988163.chunk.js.map" }, "entrypoints": [ - "static/css/main.6c4536ee.css", - "static/js/main.9e7d4f20.js" + "static/css/main.f07fa495.css", + "static/js/main.67db4e8a.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index 3d14f15..6cf000f 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Movie Search
\ No newline at end of file +Movie Search
\ No newline at end of file diff --git a/static/css/main.6c4536ee.css b/static/css/main.6c4536ee.css deleted file mode 100644 index a4e2de2..0000000 --- a/static/css/main.6c4536ee.css +++ /dev/null @@ -1,6 +0,0 @@ -@font-face{font-display:swap;font-family:Geist Variable;font-synthesis:none;font-weight:100 900;src:url(/goit-react-hw-05-movies/static/media/GeistVariableVF.9ea1140bf2838309ca47.woff2) format("woff2")}@font-face{font-display:swap;font-family:Geist Mono Variable;font-synthesis:none;font-weight:100 900;src:url(/goit-react-hw-05-movies/static/media/GeistMonoVariableVF.6405987f6394ae5b6c56.woff2) format("woff2")}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Geist Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:Geist Mono Variable,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.active{color:green} - -/* -! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com -*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;-webkit-font-feature-settings:normal;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{-webkit-font-feature-settings:normal;font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{-webkit-font-feature-settings:inherit;font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#9ca3af;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.scroll-m-20{scroll-margin:5rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-extrabold{font-weight:800}.tracking-tight{letter-spacing:-.025em}@-webkit-keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity,1);-webkit-transform:translateZ(0) scaleX(1) rotate(0);-webkit-transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0));transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity,1);-webkit-transform:translateZ(0) scaleX(1) rotate(0);-webkit-transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0));transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@-webkit-keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity,1);-webkit-transform:translateZ(0) scaleX(1) rotate(0);-webkit-transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0));transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}@keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity,1);-webkit-transform:translateZ(0) scaleX(1) rotate(0);-webkit-transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0));transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}@media (min-width:1024px){.lg\:text-5xl{font-size:3rem;line-height:1}} -/*# sourceMappingURL=main.6c4536ee.css.map*/ \ No newline at end of file diff --git a/static/css/main.6c4536ee.css.map b/static/css/main.6c4536ee.css.map deleted file mode 100644 index 0d2740d..0000000 --- a/static/css/main.6c4536ee.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/css/main.6c4536ee.css","mappings":"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","sources":["../node_modules/non.geist/font-faces/sans-var.css","../node_modules/non.geist/font-faces/mono-var.css","index.css","output.css"],"sourcesContent":["@font-face {\n font-family: 'Geist Variable';\n src: url('../fonts/sans/GeistVariableVF.woff2') format('woff2');\n font-weight: 100 900;\n font-display: swap;\n font-synthesis: none;\n}","@font-face {\n font-family: 'Geist Mono Variable';\n src: url('../fonts/mono/GeistMonoVariableVF.woff2') format('woff2');\n font-weight: 100 900;\n font-display: swap;\n font-synthesis: none;\n}","@import-normalize; /* bring in normalize.css styles */\n\nbody {\n margin: 0;\n font-family: 'Geist Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI',\n 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans',\n 'Helvetica Neue', sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: 'Geist Mono Variable', source-code-pro, Menlo, Monaco, Consolas,\n 'Courier New', monospace;\n}\n\n.active {\n color: green;\n}\n","/*\n! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com\n*/\n\n/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box;\n /* 1 */\n border-width: 0;\n /* 2 */\n border-style: solid;\n /* 2 */\n border-color: #e5e7eb;\n /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n /* 3 */\n tab-size: 4;\n /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n /* 4 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 5 */\n font-variation-settings: normal;\n /* 6 */\n -webkit-tap-highlight-color: transparent;\n /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0;\n /* 1 */\n line-height: inherit;\n /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0;\n /* 1 */\n color: inherit;\n /* 2 */\n border-top-width: 1px;\n /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n /* 1 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 2 */\n font-variation-settings: normal;\n /* 3 */\n font-size: 1em;\n /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0;\n /* 1 */\n border-color: inherit;\n /* 2 */\n border-collapse: collapse;\n /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n /* 1 */\n font-variation-settings: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n font-weight: inherit;\n /* 1 */\n line-height: inherit;\n /* 1 */\n color: inherit;\n /* 1 */\n margin: 0;\n /* 2 */\n padding: 0;\n /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n /* 1 */\n vertical-align: middle;\n /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n[hidden] {\n display: none;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::-webkit-backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n.scroll-m-20 {\n scroll-margin: 5rem;\n}\n\n.text-4xl {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.font-extrabold {\n font-weight: 800;\n}\n\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n\n@-webkit-keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n -webkit-transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n -webkit-transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@-webkit-keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n -webkit-transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n -webkit-transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n@media (min-width: 1024px) {\n .lg\\:text-5xl {\n font-size: 3rem;\n line-height: 1;\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/css/main.f07fa495.css b/static/css/main.f07fa495.css new file mode 100644 index 0000000..aa2fa97 --- /dev/null +++ b/static/css/main.f07fa495.css @@ -0,0 +1,6 @@ +@font-face{font-display:swap;font-family:Geist Variable;font-synthesis:none;font-weight:100 900;src:url(/goit-react-hw-05-movies/static/media/GeistVariableVF.9ea1140bf2838309ca47.woff2) format("woff2")}@font-face{font-display:swap;font-family:Geist Mono Variable;font-synthesis:none;font-weight:100 900;src:url(/goit-react-hw-05-movies/static/media/GeistMonoVariableVF.6405987f6394ae5b6c56.woff2) format("woff2")}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Geist Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:Geist Mono Variable,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace} + +/* +! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com +*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;-webkit-font-feature-settings:normal;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{-webkit-font-feature-settings:normal;font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{-webkit-font-feature-settings:inherit;font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#9ca3af;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}:root{--background:0 0% 100%;--foreground:240 10% 3.9%;--card:0 0% 100%;--card-foreground:240 10% 3.9%;--popover:0 0% 100%;--popover-foreground:240 10% 3.9%;--primary:240 5.9% 10%;--primary-foreground:0 0% 98%;--secondary:240 4.8% 95.9%;--secondary-foreground:240 5.9% 10%;--muted:240 4.8% 95.9%;--muted-foreground:240 3.8% 46.1%;--accent:240 4.8% 95.9%;--accent-foreground:240 5.9% 10%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:240 5.9% 90%;--input:240 5.9% 90%;--ring:240 5.9% 10%;--radius:0.5rem}*{border-color:#e4e4e7;border-color:hsl(var(--border))}body{background-color:#fff;background-color:hsl(var(--background));color:#09090b;color:hsl(var(--foreground))}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{margin-left:auto;margin-right:auto;padding-left:2rem;padding-right:2rem;width:100%}@media (min-width:1400px){.container{max-width:1400px}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.top-0{top:0}.top-\[1px\]{top:1px}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-10{z-index:10}.z-\[1\]{z-index:1}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.ml-6{margin-left:1.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-6{margin-top:1.5rem}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-9{height:2.25rem}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-10{height:2.5rem}.h-8{height:2rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-full{width:100%}.w-max{width:-webkit-max-content;width:max-content}.w-9{width:2.25rem}.max-w-max{max-width:-webkit-max-content;max-width:max-content}.flex-1{flex:1 1}.rotate-45{--tw-rotate:45deg;-webkit-transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scroll-m-20{scroll-margin:5rem}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-md{border-radius:calc(.5rem - 2px);border-radius:calc(var(--radius) - 2px)}.rounded-tl-sm{border-top-left-radius:calc(.5rem - 4px);border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-transparent{border-color:transparent}.border-input{border-color:#e4e4e7;border-color:hsl(var(--input))}.bg-background{background-color:#fff;background-color:hsl(var(--background))}.bg-border{background-color:#e4e4e7;background-color:hsl(var(--border))}.bg-popover{background-color:#fff;background-color:hsl(var(--popover))}.bg-destructive{background-color:#ef4444;background-color:hsl(var(--destructive))}.bg-primary{background-color:#18181b;background-color:hsl(var(--primary))}.bg-secondary{background-color:#f4f4f5;background-color:hsl(var(--secondary))}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-2{padding-bottom:.5rem}.pl-6{padding-left:1.5rem}.pb-8{padding-bottom:2rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.italic{font-style:italic}.leading-7{line-height:1.75rem}.tracking-tight{letter-spacing:-.025em}.text-popover-foreground{color:#09090b;color:hsl(var(--popover-foreground))}.text-destructive-foreground{color:#fafafa;color:hsl(var(--destructive-foreground))}.text-foreground{color:#09090b;color:hsl(var(--foreground))}.text-primary-foreground{color:#fafafa;color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:#18181b;color:hsl(var(--secondary-foreground))}.text-muted-foreground{color:#71717a;color:hsl(var(--muted-foreground))}.text-primary{color:#18181b;color:hsl(var(--primary))}.underline-offset-4{text-underline-offset:4px}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}@-webkit-keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity,1);-webkit-transform:translateZ(0) scaleX(1) rotate(0);-webkit-transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0));transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity,1);-webkit-transform:translateZ(0) scaleX(1) rotate(0);-webkit-transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0));transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@-webkit-keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity,1);-webkit-transform:translateZ(0) scaleX(1) rotate(0);-webkit-transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0));transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}@keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity,1);-webkit-transform:translateZ(0) scaleX(1) rotate(0);-webkit-transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0));transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-300{-webkit-animation-duration:.3s;animation-duration:.3s}@media (min-width:768px){.md\:container{margin-left:auto;margin-right:auto;padding-left:2rem;padding-right:2rem;width:100%}@media (min-width:1400px){.md\:container{max-width:1400px}}}.first\:mt-0:first-child{margin-top:0}.hover\:bg-accent:hover{background-color:#f4f4f5;background-color:hsl(var(--accent))}.hover\:bg-destructive\/80:hover{background-color:rgba(239,68,68,.8);background-color:hsl(var(--destructive)/.8)}.hover\:bg-primary\/80:hover{background-color:rgba(24,24,27,.8);background-color:hsl(var(--primary)/.8)}.hover\:bg-secondary\/80:hover{background-color:hsla(240,5%,96%,.8);background-color:hsl(var(--secondary)/.8)}.hover\:bg-destructive\/90:hover{background-color:rgba(239,68,68,.9);background-color:hsl(var(--destructive)/.9)}.hover\:bg-primary\/90:hover{background-color:rgba(24,24,27,.9);background-color:hsl(var(--primary)/.9)}.hover\:text-accent-foreground:hover{color:#18181b;color:hsl(var(--accent-foreground))}.hover\:underline:hover{-webkit-text-decoration-line:underline;text-decoration-line:underline}.focus\:bg-accent:focus{background-color:#f4f4f5;background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:#18181b;color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.data-\[active\]\:bg-accent\/50[data-active],.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsla(240,5%,96%,.5);background-color:hsl(var(--accent)/.5)}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:enter;animation-name:enter}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:exit;animation-name:exit}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:-13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:-13rem}.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate:180deg;-webkit-transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.md\:absolute{position:absolute}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}}@media (min-width:1024px){.lg\:text-5xl{font-size:3rem;line-height:1}}.\[\&\:not\(\:first-child\)\]\:mt-6:not(:first-child){margin-top:1.5rem}.\[\&\>li\]\:mt-2>li{margin-top:.5rem} +/*# sourceMappingURL=main.f07fa495.css.map*/ \ No newline at end of file diff --git a/static/css/main.f07fa495.css.map b/static/css/main.f07fa495.css.map new file mode 100644 index 0000000..1e71da2 --- /dev/null +++ b/static/css/main.f07fa495.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.f07fa495.css","mappings":"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ACE,KACF,CAEA,aACE,OACF,CAEA,cACE,OACF,CAEA,UACE,QACF,CAEA,MACE,UACF,CAEA,SACE,SACF,CAEA,MAEE,oBAAqB,CADrB,iBAEF,CAEA,SACE,gBAAiB,CACjB,iBACF,CAEA,MACE,kBACF,CAEA,MACE,kBACF,CAEA,MACE,iBACF,CAEA,SACE,kBACF,CAEA,MACE,iBACF,CAEA,MACE,YACF,CAEA,aACE,mBACF,CAEA,MACE,YACF,CAEA,QACE,YACF,CAEA,KACE,aACF,CAEA,QACE,cACF,CAEA,KACE,YACF,CAEA,KACE,aACF,CAEA,KACE,cACF,CAEA,sDACE,mDACF,CAEA,MACE,aACF,CAEA,KACE,WACF,CAEA,KACE,WACF,CAEA,KACE,YACF,CAEA,QACE,UACF,CAEA,OACE,yBAA0B,CAC1B,iBACF,CAEA,KACE,aACF,CAEA,WACE,6BAA8B,CAC9B,qBACF,CAEA,QACE,QACF,CAEA,WACE,iBAAkB,CAClB,qMAAuM,CAC/L,6LACV,CAEA,aACE,kBACF,CAEA,WACE,oBACF,CAEA,WACE,oBACF,CAEA,aACE,6CACF,CAEA,aACE,6CACF,CAEA,WACE,oBACF,CAEA,cACE,kBACF,CAEA,gBACE,sBACF,CAEA,OACE,QACF,CAEA,yCACE,sBAAuB,CAEvB,wDAAgE,CADhE,mDAEF,CAEA,iBACE,eACF,CAEA,mBACE,kBACF,CAEA,YACE,+BAAwC,CAAxC,uCACF,CAEA,eACE,wCAAiD,CAAjD,gDACF,CAEA,QACE,gBACF,CAEA,UACE,uBACF,CAEA,YACE,qBACF,CAEA,oBACE,wBACF,CAEA,cACE,oBAA+B,CAA/B,8BACF,CAEA,eACE,qBAAwC,CAAxC,uCACF,CAEA,WACE,wBAAoC,CAApC,mCACF,CAEA,YACE,qBAAqC,CAArC,oCACF,CAEA,gBACE,wBAAyC,CAAzC,wCACF,CAEA,YACE,wBAAqC,CAArC,oCACF,CAEA,cACE,wBAAuC,CAAvC,sCACF,CAEA,MACE,iBAAkB,CAClB,kBACF,CAEA,MAEE,oBAAsB,CADtB,iBAEF,CAEA,MACE,kBAAo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","sources":["../node_modules/non.geist/font-faces/sans-var.css","../node_modules/non.geist/font-faces/mono-var.css","index.css","output.css"],"sourcesContent":["@font-face {\n font-family: 'Geist Variable';\n src: url('../fonts/sans/GeistVariableVF.woff2') format('woff2');\n font-weight: 100 900;\n font-display: swap;\n font-synthesis: none;\n}","@font-face {\n font-family: 'Geist Mono Variable';\n src: url('../fonts/mono/GeistMonoVariableVF.woff2') format('woff2');\n font-weight: 100 900;\n font-display: swap;\n font-synthesis: none;\n}","@import-normalize; /* bring in normalize.css styles */\n\nbody {\n margin: 0;\n font-family: 'Geist Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI',\n 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans',\n 'Helvetica Neue', sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: 'Geist Mono Variable', source-code-pro, Menlo, Monaco, Consolas,\n 'Courier New', monospace;\n}\n","/*\n! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com\n*/\n\n/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box;\n /* 1 */\n border-width: 0;\n /* 2 */\n border-style: solid;\n /* 2 */\n border-color: #e5e7eb;\n /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n /* 3 */\n tab-size: 4;\n /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n /* 4 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 5 */\n font-variation-settings: normal;\n /* 6 */\n -webkit-tap-highlight-color: transparent;\n /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0;\n /* 1 */\n line-height: inherit;\n /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0;\n /* 1 */\n color: inherit;\n /* 2 */\n border-top-width: 1px;\n /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n /* 1 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 2 */\n font-variation-settings: normal;\n /* 3 */\n font-size: 1em;\n /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0;\n /* 1 */\n border-color: inherit;\n /* 2 */\n border-collapse: collapse;\n /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n /* 1 */\n font-variation-settings: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n font-weight: inherit;\n /* 1 */\n line-height: inherit;\n /* 1 */\n color: inherit;\n /* 1 */\n margin: 0;\n /* 2 */\n padding: 0;\n /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n /* 1 */\n vertical-align: middle;\n /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n[hidden] {\n display: none;\n}\n\n:root {\n --background: 0 0% 100%;\n --foreground: 240 10% 3.9%;\n --card: 0 0% 100%;\n --card-foreground: 240 10% 3.9%;\n --popover: 0 0% 100%;\n --popover-foreground: 240 10% 3.9%;\n --primary: 240 5.9% 10%;\n --primary-foreground: 0 0% 98%;\n --secondary: 240 4.8% 95.9%;\n --secondary-foreground: 240 5.9% 10%;\n --muted: 240 4.8% 95.9%;\n --muted-foreground: 240 3.8% 46.1%;\n --accent: 240 4.8% 95.9%;\n --accent-foreground: 240 5.9% 10%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 0 0% 98%;\n --border: 240 5.9% 90%;\n --input: 240 5.9% 90%;\n --ring: 240 5.9% 10%;\n --radius: 0.5rem;\n}\n\n* {\n border-color: hsl(var(--border));\n}\n\nbody {\n background-color: hsl(var(--background));\n color: hsl(var(--foreground));\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::-webkit-backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n.container {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: 2rem;\n padding-left: 2rem;\n}\n\n@media (min-width: 1400px) {\n .container {\n max-width: 1400px;\n }\n}\n\n.visible {\n visibility: visible;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.left-0 {\n left: 0px;\n}\n\n.top-0 {\n top: 0px;\n}\n\n.top-\\[1px\\] {\n top: 1px;\n}\n\n.top-\\[60\\%\\] {\n top: 60%;\n}\n\n.top-full {\n top: 100%;\n}\n\n.z-10 {\n z-index: 10;\n}\n\n.z-\\[1\\] {\n z-index: 1;\n}\n\n.my-6 {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.ml-1 {\n margin-left: 0.25rem;\n}\n\n.ml-6 {\n margin-left: 1.5rem;\n}\n\n.mt-1 {\n margin-top: 0.25rem;\n}\n\n.mt-1\\.5 {\n margin-top: 0.375rem;\n}\n\n.mt-6 {\n margin-top: 1.5rem;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.h-1 {\n height: 0.25rem;\n}\n\n.h-1\\.5 {\n height: 0.375rem;\n}\n\n.h-2 {\n height: 0.5rem;\n}\n\n.h-3 {\n height: 0.75rem;\n}\n\n.h-9 {\n height: 2.25rem;\n}\n\n.h-\\[var\\(--radix-navigation-menu-viewport-height\\)\\] {\n height: var(--radix-navigation-menu-viewport-height);\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.w-2 {\n width: 0.5rem;\n}\n\n.w-3 {\n width: 0.75rem;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-max {\n width: -webkit-max-content;\n width: max-content;\n}\n\n.w-9 {\n width: 2.25rem;\n}\n\n.max-w-max {\n max-width: -webkit-max-content;\n max-width: max-content;\n}\n\n.flex-1 {\n flex: 1 1 0%;\n}\n\n.rotate-45 {\n --tw-rotate: 45deg;\n -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scroll-m-20 {\n scroll-margin: 5rem;\n}\n\n.list-disc {\n list-style-type: disc;\n}\n\n.list-none {\n list-style-type: none;\n}\n\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.items-end {\n align-items: flex-end;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.rounded-md {\n border-radius: calc(var(--radius) - 2px);\n}\n\n.rounded-tl-sm {\n border-top-left-radius: calc(var(--radius) - 4px);\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-b {\n border-bottom-width: 1px;\n}\n\n.border-l-2 {\n border-left-width: 2px;\n}\n\n.border-transparent {\n border-color: transparent;\n}\n\n.border-input {\n border-color: hsl(var(--input));\n}\n\n.bg-background {\n background-color: hsl(var(--background));\n}\n\n.bg-border {\n background-color: hsl(var(--border));\n}\n\n.bg-popover {\n background-color: hsl(var(--popover));\n}\n\n.bg-destructive {\n background-color: hsl(var(--destructive));\n}\n\n.bg-primary {\n background-color: hsl(var(--primary));\n}\n\n.bg-secondary {\n background-color: hsl(var(--secondary));\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n\n.py-0 {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n\n.py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n\n.pl-6 {\n padding-left: 1.5rem;\n}\n\n.pb-8 {\n padding-bottom: 2rem;\n}\n\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n.text-4xl {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.font-extrabold {\n font-weight: 800;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.font-semibold {\n font-weight: 600;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.italic {\n font-style: italic;\n}\n\n.leading-7 {\n line-height: 1.75rem;\n}\n\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n\n.text-popover-foreground {\n color: hsl(var(--popover-foreground));\n}\n\n.text-destructive-foreground {\n color: hsl(var(--destructive-foreground));\n}\n\n.text-foreground {\n color: hsl(var(--foreground));\n}\n\n.text-primary-foreground {\n color: hsl(var(--primary-foreground));\n}\n\n.text-secondary-foreground {\n color: hsl(var(--secondary-foreground));\n}\n\n.text-muted-foreground {\n color: hsl(var(--muted-foreground));\n}\n\n.text-primary {\n color: hsl(var(--primary));\n}\n\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.outline {\n outline-style: solid;\n}\n\n.transition {\n transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, -webkit-text-decoration-color, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.duration-300 {\n transition-duration: 300ms;\n}\n\n@-webkit-keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n -webkit-transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n -webkit-transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@-webkit-keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n -webkit-transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n -webkit-transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n.duration-300 {\n -webkit-animation-duration: 300ms;\n animation-duration: 300ms;\n}\n\n@media (min-width: 768px) {\n .md\\:container {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: 2rem;\n padding-left: 2rem;\n }\n\n @media (min-width: 1400px) {\n .md\\:container {\n max-width: 1400px;\n }\n }\n}\n\n.first\\:mt-0:first-child {\n margin-top: 0px;\n}\n\n.hover\\:bg-accent:hover {\n background-color: hsl(var(--accent));\n}\n\n.hover\\:bg-destructive\\/80:hover {\n background-color: hsl(var(--destructive) / 0.8);\n}\n\n.hover\\:bg-primary\\/80:hover {\n background-color: hsl(var(--primary) / 0.8);\n}\n\n.hover\\:bg-secondary\\/80:hover {\n background-color: hsl(var(--secondary) / 0.8);\n}\n\n.hover\\:bg-destructive\\/90:hover {\n background-color: hsl(var(--destructive) / 0.9);\n}\n\n.hover\\:bg-primary\\/90:hover {\n background-color: hsl(var(--primary) / 0.9);\n}\n\n.hover\\:text-accent-foreground:hover {\n color: hsl(var(--accent-foreground));\n}\n\n.hover\\:underline:hover {\n -webkit-text-decoration-line: underline;\n text-decoration-line: underline;\n}\n\n.focus\\:bg-accent:focus {\n background-color: hsl(var(--accent));\n}\n\n.focus\\:text-accent-foreground:focus {\n color: hsl(var(--accent-foreground));\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.focus\\:ring-ring:focus {\n --tw-ring-color: hsl(var(--ring));\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus-visible\\:ring-1:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.focus-visible\\:ring-ring:focus-visible {\n --tw-ring-color: hsl(var(--ring));\n}\n\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n\n.data-\\[active\\]\\:bg-accent\\/50[data-active] {\n background-color: hsl(var(--accent) / 0.5);\n}\n\n.data-\\[state\\=open\\]\\:bg-accent\\/50[data-state=open] {\n background-color: hsl(var(--accent) / 0.5);\n}\n\n.data-\\[motion\\^\\=from-\\]\\:animate-in[data-motion^=from-] {\n -webkit-animation-name: enter;\n animation-name: enter;\n -webkit-animation-duration: 150ms;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n\n.data-\\[state\\=open\\]\\:animate-in[data-state=open] {\n -webkit-animation-name: enter;\n animation-name: enter;\n -webkit-animation-duration: 150ms;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n\n.data-\\[state\\=visible\\]\\:animate-in[data-state=visible] {\n -webkit-animation-name: enter;\n animation-name: enter;\n -webkit-animation-duration: 150ms;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n\n.data-\\[motion\\^\\=to-\\]\\:animate-out[data-motion^=to-] {\n -webkit-animation-name: exit;\n animation-name: exit;\n -webkit-animation-duration: 150ms;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n\n.data-\\[state\\=closed\\]\\:animate-out[data-state=closed] {\n -webkit-animation-name: exit;\n animation-name: exit;\n -webkit-animation-duration: 150ms;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n\n.data-\\[state\\=hidden\\]\\:animate-out[data-state=hidden] {\n -webkit-animation-name: exit;\n animation-name: exit;\n -webkit-animation-duration: 150ms;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n\n.data-\\[motion\\^\\=from-\\]\\:fade-in[data-motion^=from-] {\n --tw-enter-opacity: 0;\n}\n\n.data-\\[motion\\^\\=to-\\]\\:fade-out[data-motion^=to-] {\n --tw-exit-opacity: 0;\n}\n\n.data-\\[state\\=hidden\\]\\:fade-out[data-state=hidden] {\n --tw-exit-opacity: 0;\n}\n\n.data-\\[state\\=visible\\]\\:fade-in[data-state=visible] {\n --tw-enter-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed] {\n --tw-exit-scale: .95;\n}\n\n.data-\\[state\\=open\\]\\:zoom-in-90[data-state=open] {\n --tw-enter-scale: .9;\n}\n\n.data-\\[motion\\=from-end\\]\\:slide-in-from-right-52[data-motion=from-end] {\n --tw-enter-translate-x: 13rem;\n}\n\n.data-\\[motion\\=from-start\\]\\:slide-in-from-left-52[data-motion=from-start] {\n --tw-enter-translate-x: -13rem;\n}\n\n.data-\\[motion\\=to-end\\]\\:slide-out-to-right-52[data-motion=to-end] {\n --tw-exit-translate-x: 13rem;\n}\n\n.data-\\[motion\\=to-start\\]\\:slide-out-to-left-52[data-motion=to-start] {\n --tw-exit-translate-x: -13rem;\n}\n\n.group[data-state=open] .group-data-\\[state\\=open\\]\\:rotate-180 {\n --tw-rotate: 180deg;\n -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@media (min-width: 640px) {\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n@media (min-width: 768px) {\n .md\\:absolute {\n position: absolute;\n }\n\n .md\\:mx-auto {\n margin-left: auto;\n margin-right: auto;\n }\n\n .md\\:w-\\[var\\(--radix-navigation-menu-viewport-width\\)\\] {\n width: var(--radix-navigation-menu-viewport-width);\n }\n\n .md\\:w-auto {\n width: auto;\n }\n\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n\n .md\\:grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n }\n\n .md\\:grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n }\n\n .md\\:grid-cols-10 {\n grid-template-columns: repeat(10, minmax(0, 1fr));\n }\n}\n\n@media (min-width: 1024px) {\n .lg\\:text-5xl {\n font-size: 3rem;\n line-height: 1;\n }\n}\n\n.\\[\\&\\:not\\(\\:first-child\\)\\]\\:mt-6:not(:first-child) {\n margin-top: 1.5rem;\n}\n\n.\\[\\&\\>li\\]\\:mt-2>li {\n margin-top: 0.5rem;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/14.12bb647c.chunk.js b/static/js/14.12bb647c.chunk.js new file mode 100644 index 0000000..43dea5f --- /dev/null +++ b/static/js/14.12bb647c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[14],{3014:function(e,r,t){t.r(r),t.d(r,{default:function(){return x}});var n=t(1087),a=t(3984),i=t(5861),s=t(4687),o=t.n(s),d=t(4390),c=function(){var e=(0,i.Z)(o().mark((function e(){var r,t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.o.get("/trending/movie/day?language=en-US",d._);case 2:return r=e.sent,t=r.data,e.abrupt("return",t.results);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),u=t(1413),l=t(4925),g=(t(2791),t(152)),f=t(2758),h=t(184),m=["className","variant"],p=(0,g.j)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function v(e){var r=e.className,t=e.variant,n=(0,l.Z)(e,m);return(0,h.jsx)("div",(0,u.Z)({className:(0,f.cn)(p({variant:t}),r)},n))}var x=function(){var e=(0,a.a)({queryKey:["tranding"],queryFn:c}),r=e.isPending,t=e.isError,i=e.data,s=e.error;return r?(0,h.jsx)("div",{children:"Loading..."}):t?(0,h.jsxs)("div",{children:["Error fetching data: ",s.message]}):(0,h.jsxs)("div",{children:[(0,h.jsx)("h1",{className:"scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl pb-8",children:"Trending Movies and TV Shows"}),(0,h.jsx)("div",{className:"grid grid grid-cols-1 sm:grid-cols-2 md:grid-cols-8 gap-4",children:i.map((function(e){return(0,h.jsxs)(n.rU,{to:"/movies/".concat(e.id),children:[(0,h.jsx)("img",{src:"https://image.tmdb.org/t/p/w342".concat(e.poster_path),alt:e.title||e.name}),(0,h.jsx)(v,{children:e.media_type.charAt(0).toUpperCase()+e.media_type.slice(1)}),(0,h.jsx)("h3",{className:"scroll-m-20 text-md font-bold tracking-tight",children:e.title||e.name}),(0,h.jsx)("h4",{className:"text-md text-muted-foreground font-semibold",children:e.release_date?new Date(e.release_date).getFullYear():new Date(e.first_air_date).getFullYear()})]},e.id)}))})]})}},4390:function(e,r,t){t.d(r,{_:function(){return a},o:function(){return n.Z}});var n=t(5294);n.Z.defaults.baseURL="https://api.themoviedb.org/3";var a={headers:{accept:"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ"}}}}]); +//# sourceMappingURL=14.12bb647c.chunk.js.map \ No newline at end of file diff --git a/static/js/14.12bb647c.chunk.js.map b/static/js/14.12bb647c.chunk.js.map new file mode 100644 index 0000000..0aa6a2d --- /dev/null +++ b/static/js/14.12bb647c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/14.12bb647c.chunk.js","mappings":"kPAEMA,EAAiB,eAAAC,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAAC,EAAAC,EAAA,OAAAH,IAAAA,MAAA,SAAAI,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACDC,EAAAA,EAAAA,IACrB,qCACAC,EAAAA,GACA,KAAD,EAHW,OAGXN,EAAAE,EAAAK,KAHON,EAAID,EAAJC,KAAIC,EAAAM,OAAA,SAKLP,EAAKQ,SAAO,wBAAAP,EAAAQ,OAAA,GAAAX,EAAA,KACpB,kBAPsB,OAAAH,EAAAe,MAAA,KAAAC,UAAA,K,oFCGjBC,GAAgBC,EAAAA,EAAAA,GACpB,uKACA,CACEC,SAAU,CACRC,QAAS,CACPC,QACE,mFACFC,UACE,kFACFC,YACE,+FACFC,QAAS,oBAGbC,gBAAiB,CACfL,QAAS,aAKf,SAASM,EAAK1B,GAIV,IAHF2B,EAAS3B,EAAT2B,UACAP,EAAOpB,EAAPoB,QACGQ,GAAKC,EAAAA,EAAAA,GAAA7B,EAAA8B,GAER,OAAQC,EAAAA,EAAAA,KAAA,OAAAC,EAAAA,EAAAA,GAAA,CAAKL,WAAWM,EAAAA,EAAAA,IAAGhB,EAAc,CAAEG,QAAAA,IAAYO,IAAgBC,GACzE,CCzBA,IA8CA,EA9Ca,WACX,IAAAM,GAA4CC,EAAAA,EAAAA,GAAS,CACnDC,SAAU,CAAC,YACXC,QAAStC,IAFHuC,EAASJ,EAATI,UAAWC,EAAOL,EAAPK,QAASlC,EAAI6B,EAAJ7B,KAAMmC,EAAKN,EAALM,MAKlC,OAAIF,GACKP,EAAAA,EAAAA,KAAA,OAAAU,SAAK,eAGVF,GACKG,EAAAA,EAAAA,MAAA,OAAAD,SAAA,CAAK,wBAAsBD,EAAMG,YAIxCD,EAAAA,EAAAA,MAAA,OAAAD,SAAA,EACEV,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,sEAAqEc,SAAC,kCAGpFV,EAAAA,EAAAA,KAAA,OAAKJ,UAAU,4DAA2Dc,SACvEpC,EAAKuC,KAAI,SAAAC,GAAK,OACbH,EAAAA,EAAAA,MAACI,EAAAA,GAAI,CAACC,GAAE,WAAAC,OAAaH,EAAMI,IAAKR,SAAA,EAC9BV,EAAAA,EAAAA,KAAA,OACEmB,IAAG,kCAAAF,OAAoCH,EAAMM,aAC7CC,IAAKP,EAAMQ,OAASR,EAAMS,QAE5BvB,EAAAA,EAAAA,KAACL,EAAK,CAAAe,SACHI,EAAMU,WAAWC,OAAO,GAAGC,cAC1BZ,EAAMU,WAAWG,MAAM,MAG3B3B,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,+CAA8Cc,SACzDI,EAAMQ,OAASR,EAAMS,QAExBvB,EAAAA,EAAAA,KAAA,MAAIJ,UAAU,8CAA6Cc,SACxDI,EAAMc,aACH,IAAIC,KAAKf,EAAMc,cAAcE,cAC7B,IAAID,KAAKf,EAAMiB,gBAAgBD,kBAhBDhB,EAAMI,GAkBrC,QAKjB,C,8FChDAxC,EAAAA,EAAAA,SAAAA,QAAyB,+BAEzB,IAAMC,EAAc,CAClBqD,QAAS,CACPC,OAAQ,mBACRC,cACE,8N","sources":["services/fetchTrendingData.js","@/components/ui/badge.jsx","pages/Home.jsx","services/api.js"],"sourcesContent":["import { axios, baseOptions } from './api';\n\nconst fetchTrendingData = async () => {\n const { data } = await axios.get(\n '/trending/movie/day?language=en-US',\n baseOptions\n );\n\n return data.results;\n};\n\nexport { fetchTrendingData };\n","import * as React from \"react\"\nimport { cva } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant,\n ...props\n}) {\n return (
);\n}\n\nexport { Badge, badgeVariants }\n","import { Link } from 'react-router-dom';\nimport { useQuery } from '@tanstack/react-query';\nimport { fetchTrendingData } from 'services/fetchTrendingData';\n\nimport { Badge } from '@/components/ui/badge';\n\nconst Home = () => {\n const { isPending, isError, data, error } = useQuery({\n queryKey: ['tranding'],\n queryFn: fetchTrendingData,\n });\n\n if (isPending) {\n return
Loading...
;\n }\n\n if (isError) {\n return
Error fetching data: {error.message}
;\n }\n\n return (\n
\n

\n Trending Movies and TV Shows\n

\n
\n {data.map(movie => (\n \n \n \n {movie.media_type.charAt(0).toUpperCase() +\n movie.media_type.slice(1)}\n \n\n

\n {movie.title || movie.name}\n

\n

\n {movie.release_date\n ? new Date(movie.release_date).getFullYear()\n : new Date(movie.first_air_date).getFullYear()}\n

\n \n ))}\n
\n
\n );\n};\n\nexport default Home;\n","import axios from 'axios';\n\naxios.defaults.baseURL = 'https://api.themoviedb.org/3';\n\nconst baseOptions = {\n headers: {\n accept: 'application/json',\n Authorization:\n 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ',\n },\n};\n\nexport { axios, baseOptions };\n"],"names":["fetchTrendingData","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","_yield$axios$get","data","_context","prev","next","axios","baseOptions","sent","abrupt","results","stop","apply","arguments","badgeVariants","cva","variants","variant","default","secondary","destructive","outline","defaultVariants","Badge","className","props","_objectWithoutProperties","_excluded","_jsx","_objectSpread","cn","_useQuery","useQuery","queryKey","queryFn","isPending","isError","error","children","_jsxs","message","map","movie","Link","to","concat","id","src","poster_path","alt","title","name","media_type","charAt","toUpperCase","slice","release_date","Date","getFullYear","first_air_date","headers","accept","Authorization"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/370.535c0b8a.chunk.js b/static/js/370.ac8ebae9.chunk.js similarity index 61% rename from static/js/370.535c0b8a.chunk.js rename to static/js/370.ac8ebae9.chunk.js index 111e76a..814e5b6 100644 --- a/static/js/370.535c0b8a.chunk.js +++ b/static/js/370.ac8ebae9.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[370],{8370:function(e,r,t){t.r(r),t.d(r,{default:function(){return h}});var n=t(1413),a=t(5861),i=t(9439),u=t(4687),c=t.n(u),s=t(2791),l=t(1087),o=t(3984),d=t(4390),p=function(){var e=(0,a.Z)(c().mark((function e(r){var t,a,i;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=(0,n.Z)((0,n.Z)({},d._),{},{params:{query:r.query,include_adult:r.include_adult||!1,language:r.language||"en-US",primary_release_year:r.primary_release_year||"",page:r.page||1,region:r.region||"",year:r.year||""}}),e.next=3,d.o.get("/search/movie",t);case 3:return a=e.sent,i=a.data,e.abrupt("return",i.results);case 6:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),f=t(184),h=function(){var e=(0,s.useRef)(null),r=(0,s.useRef)(null),t=(0,l.lr)(),u=(0,i.Z)(t,2),d=u[0],h=u[1],v=(0,o.a)({queryKey:["searchMovies"],queryFn:function(){var t=(0,a.Z)(c().mark((function t(){var n,a;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,p({query:null===(n=e.current)||void 0===n?void 0:n.value.trim(),include_adult:!1,language:"en-US",primary_release_year:null===(a=r.current)||void 0===a?void 0:a.value.trim(),page:1,region:"",year:""});case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}()}),y=v.data,g=v.isLoading,m=v.isError,x=v.error,_=v.refetch,j=function(){var t=(0,a.Z)(c().mark((function t(a){var i,u;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:a.preventDefault(),i=e.current.value.trim(),u=r.current.value.trim(),h((0,n.Z)({query:i},u&&{year:u})),_({query:i,include_adult:!1,language:"en-US",primary_release_year:u,page:1,region:"",year:""});case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return(0,s.useEffect)((function(){var t=d.get("query")||"",n=d.get("year")||"";e.current.value=t,r.current.value=n}),[d]),(0,f.jsxs)("div",{children:[(0,f.jsx)("h1",{className:"scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl",children:"Search Movies"}),(0,f.jsxs)("form",{onSubmit:j,children:[(0,f.jsx)("input",{type:"text",ref:e,placeholder:"Enter movie title..."}),(0,f.jsx)("input",{type:"text",ref:r,placeholder:"Enter release year..."}),(0,f.jsx)("button",{type:"submit",children:"Search"})]}),g&&(0,f.jsx)("div",{children:"Loading..."}),m&&(0,f.jsxs)("div",{children:["Error fetching data: ",x.message]}),(0,f.jsx)("div",{children:null===y||void 0===y?void 0:y.map((function(e){return(0,f.jsxs)(l.rU,{to:"/movies/".concat(e.id),children:[(0,f.jsx)("img",{src:"https://image.tmdb.org/t/p/w342".concat(e.poster_path),alt:e.title||e.name}),(0,f.jsx)("h3",{children:e.title||e.name}),(0,f.jsx)("h4",{children:e.release_date?new Date(e.release_date).getFullYear():new Date(e.first_air_date).getFullYear()})]},e.id)}))})]})}},4390:function(e,r,t){t.d(r,{_:function(){return a},o:function(){return n.Z}});var n=t(5294);n.Z.defaults.baseURL="https://api.themoviedb.org/3";var a={headers:{accept:"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ"}}}}]); -//# sourceMappingURL=370.535c0b8a.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[370],{8370:function(e,r,t){t.r(r),t.d(r,{default:function(){return h}});var n=t(1413),a=t(5861),i=t(9439),u=t(4687),c=t.n(u),s=t(2791),l=t(1087),o=t(3984),d=t(4390),p=function(){var e=(0,a.Z)(c().mark((function e(r){var t,a,i;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=(0,n.Z)((0,n.Z)({},d._),{},{params:{query:r.query,include_adult:r.include_adult||!1,language:r.language||"en-US",primary_release_year:r.primary_release_year||"",page:r.page||1,region:r.region||"",year:r.year||""}}),e.next=3,d.o.get("/search/movie",t);case 3:return a=e.sent,i=a.data,e.abrupt("return",i.results);case 6:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),f=t(184),h=function(){var e=(0,s.useRef)(null),r=(0,s.useRef)(null),t=(0,l.lr)(),u=(0,i.Z)(t,2),d=u[0],h=u[1],v=(0,o.a)({queryKey:["searchMovies"],queryFn:function(){var t=(0,a.Z)(c().mark((function t(){var n,a;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,p({query:null===(n=e.current)||void 0===n?void 0:n.value.trim(),include_adult:!1,language:"en-US",primary_release_year:null===(a=r.current)||void 0===a?void 0:a.value.trim(),page:1,region:"",year:""});case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}()}),y=v.data,g=v.isLoading,m=v.isError,x=v.error,_=v.refetch,j=function(){var t=(0,a.Z)(c().mark((function t(a){var i,u;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:a.preventDefault(),i=e.current.value.trim(),u=r.current.value.trim(),h((0,n.Z)({query:i},u&&{year:u})),_({query:i,include_adult:!1,language:"en-US",primary_release_year:u,page:1,region:"",year:""});case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}();return(0,s.useEffect)((function(){var t=d.get("query")||"",n=d.get("year")||"";e.current.value=t,r.current.value=n}),[d]),(0,f.jsxs)("div",{children:[(0,f.jsx)("h1",{className:"scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl pb-8",children:"Search Movies"}),(0,f.jsxs)("form",{onSubmit:j,children:[(0,f.jsx)("input",{type:"text",ref:e,placeholder:"Enter movie title..."}),(0,f.jsx)("input",{type:"text",ref:r,placeholder:"Enter release year..."}),(0,f.jsx)("button",{type:"submit",children:"Search"})]}),g&&(0,f.jsx)("div",{children:"Loading..."}),m&&(0,f.jsxs)("div",{children:["Error fetching data: ",x.message]}),(0,f.jsx)("div",{children:null===y||void 0===y?void 0:y.map((function(e){return(0,f.jsxs)(l.rU,{to:"/movies/".concat(e.id),children:[(0,f.jsx)("img",{src:"https://image.tmdb.org/t/p/w342".concat(e.poster_path),alt:e.title||e.name}),(0,f.jsx)("h3",{children:e.title||e.name}),(0,f.jsx)("h4",{children:e.release_date?new Date(e.release_date).getFullYear():new Date(e.first_air_date).getFullYear()})]},e.id)}))})]})}},4390:function(e,r,t){t.d(r,{_:function(){return a},o:function(){return n.Z}});var n=t(5294);n.Z.defaults.baseURL="https://api.themoviedb.org/3";var a={headers:{accept:"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ"}}}}]); +//# sourceMappingURL=370.ac8ebae9.chunk.js.map \ No newline at end of file diff --git a/static/js/370.535c0b8a.chunk.js.map b/static/js/370.ac8ebae9.chunk.js.map similarity index 65% rename from static/js/370.535c0b8a.chunk.js.map rename to static/js/370.ac8ebae9.chunk.js.map index 4331465..626e4ad 100644 --- a/static/js/370.535c0b8a.chunk.js.map +++ b/static/js/370.ac8ebae9.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/370.535c0b8a.chunk.js","mappings":"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","sources":["services/searchMovies.js","pages/Movies.jsx","services/api.js"],"sourcesContent":["import { axios, baseOptions } from './api';\n\nconst searchMovies = async queryParams => {\n const options = {\n ...baseOptions,\n params: {\n query: queryParams.query,\n include_adult: queryParams.include_adult || false,\n language: queryParams.language || 'en-US',\n primary_release_year: queryParams.primary_release_year || '',\n page: queryParams.page || 1,\n region: queryParams.region || '',\n year: queryParams.year || '',\n },\n };\n\n const { data } = await axios.get('/search/movie', options);\n return data.results;\n};\n\nexport { searchMovies };\n","import { useRef, useEffect } from 'react';\nimport { useSearchParams, Link } from 'react-router-dom';\nimport { useQuery } from '@tanstack/react-query';\nimport { searchMovies } from 'services/searchMovies';\n\nconst Movies = () => {\n const searchInputRef = useRef(null);\n const yearInputRef = useRef(null);\n const [searchParams, setSearchParams] = useSearchParams();\n\n const { data, isLoading, isError, error, refetch } = useQuery({\n queryKey: ['searchMovies'],\n queryFn: async () => {\n return await searchMovies({\n query: searchInputRef.current?.value.trim(),\n include_adult: false,\n language: 'en-US',\n primary_release_year: yearInputRef.current?.value.trim(),\n page: 1,\n region: '',\n year: '',\n });\n },\n });\n\n const handleSearch = async e => {\n e.preventDefault();\n const searchQuery = searchInputRef.current.value.trim();\n const releaseYear = yearInputRef.current.value.trim();\n\n setSearchParams({\n query: searchQuery,\n ...(releaseYear && { year: releaseYear }),\n });\n\n refetch({\n query: searchQuery,\n include_adult: false,\n language: 'en-US',\n primary_release_year: releaseYear,\n page: 1,\n region: '',\n year: '',\n });\n };\n\n useEffect(() => {\n const q = searchParams.get('query') || '';\n const year = searchParams.get('year') || '';\n searchInputRef.current.value = q;\n yearInputRef.current.value = year;\n }, [searchParams]);\n\n return (\n
\n

\n Search Movies\n

\n
\n \n \n \n \n {isLoading &&
Loading...
}\n {isError &&
Error fetching data: {error.message}
}\n
\n {data?.map(movie => (\n \n \n

{movie.title || movie.name}

\n

\n {movie.release_date\n ? new Date(movie.release_date).getFullYear()\n : new Date(movie.first_air_date).getFullYear()}\n

\n \n ))}\n
\n
\n );\n};\n\nexport default Movies;\n","import axios from 'axios';\n\naxios.defaults.baseURL = 'https://api.themoviedb.org/3';\n\nconst baseOptions = {\n headers: {\n accept: 'application/json',\n Authorization:\n 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ',\n },\n};\n\nexport { axios, baseOptions };\n"],"names":["searchMovies","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","queryParams","options","_yield$axios$get","data","_context","prev","next","_objectSpread","baseOptions","params","query","include_adult","language","primary_release_year","page","region","year","axios","sent","abrupt","results","stop","_x","apply","arguments","searchInputRef","useRef","yearInputRef","_useSearchParams","useSearchParams","_useSearchParams2","_slicedToArray","searchParams","setSearchParams","_useQuery","useQuery","queryKey","queryFn","_queryFn","_searchInputRef$curre","_yearInputRef$current","current","value","trim","isLoading","isError","error","refetch","handleSearch","_callee2","e","searchQuery","releaseYear","_context2","preventDefault","useEffect","q","get","_jsxs","children","_jsx","className","onSubmit","type","ref","placeholder","message","map","movie","Link","to","concat","id","src","poster_path","alt","title","name","release_date","Date","getFullYear","first_air_date","headers","accept","Authorization"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/370.ac8ebae9.chunk.js","mappings":"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","sources":["services/searchMovies.js","pages/Movies.jsx","services/api.js"],"sourcesContent":["import { axios, baseOptions } from './api';\n\nconst searchMovies = async queryParams => {\n const options = {\n ...baseOptions,\n params: {\n query: queryParams.query,\n include_adult: queryParams.include_adult || false,\n language: queryParams.language || 'en-US',\n primary_release_year: queryParams.primary_release_year || '',\n page: queryParams.page || 1,\n region: queryParams.region || '',\n year: queryParams.year || '',\n },\n };\n\n const { data } = await axios.get('/search/movie', options);\n return data.results;\n};\n\nexport { searchMovies };\n","import { useRef, useEffect } from 'react';\nimport { useSearchParams, Link } from 'react-router-dom';\nimport { useQuery } from '@tanstack/react-query';\nimport { searchMovies } from 'services/searchMovies';\n\nconst Movies = () => {\n const searchInputRef = useRef(null);\n const yearInputRef = useRef(null);\n const [searchParams, setSearchParams] = useSearchParams();\n\n const { data, isLoading, isError, error, refetch } = useQuery({\n queryKey: ['searchMovies'],\n queryFn: async () => {\n return await searchMovies({\n query: searchInputRef.current?.value.trim(),\n include_adult: false,\n language: 'en-US',\n primary_release_year: yearInputRef.current?.value.trim(),\n page: 1,\n region: '',\n year: '',\n });\n },\n });\n\n const handleSearch = async e => {\n e.preventDefault();\n const searchQuery = searchInputRef.current.value.trim();\n const releaseYear = yearInputRef.current.value.trim();\n\n setSearchParams({\n query: searchQuery,\n ...(releaseYear && { year: releaseYear }),\n });\n\n refetch({\n query: searchQuery,\n include_adult: false,\n language: 'en-US',\n primary_release_year: releaseYear,\n page: 1,\n region: '',\n year: '',\n });\n };\n\n useEffect(() => {\n const q = searchParams.get('query') || '';\n const year = searchParams.get('year') || '';\n searchInputRef.current.value = q;\n yearInputRef.current.value = year;\n }, [searchParams]);\n\n return (\n
\n

\n Search Movies\n

\n
\n \n \n \n \n {isLoading &&
Loading...
}\n {isError &&
Error fetching data: {error.message}
}\n
\n {data?.map(movie => (\n \n \n

{movie.title || movie.name}

\n

\n {movie.release_date\n ? new Date(movie.release_date).getFullYear()\n : new Date(movie.first_air_date).getFullYear()}\n

\n \n ))}\n
\n
\n );\n};\n\nexport default Movies;\n","import axios from 'axios';\n\naxios.defaults.baseURL = 'https://api.themoviedb.org/3';\n\nconst baseOptions = {\n headers: {\n accept: 'application/json',\n Authorization:\n 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ',\n },\n};\n\nexport { axios, baseOptions };\n"],"names":["searchMovies","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","queryParams","options","_yield$axios$get","data","_context","prev","next","_objectSpread","baseOptions","params","query","include_adult","language","primary_release_year","page","region","year","axios","sent","abrupt","results","stop","_x","apply","arguments","searchInputRef","useRef","yearInputRef","_useSearchParams","useSearchParams","_useSearchParams2","_slicedToArray","searchParams","setSearchParams","_useQuery","useQuery","queryKey","queryFn","_queryFn","_searchInputRef$curre","_yearInputRef$current","current","value","trim","isLoading","isError","error","refetch","handleSearch","_callee2","e","searchQuery","releaseYear","_context2","preventDefault","useEffect","q","get","_jsxs","children","_jsx","className","onSubmit","type","ref","placeholder","message","map","movie","Link","to","concat","id","src","poster_path","alt","title","name","release_date","Date","getFullYear","first_air_date","headers","accept","Authorization"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/486.f7e54b4c.chunk.js b/static/js/486.f7e54b4c.chunk.js deleted file mode 100644 index 65e8aba..0000000 --- a/static/js/486.f7e54b4c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[486],{4776:function(e,u){"use strict";var t;Object.defineProperty(u,"__esModule",{value:!0}),u.Doctype=u.CDATA=u.Tag=u.Style=u.Script=u.Comment=u.Directive=u.Text=u.Root=u.isTag=u.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(t=u.ElementType||(u.ElementType={})),u.isTag=function(e){return e.type===t.Tag||e.type===t.Script||e.type===t.Style},u.Root=t.Root,u.Text=t.Text,u.Directive=t.Directive,u.Comment=t.Comment,u.Script=t.Script,u.Style=t.Style,u.Tag=t.Tag,u.CDATA=t.CDATA,u.Doctype=t.Doctype},1132:function(e){"use strict";var u=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===t.call(e)},o=function(e){if(!e||"[object Object]"!==t.call(e))return!1;var n,r=u.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&u.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!r&&!i)return!1;for(n in e);return"undefined"===typeof n||u.call(e,n)},a=function(e,u){n&&"__proto__"===u.name?n(e,u.name,{enumerable:!0,configurable:!0,value:u.newValue,writable:!0}):e[u.name]=u.newValue},l=function(e,t){if("__proto__"===t){if(!u.call(e,t))return;if(r)return r(e,t).value}return e[t]};e.exports=function e(){var u,t,n,r,D,s,c=arguments[0],f=1,d=arguments.length,p=!1;for("boolean"===typeof c&&(p=c,c=arguments[1]||{},f=2),(null==c||"object"!==typeof c&&"function"!==typeof c)&&(c={});f/i,a=//i,l=function(e,u){throw new Error("This browser does not support `document.implementation.createHTMLDocument`")},D=function(e,u){throw new Error("This browser does not support `DOMParser.prototype.parseFromString`")},s="object"===typeof window&&window.DOMParser;if("function"===typeof s){var c=new s;l=D=function(e,u){return u&&(e="<".concat(u,">").concat(e,"")),c.parseFromString(e,"text/html")}}if("object"===typeof document&&document.implementation){var f=document.implementation.createHTMLDocument();l=function(e,u){if(u){var t=f.documentElement.querySelector(u);return t&&(t.innerHTML=e),f}return f.documentElement.innerHTML=e,f}}var d,p="object"===typeof document&&document.createElement("template");p&&p.content&&(d=function(e){return p.innerHTML=e,p.content.childNodes}),u.default=function(e){var u,s,c=e.match(i),f=c&&c[1]?c[1].toLowerCase():"";switch(f){case t:var p=D(e);if(!o.test(e))null===(u=null===(F=p.querySelector(n))||void 0===F?void 0:F.parentNode)||void 0===u||u.removeChild(F);if(!a.test(e))null===(s=null===(F=p.querySelector(r))||void 0===F?void 0:F.parentNode)||void 0===s||s.removeChild(F);return p.querySelectorAll(t);case n:case r:var h=l(e).querySelectorAll(f);return a.test(e)&&o.test(e)?h[0].parentNode.childNodes:h;default:return d?d(e):(F=l(e,r).querySelector(r)).childNodes;var F}}},159:function(e,u,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u,"__esModule",{value:!0});var r=n(t(9409)),i=t(1716),o=/<(![a-zA-Z\s]+)>/;u.default=function(e){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];var u=e.match(o),t=u?u[1]:void 0;return(0,i.formatDOM)((0,r.default)(e),null,t)}},1716:function(e,u,t){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.formatDOM=u.formatAttributes=void 0;var n=t(538),r=t(9127);function i(e){for(var u={},t=0,n=e.length;t0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),u}(o);u.NodeWithChildren=c;var f=function(e){function u(){var u=null!==e&&e.apply(this,arguments)||this;return u.type=i.ElementType.CDATA,u}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),u}(c);u.CDATA=f;var d=function(e){function u(){var u=null!==e&&e.apply(this,arguments)||this;return u.type=i.ElementType.Root,u}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),u}(c);u.Document=d;var p=function(e){function u(u,t,n,r){void 0===n&&(n=[]),void 0===r&&(r="script"===u?i.ElementType.Script:"style"===u?i.ElementType.Style:i.ElementType.Tag);var o=e.call(this,n)||this;return o.name=u,o.attribs=t,o.type=r,o}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(u){var t,n;return{name:u,value:e.attribs[u],namespace:null===(t=e["x-attribsNamespace"])||void 0===t?void 0:t[u],prefix:null===(n=e["x-attribsPrefix"])||void 0===n?void 0:n[u]}}))},enumerable:!1,configurable:!0}),u}(c);function h(e){return(0,i.isTag)(e)}function F(e){return e.type===i.ElementType.CDATA}function C(e){return e.type===i.ElementType.Text}function E(e){return e.type===i.ElementType.Comment}function m(e){return e.type===i.ElementType.Directive}function A(e){return e.type===i.ElementType.Root}function v(e,u){var t;if(void 0===u&&(u=!1),C(e))t=new l(e.data);else if(E(e))t=new D(e.data);else if(h(e)){var n=u?g(e.children):[],i=new p(e.name,r({},e.attribs),n);n.forEach((function(e){return e.parent=i})),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=r({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=r({},e["x-attribsPrefix"])),t=i}else if(F(e)){n=u?g(e.children):[];var o=new f(n);n.forEach((function(e){return e.parent=o})),t=o}else if(A(e)){n=u?g(e.children):[];var a=new d(n);n.forEach((function(e){return e.parent=a})),e["x-mode"]&&(a["x-mode"]=e["x-mode"]),t=a}else{if(!m(e))throw new Error("Not implemented yet: ".concat(e.type));var c=new s(e.name,e.data);null!=e["x-name"]&&(c["x-name"]=e["x-name"],c["x-publicId"]=e["x-publicId"],c["x-systemId"]=e["x-systemId"]),t=c}return t.startIndex=e.startIndex,t.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(t.sourceCodeLocation=e.sourceCodeLocation),t}function g(e){for(var u=e.map((function(e){return v(e,!0)})),t=1;t1&&(C=c(C,{key:C.key||h})),n.push(D(C,F,h));continue}}if("text"!==F.type){var E=F,m={};l(E)?((0,o.setStyleProp)(E.attribs.style,E.attribs),m=E.attribs):E.attribs&&(m=(0,i.default)(E.attribs,E.name));var A=void 0;switch(F.type){case"script":case"style":F.children[0]&&(m.dangerouslySetInnerHTML={__html:F.children[0].data});break;case"tag":"textarea"===F.name&&F.children[0]?m.defaultValue=F.children[0].data:F.children&&F.children.length&&(A=e(F.children,t));break;default:continue}p>1&&(m.key=h),n.push(D(f(F.name,m,A),F,h))}else{var v=!F.data.trim().length;if(v&&F.parent&&!(0,o.canTextBeChildOfNode)(F.parent))continue;if((null===t||void 0===t?void 0:t.trim)&&v)continue;n.push(D(F.data,F,h))}}return 1===n.length?n[0]:n}},7025:function(e,u,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u,"__esModule",{value:!0}),u.htmlToDOM=u.domToReact=u.attributesToProps=u.Text=u.ProcessingInstruction=u.Element=u.Comment=void 0;var r=n(t(159));u.htmlToDOM=r.default;var i=n(t(8131));u.attributesToProps=i.default;var o=n(t(4595));u.domToReact=o.default;var a=t(9936);Object.defineProperty(u,"Comment",{enumerable:!0,get:function(){return a.Comment}}),Object.defineProperty(u,"Element",{enumerable:!0,get:function(){return a.Element}}),Object.defineProperty(u,"ProcessingInstruction",{enumerable:!0,get:function(){return a.ProcessingInstruction}}),Object.defineProperty(u,"Text",{enumerable:!0,get:function(){return a.Text}});var l={lowerCaseAttributeNames:!1};u.default=function(e,u){if("string"!==typeof e)throw new TypeError("First argument must be a string");return e?(0,o.default)((0,r.default)(e,(null===u||void 0===u?void 0:u.htmlparser2)||l),u):[]}},4141:function(e,u,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u,"__esModule",{value:!0}),u.returnFirstArg=u.canTextBeChildOfNode=u.ELEMENTS_WITH_NO_TEXT_CHILDREN=u.PRESERVE_CUSTOM_ATTRIBUTES=u.setStyleProp=u.isCustomComponent=void 0;var r=t(2791),i=n(t(5792)),o=new Set(["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"]);u.isCustomComponent=function(e,u){return e.includes("-")?!o.has(e):Boolean(u&&"string"===typeof u.is)};var a={reactCompat:!0};u.setStyleProp=function(e,u){if("string"===typeof e)if(e.trim())try{u.style=(0,i.default)(e,a)}catch(t){u.style={}}else u.style={}},u.PRESERVE_CUSTOM_ATTRIBUTES=Number(r.version.split(".")[0])>=16,u.ELEMENTS_WITH_NO_TEXT_CHILDREN=new Set(["tr","tbody","thead","tfoot","colgroup","table","head","html","frameset"]);u.canTextBeChildOfNode=function(e){return!u.ELEMENTS_WITH_NO_TEXT_CHILDREN.has(e.name)};u.returnFirstArg=function(e){return e}},9936:function(e,u,t){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,u,t,n){void 0===n&&(n=t);var r=Object.getOwnPropertyDescriptor(u,t);r&&!("get"in r?!u.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return u[t]}}),Object.defineProperty(e,n,r)}:function(e,u,t,n){void 0===n&&(n=t),e[n]=u[t]}),r=this&&this.__exportStar||function(e,u){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(u,t)||n(u,e,t)};Object.defineProperty(u,"__esModule",{value:!0}),u.DomHandler=void 0;var i=t(4776),o=t(1262);r(t(1262),u);var a={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,u,t){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"===typeof u&&(t=u,u=a),"object"===typeof e&&(u=e,e=void 0),this.callback=null!==e&&void 0!==e?e:null,this.options=null!==u&&void 0!==u?u:a,this.elementCB=null!==t&&void 0!==t?t:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,u){var t=this.options.xmlMode?i.ElementType.Tag:void 0,n=new o.Element(e,u,void 0,t);this.addNode(n),this.tagStack.push(n)},e.prototype.ontext=function(e){var u=this.lastNode;if(u&&u.type===i.ElementType.Text)u.data+=e,this.options.withEndIndices&&(u.endIndex=this.parser.endIndex);else{var t=new o.Text(e);this.addNode(t),this.lastNode=t}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===i.ElementType.Comment)this.lastNode.data+=e;else{var u=new o.Comment(e);this.addNode(u),this.lastNode=u}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new o.Text(""),u=new o.CDATA([e]);this.addNode(u),e.parent=u,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,u){var t=new o.ProcessingInstruction(e,u);this.addNode(t)},e.prototype.handleCallback=function(e){if("function"===typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var u=this.tagStack[this.tagStack.length-1],t=u.children[u.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),u.children.push(e),t&&(e.prev=t,t.next=e),e.parent=u,this.lastNode=null},e}();u.DomHandler=l,u.default=l},1262:function(e,u,t){"use strict";var n=this&&this.__extends||function(){var e=function(u,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,u){e.__proto__=u}||function(e,u){for(var t in u)Object.prototype.hasOwnProperty.call(u,t)&&(e[t]=u[t])},e(u,t)};return function(u,t){if("function"!==typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=u}e(u,t),u.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}}(),r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var u,t=1,n=arguments.length;t0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),u}(o);u.NodeWithChildren=c;var f=function(e){function u(){var u=null!==e&&e.apply(this,arguments)||this;return u.type=i.ElementType.CDATA,u}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),u}(c);u.CDATA=f;var d=function(e){function u(){var u=null!==e&&e.apply(this,arguments)||this;return u.type=i.ElementType.Root,u}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),u}(c);u.Document=d;var p=function(e){function u(u,t,n,r){void 0===n&&(n=[]),void 0===r&&(r="script"===u?i.ElementType.Script:"style"===u?i.ElementType.Style:i.ElementType.Tag);var o=e.call(this,n)||this;return o.name=u,o.attribs=t,o.type=r,o}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(u){var t,n;return{name:u,value:e.attribs[u],namespace:null===(t=e["x-attribsNamespace"])||void 0===t?void 0:t[u],prefix:null===(n=e["x-attribsPrefix"])||void 0===n?void 0:n[u]}}))},enumerable:!1,configurable:!0}),u}(c);function h(e){return(0,i.isTag)(e)}function F(e){return e.type===i.ElementType.CDATA}function C(e){return e.type===i.ElementType.Text}function E(e){return e.type===i.ElementType.Comment}function m(e){return e.type===i.ElementType.Directive}function A(e){return e.type===i.ElementType.Root}function v(e,u){var t;if(void 0===u&&(u=!1),C(e))t=new l(e.data);else if(E(e))t=new D(e.data);else if(h(e)){var n=u?g(e.children):[],i=new p(e.name,r({},e.attribs),n);n.forEach((function(e){return e.parent=i})),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=r({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=r({},e["x-attribsPrefix"])),t=i}else if(F(e)){n=u?g(e.children):[];var o=new f(n);n.forEach((function(e){return e.parent=o})),t=o}else if(A(e)){n=u?g(e.children):[];var a=new d(n);n.forEach((function(e){return e.parent=a})),e["x-mode"]&&(a["x-mode"]=e["x-mode"]),t=a}else{if(!m(e))throw new Error("Not implemented yet: ".concat(e.type));var c=new s(e.name,e.data);null!=e["x-name"]&&(c["x-name"]=e["x-name"],c["x-publicId"]=e["x-publicId"],c["x-systemId"]=e["x-systemId"]),t=c}return t.startIndex=e.startIndex,t.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(t.sourceCodeLocation=e.sourceCodeLocation),t}function g(e){for(var u=e.map((function(e){return v(e,!0)})),t=1;te.length)&&(u=e.length);for(var t=0,n=new Array(u);t0&&void 0!==arguments[0]?arguments[0]:{},t=u.width?String(u.width):e.defaultWidth,n=e.formats[t]||e.formats[e.defaultWidth];return n}}var i={date:r({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:r({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:r({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},o={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function a(e){return function(u,t){var n;if("formatting"===(null!==t&&void 0!==t&&t.context?String(t.context):"standalone")&&e.formattingValues){var r=e.defaultFormattingWidth||e.defaultWidth,i=null!==t&&void 0!==t&&t.width?String(t.width):r;n=e.formattingValues[i]||e.formattingValues[r]}else{var o=e.defaultWidth,a=null!==t&&void 0!==t&&t.width?String(t.width):e.defaultWidth;n=e.values[a]||e.values[o]}return n[e.argumentCallback?e.argumentCallback(u):u]}}var l={ordinalNumber:function(e,u){var t=Number(e),n=t%100;if(n>20||n<10)switch(n%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},era:a({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:a({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:a({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:a({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:a({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function D(e){return function(u){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.width,r=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],i=u.match(r);if(!i)return null;var o,a=i[0],l=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],D=Array.isArray(l)?c(l,(function(e){return e.test(a)})):s(l,(function(e){return e.test(a)}));o=e.valueCallback?e.valueCallback(D):D,o=t.valueCallback?t.valueCallback(o):o;var f=u.slice(a.length);return{value:o,rest:f}}}function s(e,u){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&u(e[t]))return t}function c(e,u){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:{},t=e.match(f.matchPattern);if(!t)return null;var n=t[0],r=e.match(f.parsePattern);if(!r)return null;var i=f.valueCallback?f.valueCallback(r[0]):r[0];i=u.valueCallback?u.valueCallback(i):i;var o=e.slice(n.length);return{value:i,rest:o}}),era:D({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:D({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:D({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:D({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:D({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},p={code:"en-US",formatDistance:function(e,u,t){var r,i=n[e];return r="string"===typeof i?i:1===u?i.one:i.other.replace("{{count}}",u.toString()),null!==t&&void 0!==t&&t.addSuffix?t.comparison&&t.comparison>0?"in "+r:r+" ago":r},formatLong:i,formatRelative:function(e,u,t,n){return o[e]},localize:l,match:d,options:{weekStartsOn:0,firstWeekContainsDate:1}},h={};function F(){return h}Math.pow(10,8);var C=6048e5;function E(e){var u=Object.prototype.toString.call(e);return e instanceof Date||"object"===typeof e&&"[object Date]"===u?new e.constructor(+e):"number"===typeof e||"[object Number]"===u||"string"===typeof e||"[object String]"===u?new Date(e):new Date(NaN)}function m(e){var u=E(e);return u.setHours(0,0,0,0),u}function A(e){var u=E(e),t=new Date(Date.UTC(u.getFullYear(),u.getMonth(),u.getDate(),u.getHours(),u.getMinutes(),u.getSeconds(),u.getMilliseconds()));return t.setUTCFullYear(u.getFullYear()),+e-+t}function v(e,u){var t=m(e),n=m(u),r=+t-A(t),i=+n-A(n);return Math.round((r-i)/864e5)}function g(e,u){return e instanceof Date?new e.constructor(u):new Date(u)}function y(e){var u=E(e),t=g(e,0);return t.setFullYear(u.getFullYear(),0,1),t.setHours(0,0,0,0),t}function B(e){var u=E(e);return v(u,y(u))+1}function x(e,u){var t,n,r,i,o,a,l,D,s=F(),c=null!==(t=null!==(n=null!==(r=null!==(i=null===u||void 0===u?void 0:u.weekStartsOn)&&void 0!==i?i:null===u||void 0===u||null===(o=u.locale)||void 0===o||null===(a=o.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==r?r:s.weekStartsOn)&&void 0!==n?n:null===(l=s.locale)||void 0===l||null===(D=l.options)||void 0===D?void 0:D.weekStartsOn)&&void 0!==t?t:0,f=E(e),d=f.getDay(),p=(d=r.getTime()?t+1:u.getTime()>=o.getTime()?t:t-1}function w(e){var u=k(e),t=g(e,0);return t.setFullYear(u,0,4),t.setHours(0,0,0,0),b(t)}function S(e){var u=E(e),t=+b(u)-+w(u);return Math.round(t/C)+1}function T(e,u){var t,n,r,i,o,a,l,D,s=E(e),c=s.getFullYear(),f=F(),d=null!==(t=null!==(n=null!==(r=null!==(i=null===u||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:null===u||void 0===u||null===(o=u.locale)||void 0===o||null===(a=o.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:f.firstWeekContainsDate)&&void 0!==n?n:null===(l=f.locale)||void 0===l||null===(D=l.options)||void 0===D?void 0:D.firstWeekContainsDate)&&void 0!==t?t:1,p=g(e,0);p.setFullYear(c+1,0,d),p.setHours(0,0,0,0);var h=x(p,u),C=g(e,0);C.setFullYear(c,0,d),C.setHours(0,0,0,0);var m=x(C,u);return s.getTime()>=h.getTime()?c+1:s.getTime()>=m.getTime()?c:c-1}function P(e,u){var t,n,r,i,o,a,l,D,s=F(),c=null!==(t=null!==(n=null!==(r=null!==(i=null===u||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:null===u||void 0===u||null===(o=u.locale)||void 0===o||null===(a=o.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:s.firstWeekContainsDate)&&void 0!==n?n:null===(l=s.locale)||void 0===l||null===(D=l.options)||void 0===D?void 0:D.firstWeekContainsDate)&&void 0!==t?t:1,f=T(e,u),d=g(e,0);return d.setFullYear(f,0,c),d.setHours(0,0,0,0),x(d,u)}function O(e,u){var t=E(e),n=+x(t,u)-+P(t,u);return Math.round(n/C)+1}function M(e,u){return(e<0?"-":"")+Math.abs(e).toString().padStart(u,"0")}var I=function(e,u){var t=e.getFullYear(),n=t>0?t:1-t;return M("yy"===u?n%100:n,u.length)},N=function(e,u){var t=e.getMonth();return"M"===u?String(t+1):M(t+1,2)},_=function(e,u){return M(e.getDate(),u.length)},L=function(e,u){return M(e.getHours()%12||12,u.length)},j=function(e,u){return M(e.getHours(),u.length)},z=function(e,u){return M(e.getMinutes(),u.length)},R=function(e,u){return M(e.getSeconds(),u.length)},H=function(e,u){var t=u.length,n=e.getMilliseconds();return M(Math.trunc(n*Math.pow(10,t-3)),u.length)},Z="midnight",U="noon",q="morning",W="afternoon",V="evening",Y="night",X={G:function(e,u,t){var n=e.getFullYear()>0?1:0;switch(u){case"G":case"GG":case"GGG":return t.era(n,{width:"abbreviated"});case"GGGGG":return t.era(n,{width:"narrow"});default:return t.era(n,{width:"wide"})}},y:function(e,u,t){if("yo"===u){var n=e.getFullYear(),r=n>0?n:1-n;return t.ordinalNumber(r,{unit:"year"})}return I(e,u)},Y:function(e,u,t,n){var r=T(e,n),i=r>0?r:1-r;return"YY"===u?M(i%100,2):"Yo"===u?t.ordinalNumber(i,{unit:"year"}):M(i,u.length)},R:function(e,u){return M(k(e),u.length)},u:function(e,u){return M(e.getFullYear(),u.length)},Q:function(e,u,t){var n=Math.ceil((e.getMonth()+1)/3);switch(u){case"Q":return String(n);case"QQ":return M(n,2);case"Qo":return t.ordinalNumber(n,{unit:"quarter"});case"QQQ":return t.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(n,{width:"narrow",context:"formatting"});default:return t.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,u,t){var n=Math.ceil((e.getMonth()+1)/3);switch(u){case"q":return String(n);case"qq":return M(n,2);case"qo":return t.ordinalNumber(n,{unit:"quarter"});case"qqq":return t.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(n,{width:"narrow",context:"standalone"});default:return t.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,u,t){var n=e.getMonth();switch(u){case"M":case"MM":return N(e,u);case"Mo":return t.ordinalNumber(n+1,{unit:"month"});case"MMM":return t.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(n,{width:"narrow",context:"formatting"});default:return t.month(n,{width:"wide",context:"formatting"})}},L:function(e,u,t){var n=e.getMonth();switch(u){case"L":return String(n+1);case"LL":return M(n+1,2);case"Lo":return t.ordinalNumber(n+1,{unit:"month"});case"LLL":return t.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(n,{width:"narrow",context:"standalone"});default:return t.month(n,{width:"wide",context:"standalone"})}},w:function(e,u,t,n){var r=O(e,n);return"wo"===u?t.ordinalNumber(r,{unit:"week"}):M(r,u.length)},I:function(e,u,t){var n=S(e);return"Io"===u?t.ordinalNumber(n,{unit:"week"}):M(n,u.length)},d:function(e,u,t){return"do"===u?t.ordinalNumber(e.getDate(),{unit:"date"}):_(e,u)},D:function(e,u,t){var n=B(e);return"Do"===u?t.ordinalNumber(n,{unit:"dayOfYear"}):M(n,u.length)},E:function(e,u,t){var n=e.getDay();switch(u){case"E":case"EE":case"EEE":return t.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(n,{width:"short",context:"formatting"});default:return t.day(n,{width:"wide",context:"formatting"})}},e:function(e,u,t,n){var r=e.getDay(),i=(r-n.weekStartsOn+8)%7||7;switch(u){case"e":return String(i);case"ee":return M(i,2);case"eo":return t.ordinalNumber(i,{unit:"day"});case"eee":return t.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(r,{width:"short",context:"formatting"});default:return t.day(r,{width:"wide",context:"formatting"})}},c:function(e,u,t,n){var r=e.getDay(),i=(r-n.weekStartsOn+8)%7||7;switch(u){case"c":return String(i);case"cc":return M(i,u.length);case"co":return t.ordinalNumber(i,{unit:"day"});case"ccc":return t.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(r,{width:"narrow",context:"standalone"});case"cccccc":return t.day(r,{width:"short",context:"standalone"});default:return t.day(r,{width:"wide",context:"standalone"})}},i:function(e,u,t){var n=e.getDay(),r=0===n?7:n;switch(u){case"i":return String(r);case"ii":return M(r,u.length);case"io":return t.ordinalNumber(r,{unit:"day"});case"iii":return t.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(n,{width:"short",context:"formatting"});default:return t.day(n,{width:"wide",context:"formatting"})}},a:function(e,u,t){var n=e.getHours()/12>=1?"pm":"am";switch(u){case"a":case"aa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(e,u,t){var n,r=e.getHours();switch(n=12===r?U:0===r?Z:r/12>=1?"pm":"am",u){case"b":case"bb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(e,u,t){var n,r=e.getHours();switch(n=r>=17?V:r>=12?W:r>=4?q:Y,u){case"B":case"BB":case"BBB":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(e,u,t){if("ho"===u){var n=e.getHours()%12;return 0===n&&(n=12),t.ordinalNumber(n,{unit:"hour"})}return L(e,u)},H:function(e,u,t){return"Ho"===u?t.ordinalNumber(e.getHours(),{unit:"hour"}):j(e,u)},K:function(e,u,t){var n=e.getHours()%12;return"Ko"===u?t.ordinalNumber(n,{unit:"hour"}):M(n,u.length)},k:function(e,u,t){var n=e.getHours();return 0===n&&(n=24),"ko"===u?t.ordinalNumber(n,{unit:"hour"}):M(n,u.length)},m:function(e,u,t){return"mo"===u?t.ordinalNumber(e.getMinutes(),{unit:"minute"}):z(e,u)},s:function(e,u,t){return"so"===u?t.ordinalNumber(e.getSeconds(),{unit:"second"}):R(e,u)},S:function(e,u){return H(e,u)},X:function(e,u,t){var n=e.getTimezoneOffset();if(0===n)return"Z";switch(u){case"X":return G(n);case"XXXX":case"XX":return $(n);default:return $(n,":")}},x:function(e,u,t){var n=e.getTimezoneOffset();switch(u){case"x":return G(n);case"xxxx":case"xx":return $(n);default:return $(n,":")}},O:function(e,u,t){var n=e.getTimezoneOffset();switch(u){case"O":case"OO":case"OOO":return"GMT"+Q(n,":");default:return"GMT"+$(n,":")}},z:function(e,u,t){var n=e.getTimezoneOffset();switch(u){case"z":case"zz":case"zzz":return"GMT"+Q(n,":");default:return"GMT"+$(n,":")}},t:function(e,u,t){return M(Math.trunc(e.getTime()/1e3),u.length)},T:function(e,u,t){return M(e.getTime(),u.length)}};function Q(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=e>0?"-":"+",n=Math.abs(e),r=Math.trunc(n/60),i=n%60;return 0===i?t+String(r):t+String(r)+u+M(i,2)}function G(e,u){return e%60===0?(e>0?"-":"+")+M(Math.abs(e)/60,2):$(e,u)}function $(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=e>0?"-":"+",n=Math.abs(e),r=M(Math.trunc(n/60),2),i=M(n%60,2);return t+r+u+i}var K=function(e,u){switch(e){case"P":return u.date({width:"short"});case"PP":return u.date({width:"medium"});case"PPP":return u.date({width:"long"});default:return u.date({width:"full"})}},J=function(e,u){switch(e){case"p":return u.time({width:"short"});case"pp":return u.time({width:"medium"});case"ppp":return u.time({width:"long"});default:return u.time({width:"full"})}},ee={p:J,P:function(e,u){var t,n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return K(e,u);switch(r){case"P":t=u.dateTime({width:"short"});break;case"PP":t=u.dateTime({width:"medium"});break;case"PPP":t=u.dateTime({width:"long"});break;default:t=u.dateTime({width:"full"})}return t.replace("{{date}}",K(r,u)).replace("{{time}}",J(i,u))}},ue=/^D+$/,te=/^Y+$/,ne=["D","DD","YY","YYYY"];function re(e){return e instanceof Date||"object"===typeof e&&"[object Date]"===Object.prototype.toString.call(e)}function ie(e){if(!re(e)&&"number"!==typeof e)return!1;var u=E(e);return!isNaN(Number(u))}var oe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ae=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,le=/^'([^]*?)'?$/,De=/''/g,se=/[a-zA-Z]/;function ce(e,u,t){var n,r,i,o,a,l,D,s,c,f,d,h,C,m,A,v,g,y,B=F(),x=null!==(n=null!==(r=null===t||void 0===t?void 0:t.locale)&&void 0!==r?r:B.locale)&&void 0!==n?n:p,b=null!==(i=null!==(o=null!==(a=null!==(l=null===t||void 0===t?void 0:t.firstWeekContainsDate)&&void 0!==l?l:null===t||void 0===t||null===(D=t.locale)||void 0===D||null===(s=D.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==a?a:B.firstWeekContainsDate)&&void 0!==o?o:null===(c=B.locale)||void 0===c||null===(f=c.options)||void 0===f?void 0:f.firstWeekContainsDate)&&void 0!==i?i:1,k=null!==(d=null!==(h=null!==(C=null!==(m=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==m?m:null===t||void 0===t||null===(A=t.locale)||void 0===A||null===(v=A.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==C?C:B.weekStartsOn)&&void 0!==h?h:null===(g=B.locale)||void 0===g||null===(y=g.options)||void 0===y?void 0:y.weekStartsOn)&&void 0!==d?d:0,w=E(e);if(!ie(w))throw new RangeError("Invalid time value");var S=u.match(ae).map((function(e){var u=e[0];return"p"===u||"P"===u?(0,ee[u])(e,x.formatLong):e})).join("").match(oe).map((function(e){if("''"===e)return{isToken:!1,value:"'"};var u=e[0];if("'"===u)return{isToken:!1,value:fe(e)};if(X[u])return{isToken:!0,value:e};if(u.match(se))throw new RangeError("Format string contains an unescaped latin alphabet character `"+u+"`");return{isToken:!1,value:e}}));x.localize.preprocessor&&(S=x.localize.preprocessor(w,S));var T={firstWeekContainsDate:b,weekStartsOn:k,locale:x};return S.map((function(n){if(!n.isToken)return n.value;var r=n.value;return(null!==t&&void 0!==t&&t.useAdditionalWeekYearTokens||!function(e){return te.test(e)}(r))&&(null!==t&&void 0!==t&&t.useAdditionalDayOfYearTokens||!function(e){return ue.test(e)}(r))||function(e,u,t){var n=function(e,u,t){var n="Y"===e[0]?"years":"days of the month";return"Use `".concat(e.toLowerCase(),"` instead of `").concat(e,"` (in `").concat(u,"`) for formatting ").concat(n," to the input `").concat(t,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")}(e,u,t);if(console.warn(n),ne.includes(e))throw new RangeError(n)}(r,u,String(e)),(0,X[r[0]])(w,r,x.localize,T)})).join("")}function fe(e){var u=e.match(le);return u?u[1].replace(De,"'"):e}},5658:function(e,u,t){"use strict";var n=t(7025);u.ZP=n.default||n},6511:function(e,u,t){"use strict";t.d(u,{U:function(){return Vn}});var n={};t.r(n),t.d(n,{boolean:function(){return x},booleanish:function(){return b},commaOrSpaceSeparated:function(){return P},commaSeparated:function(){return T},number:function(){return w},overloadedBoolean:function(){return k},spaceSeparated:function(){return S}});var r={};t.r(r),t.d(r,{attentionMarkers:function(){return ht},contentInitial:function(){return Dt},disable:function(){return Ft},document:function(){return lt},flow:function(){return ct},flowInitial:function(){return st},insideSpan:function(){return pt},string:function(){return ft},text:function(){return dt}});var i=t(3433),o=t(7762),a=t(1413);var l=t(9439);var D=/^(?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])(?:[\$0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088E\u0898-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]|\uDB40[\uDD00-\uDDEF])*$/,s=/^(?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])(?:[\$\x2D0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088E\u0898-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]|\uDB40[\uDD00-\uDDEF])*$/,c={};function f(e,u){return((u||c).jsx?s:D).test(e)}var d=/[ \t\n\f\r]/g;function p(e){return""===e.replace(d,"")}var h=t(3144),F=t(5671),C=(0,h.Z)((function e(u,t,n){(0,F.Z)(this,e),this.property=u,this.normal=t,n&&(this.space=n)}));function E(e,u){for(var t={},n={},r=-1;++r0&&"number"===typeof t.column&&t.column>0)return{line:t.line,column:t.column,offset:"number"===typeof t.offset&&t.offset>-1?t.offset:void 0}}}function ie(e){return e&&"object"===typeof e?"position"in e||"type"in e?ae(e.position):"start"in e||"end"in e?ae(e):"line"in e||"column"in e?oe(e):"":""}function oe(e){return le(e&&e.line)+":"+le(e&&e.column)}function ae(e){return oe(e&&e.start)+"-"+oe(e&&e.end)}function le(e){return e&&"number"===typeof e?e:1}var De=function(e){(0,v.Z)(t,e);var u=(0,g.Z)(t);function t(e,n,r){var i;(0,F.Z)(this,t),i=u.call(this),"string"===typeof n&&(r=n,n=void 0);var o="",l={},D=!1;if(n&&(l="line"in n&&"column"in n||"start"in n&&"end"in n?{place:n}:"type"in n?{ancestors:[n],place:n.position}:(0,a.Z)({},n)),"string"===typeof e?o=e:!l.cause&&e&&(D=!0,o=e.message,l.cause=e),!l.ruleId&&!l.source&&"string"===typeof r){var s=r.indexOf(":");-1===s?l.ruleId=r:(l.source=r.slice(0,s),l.ruleId=r.slice(s+1))}if(!l.place&&l.ancestors&&l.ancestors){var c=l.ancestors[l.ancestors.length-1];c&&(l.place=c.position)}var f=l.place&&"start"in l.place?l.place.start:l.place;return i.ancestors=l.ancestors||void 0,i.cause=l.cause||void 0,i.column=f?f.column:void 0,i.fatal=void 0,i.file,i.message=o,i.line=f?f.line:void 0,i.name=ie(l.place)||"1:1",i.place=l.place||void 0,i.reason=i.message,i.ruleId=l.ruleId||void 0,i.source=l.source||void 0,i.stack=D&&l.cause&&"string"===typeof l.cause.stack?l.cause.stack:"",i.actual,i.expected,i.note,i.url,i}return(0,h.Z)(t)}((0,t(8737).Z)(Error));De.prototype.file="",De.prototype.name="",De.prototype.reason="",De.prototype.message="",De.prototype.stack="",De.prototype.column=void 0,De.prototype.line=void 0,De.prototype.ancestors=void 0,De.prototype.cause=void 0,De.prototype.fatal=void 0,De.prototype.place=void 0,De.prototype.ruleId=void 0,De.prototype.source=void 0;var se={}.hasOwnProperty,ce=new Map,fe=/[A-Z]/g,de=/-([a-z])/g,pe=new Set(["table","tbody","thead","tfoot","tr"]),he=new Set(["td","th"]),Fe="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Ce(e,u){if(!u||void 0===u.Fragment)throw new TypeError("Expected `Fragment` in options");var t,n=u.filePath||void 0;if(u.development){if("function"!==typeof u.jsxDEV)throw new TypeError("Expected `jsxDEV` in options when `development: true`");t=function(e,u){return t;function t(t,n,r,i){var o=Array.isArray(r.children),a=ne(t);return u(n,r,i,o,{columnNumber:a?a.column-1:void 0,fileName:e,lineNumber:a?a.line:void 0},void 0)}}(n,u.jsxDEV)}else{if("function"!==typeof u.jsx)throw new TypeError("Expected `jsx` in production options");if("function"!==typeof u.jsxs)throw new TypeError("Expected `jsxs` in production options");t=function(e,u,t){return n;function n(e,n,r,i){var o=Array.isArray(r.children)?t:u;return i?o(n,r,i):o(n,r)}}(0,u.jsx,u.jsxs)}var r={Fragment:u.Fragment,ancestors:[],components:u.components||{},create:t,elementAttributeNameCase:u.elementAttributeNameCase||"react",evaluater:u.createEvaluater?u.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:u.ignoreInvalidStyle||!1,passKeys:!1!==u.passKeys,passNode:u.passNode||!1,schema:"svg"===u.space?Y:V,stylePropertyNameCase:u.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==u.tableCellAlignToStyle},i=Ee(r,e,void 0);return i&&"string"!==typeof i?i:r.create(e,r.Fragment,{children:i||void 0},void 0)}function Ee(e,u,t){return"element"===u.type?function(e,u,t){var n=e.schema,r=n;"svg"===u.tagName.toLowerCase()&&"html"===n.space&&(r=Y,e.schema=r);e.ancestors.push(u);var i=ye(e,u.tagName,!1),o=function(e,u){var t,n,r={};for(n in u.properties)if("children"!==n&&se.call(u.properties,n)){var i=ge(e,n,u.properties[n]);if(i){var o=(0,l.Z)(i,2),a=o[0],D=o[1];e.tableCellAlignToStyle&&"align"===a&&"string"===typeof D&&he.has(u.tagName)?t=D:r[a]=D}}if(t){(r.style||(r.style={}))["css"===e.stylePropertyNameCase?"text-align":"textAlign"]=t}return r}(e,u),a=ve(e,u);pe.has(u.tagName)&&(a=a.filter((function(e){return"string"!==typeof e||!("object"===typeof(u=e)?"text"===u.type&&p(u.value):p(u));var u})));return me(e,o,i,u),Ae(o,a),e.ancestors.pop(),e.schema=n,e.create(u,i,o,t)}(e,u,t):"mdxFlowExpression"===u.type||"mdxTextExpression"===u.type?function(e,u){if(u.data&&u.data.estree&&e.evaluater){var t=u.data.estree.body[0];return t.type,e.evaluater.evaluateExpression(t.expression)}Be(e,u.position)}(e,u):"mdxJsxFlowElement"===u.type||"mdxJsxTextElement"===u.type?function(e,u,t){var n=e.schema,r=n;"svg"===u.name&&"html"===n.space&&(r=Y,e.schema=r);e.ancestors.push(u);var i=null===u.name?e.Fragment:ye(e,u.name,!0),a=function(e,u){var t,n={},r=(0,o.Z)(u.attributes);try{for(r.s();!(t=r.n()).done;){var i=t.value;if("mdxJsxExpressionAttribute"===i.type)if(i.data&&i.data.estree&&e.evaluater){var a=i.data.estree.body[0];a.type;var l=a.expression;l.type;var D=l.properties[0];D.type,Object.assign(n,e.evaluater.evaluateExpression(D.argument))}else Be(e,u.position);else{var s=i.name,c=void 0;if(i.value&&"object"===typeof i.value)if(i.value.data&&i.value.data.estree&&e.evaluater){var f=i.value.data.estree.body[0];f.type,c=e.evaluater.evaluateExpression(f.expression)}else Be(e,u.position);else c=null===i.value||i.value;n[s]=c}}}catch(d){r.e(d)}finally{r.f()}return n}(e,u),l=ve(e,u);return me(e,a,i,u),Ae(a,l),e.ancestors.pop(),e.schema=n,e.create(u,i,a,t)}(e,u,t):"mdxjsEsm"===u.type?function(e,u){if(u.data&&u.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(u.data.estree);Be(e,u.position)}(e,u):"root"===u.type?function(e,u,t){var n={};return Ae(n,ve(e,u)),e.create(u,e.Fragment,n,t)}(e,u,t):"text"===u.type?function(e,u){return u.value}(0,u):void 0}function me(e,u,t,n){"string"!==typeof t&&t!==e.Fragment&&e.passNode&&(u.node=n)}function Ae(e,u){if(u.length>0){var t=u.length>1?u:u[0];t&&(e.children=t)}}function ve(e,u){for(var t=[],n=-1,r=e.passKeys?new Map:ce;++n4&&"data"===t.slice(0,4)&&X.test(u)){if("-"===u.charAt(4)){var i=u.slice(5).replace(Q,K);n="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{var o=u.slice(4);if(!Q.test(o)){var a=o.replace(G,$);"-"!==a.charAt(0)&&(a="-"+a),u="data"+a}}r=I}return new r(n,u)}(e.schema,u);if(!(null===t||void 0===t||"number"===typeof t&&Number.isNaN(t))){if(Array.isArray(t)&&(t=n.commaSeparated?function(e,u){var t=u||{};return(""===e[e.length-1]?[].concat((0,i.Z)(e),[""]):e).join((t.padRight?" ":"")+","+(!1===t.padLeft?"":" ")).trim()}(t):t.join(" ").trim()),"style"===n.property){var r="object"===typeof t?t:function(e,u){var t={};try{ue(u,i)}catch(o){if(!e.ignoreInvalidStyle){var n=o,r=new De("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw r.file=e.filePath||void 0,r.url=Fe+"#cannot-parse-style-attribute",r}}return t;function i(e,u){var n=e;"--"!==n.slice(0,2)&&("-ms-"===n.slice(0,4)&&(n="ms-"+n.slice(4)),n=n.replace(de,be)),t[n]=u}}(e,String(t));return"css"===e.stylePropertyNameCase&&(r=function(e){var u,t={};for(u in e)se.call(e,u)&&(t[xe(u)]=e[u]);return t}(r)),["style",r]}return["react"===e.elementAttributeNameCase&&n.space?J[n.property]||n.property:n.attribute,t]}}function ye(e,u,t){var n;if(t)if(u.includes(".")){for(var r,i=u.split("."),o=-1;++oo?0:o+u:u>o?o:u,t=t>0?t:0,n.length<1e4)(r=Array.from(n)).unshift(u,t),e.splice.apply(e,(0,i.Z)(r));else for(t&&e.splice(u,t);a0?(Me(e,e.length,0,u),e):u}function Ne(e){for(var u,t,n,r,i,o,a,l={},D=-1;++D\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA])/),$e=Ke(/\s/);function Ke(e){return function(u){return null!==u&&u>-1&&e.test(String.fromCharCode(u))}}function Je(e,u,t,n){var r=n?n-1:Number.POSITIVE_INFINITY,i=0;return function(n){if(Qe(n))return e.enter(t),o(n);return u(n)};function o(n){return Qe(n)&&i++n))return;for(var D,s,c=r.events.length,f=c;f--;)if("exit"===r.events[f][0]&&"chunkFlow"===r.events[f][1].type){if(D){s=r.events[f][1].end;break}D=!0}for(C(o),l=c;lu;){var n=i[t];r.containerState=n[1],n[0].exit.call(r,e)}i.length=u}function E(){u.write([null]),t=void 0,u=void 0,r.containerState._closeFlow=void 0}}},tu={tokenize:function(e,u,t){return Je(e,e.attempt(this.parser.constructs.document,u,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};var nu={tokenize:function(e,u,t){return function(u){return Qe(u)?Je(e,n,"linePrefix")(u):n(u)};function n(e){return null===e||Ye(e)?u(e):t(e)}},partial:!0};var ru={tokenize:function(e,u){var t;return function(u){return e.enter("content"),t=e.enter("chunkContent",{contentType:"content"}),n(u)};function n(u){return null===u?r(u):Ye(u)?e.check(iu,i,r)(u):(e.consume(u),n)}function r(t){return e.exit("chunkContent"),e.exit("content"),u(t)}function i(u){return e.consume(u),e.exit("chunkContent"),t.next=e.enter("chunkContent",{contentType:"content",previous:t}),t=t.next,n}},resolve:function(e){return Ne(e),e}},iu={tokenize:function(e,u,t){var n=this;return function(u){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),Je(e,r,"linePrefix")};function r(r){if(null===r||Ye(r))return t(r);var i=n.events[n.events.length-1];return!n.parser.constructs.disable.null.includes("codeIndented")&&i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?u(r):e.interrupt(n.parser.constructs.flow,t,u)(r)}},partial:!0};var ou={tokenize:function(e){var u=this,t=e.attempt(nu,(function(n){if(null===n)return void e.consume(n);return e.enter("lineEndingBlank"),e.consume(n),e.exit("lineEndingBlank"),u.currentConstruct=void 0,t}),e.attempt(this.parser.constructs.flowInitial,n,Je(e,e.attempt(this.parser.constructs.flow,n,e.attempt(ru,n)),"linePrefix")));return t;function n(n){if(null!==n)return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),u.currentConstruct=void 0,t;e.consume(n)}}};var au={resolveAll:cu()},lu=su("string"),Du=su("text");function su(e){return{tokenize:function(u){var t=this,n=this.parser.constructs[e],r=u.attempt(n,i,o);return i;function i(e){return l(e)?r(e):o(e)}function o(e){if(null!==e)return u.enter("data"),u.consume(e),a;u.consume(e)}function a(e){return l(e)?(u.exit("data"),r(e)):(u.consume(e),a)}function l(e){if(null===e)return!0;var u=n[e],r=-1;if(u)for(;++r-1){var a=t[0];"string"===typeof a?t[0]=a.slice(r):t.shift()}o>0&&t.push(e[i].slice(0,o))}return t}(a,e)}function d(){var e=n;return{line:e.line,column:e.column,offset:e.offset,_index:e._index,_bufferIndex:e._bufferIndex}}function p(){for(var e;n._index=3&&(null===i||Ye(i))?(e.exit("thematicBreak"),u(i)):t(i)}function o(u){return u===n?(e.consume(u),r++,o):(e.exit("thematicBreakSequence"),Qe(u)?Je(e,i,"whitespace")(u):i(u))}}};var Cu={name:"list",tokenize:function(e,u,t){var n=this,r=n.events[n.events.length-1],i=r&&"linePrefix"===r[1].type?r[2].sliceSerialize(r[1],!0).length:0,o=0;return function(u){var r=n.containerState.type||(42===u||43===u||45===u?"listUnordered":"listOrdered");if("listUnordered"===r?!n.containerState.marker||u===n.containerState.marker:qe(u)){if(n.containerState.type||(n.containerState.type=r,e.enter(r,{_container:!0})),"listUnordered"===r)return e.enter("listItemPrefix"),42===u||45===u?e.check(Fu,t,l)(u):l(u);if(!n.interrupt||49===u)return e.enter("listItemPrefix"),e.enter("listItemValue"),a(u)}return t(u)};function a(u){return qe(u)&&++o<10?(e.consume(u),a):(!n.interrupt||o<2)&&(n.containerState.marker?u===n.containerState.marker:41===u||46===u)?(e.exit("listItemValue"),l(u)):t(u)}function l(u){return e.enter("listItemMarker"),e.consume(u),e.exit("listItemMarker"),n.containerState.marker=n.containerState.marker||u,e.check(nu,n.interrupt?t:D,e.attempt(Eu,c,s))}function D(e){return n.containerState.initialBlankLine=!0,i++,c(e)}function s(u){return Qe(u)?(e.enter("listItemPrefixWhitespace"),e.consume(u),e.exit("listItemPrefixWhitespace"),c):t(u)}function c(t){return n.containerState.size=i+n.sliceSerialize(e.exit("listItemPrefix"),!0).length,u(t)}},continuation:{tokenize:function(e,u,t){var n=this;return n.containerState._closeFlow=void 0,e.check(nu,r,i);function r(t){return n.containerState.furtherBlankLines=n.containerState.furtherBlankLines||n.containerState.initialBlankLine,Je(e,u,"listItemIndent",n.containerState.size+1)(t)}function i(t){return n.containerState.furtherBlankLines||!Qe(t)?(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,o(t)):(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,e.attempt(mu,u,o)(t))}function o(r){return n.containerState._closeFlow=!0,n.interrupt=void 0,Je(e,e.attempt(Cu,u,t),"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(r)}}},exit:function(e){e.exit(this.containerState.type)}},Eu={tokenize:function(e,u,t){var n=this;return Je(e,(function(e){var r=n.events[n.events.length-1];return!Qe(e)&&r&&"listItemPrefixWhitespace"===r[1].type?u(e):t(e)}),"listItemPrefixWhitespace",n.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},mu={tokenize:function(e,u,t){var n=this;return Je(e,(function(e){var r=n.events[n.events.length-1];return r&&"listItemIndent"===r[1].type&&r[2].sliceSerialize(r[1],!0).length===n.containerState.size?u(e):t(e)}),"listItemIndent",n.containerState.size+1)},partial:!0};var Au={name:"blockQuote",tokenize:function(e,u,t){var n=this;return function(u){if(62===u){var i=n.containerState;return i.open||(e.enter("blockQuote",{_container:!0}),i.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(u),e.exit("blockQuoteMarker"),r}return t(u)};function r(t){return Qe(t)?(e.enter("blockQuotePrefixWhitespace"),e.consume(t),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),u):(e.exit("blockQuotePrefix"),u(t))}},continuation:{tokenize:function(e,u,t){var n=this;return function(u){if(Qe(u))return Je(e,r,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u);return r(u)};function r(n){return e.attempt(Au,u,t)(n)}}},exit:function(e){e.exit("blockQuote")}};function vu(e,u,t,n,r,i,o,a,l){var D=l||Number.POSITIVE_INFINITY,s=0;return function(u){if(60===u)return e.enter(n),e.enter(r),e.enter(i),e.consume(u),e.exit(i),c;if(null===u||32===u||41===u||Ue(u))return t(u);return e.enter(n),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),p(u)};function c(t){return 62===t?(e.enter(i),e.consume(t),e.exit(i),e.exit(r),e.exit(n),u):(e.enter(a),e.enter("chunkString",{contentType:"string"}),f(t))}function f(u){return 62===u?(e.exit("chunkString"),e.exit(a),c(u)):null===u||60===u||Ye(u)?t(u):(e.consume(u),92===u?d:f)}function d(u){return 60===u||62===u||92===u?(e.consume(u),f):f(u)}function p(r){return s||null!==r&&41!==r&&!Xe(r)?s999||null===c||91===c||93===c&&!o||94===c&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?t(c):93===c?(e.exit(i),e.enter(r),e.consume(c),e.exit(r),e.exit(n),u):Ye(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),D):(e.enter("chunkString",{contentType:"string"}),s(c))}function s(u){return null===u||91===u||93===u||Ye(u)||l++>999?(e.exit("chunkString"),D(u)):(e.consume(u),o||(o=!Qe(u)),92===u?c:s)}function c(u){return 91===u||92===u||93===u?(e.consume(u),l++,s):s(u)}}function yu(e,u,t,n,r,i){var o;return function(u){if(34===u||39===u||40===u)return e.enter(n),e.enter(r),e.consume(u),e.exit(r),o=40===u?41:u,a;return t(u)};function a(t){return t===o?(e.enter(r),e.consume(t),e.exit(r),e.exit(n),u):(e.enter(i),l(t))}function l(u){return u===o?(e.exit(i),a(o)):null===u?t(u):Ye(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),Je(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),D(u))}function D(u){return u===o||null===u||Ye(u)?(e.exit("chunkString"),l(u)):(e.consume(u),92===u?s:D)}function s(u){return u===o||92===u?(e.consume(u),D):D(u)}}function Bu(e,u){var t;return function n(r){if(Ye(r))return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t=!0,n;if(Qe(r))return Je(e,n,t?"linePrefix":"lineSuffix")(r);return u(r)}}function xu(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var bu={name:"definition",tokenize:function(e,u,t){var n,r=this;return function(u){return e.enter("definition"),function(u){return gu.call(r,e,i,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(u)}(u)};function i(u){return n=xu(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===u?(e.enter("definitionMarker"),e.consume(u),e.exit("definitionMarker"),o):t(u)}function o(u){return Xe(u)?Bu(e,a)(u):a(u)}function a(u){return vu(e,l,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(u)}function l(u){return e.attempt(ku,D,D)(u)}function D(u){return Qe(u)?Je(e,s,"whitespace")(u):s(u)}function s(i){return null===i||Ye(i)?(e.exit("definition"),r.parser.defined.push(n),u(i)):t(i)}}},ku={tokenize:function(e,u,t){return function(u){return Xe(u)?Bu(e,n)(u):t(u)};function n(u){return yu(e,r,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(u)}function r(u){return Qe(u)?Je(e,i,"whitespace")(u):i(u)}function i(e){return null===e||Ye(e)?u(e):t(e)}},partial:!0};var wu={name:"codeIndented",tokenize:function(e,u,t){var n=this;return function(u){return e.enter("codeIndented"),Je(e,r,"linePrefix",5)(u)};function r(e){var u=n.events[n.events.length-1];return u&&"linePrefix"===u[1].type&&u[2].sliceSerialize(u[1],!0).length>=4?i(e):t(e)}function i(u){return null===u?a(u):Ye(u)?e.attempt(Su,i,a)(u):(e.enter("codeFlowValue"),o(u))}function o(u){return null===u||Ye(u)?(e.exit("codeFlowValue"),i(u)):(e.consume(u),o)}function a(t){return e.exit("codeIndented"),u(t)}}},Su={tokenize:function(e,u,t){var n=this;return r;function r(u){return n.parser.lazy[n.now().line]?t(u):Ye(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),r):Je(e,i,"linePrefix",5)(u)}function i(e){var i=n.events[n.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?u(e):Ye(e)?r(e):t(e)}},partial:!0};var Tu={name:"headingAtx",tokenize:function(e,u,t){var n=0;return function(u){return e.enter("atxHeading"),function(u){return e.enter("atxHeadingSequence"),r(u)}(u)};function r(u){return 35===u&&n++<6?(e.consume(u),r):null===u||Xe(u)?(e.exit("atxHeadingSequence"),i(u)):t(u)}function i(t){return 35===t?(e.enter("atxHeadingSequence"),o(t)):null===t||Ye(t)?(e.exit("atxHeading"),u(t)):Qe(t)?Je(e,i,"whitespace")(t):(e.enter("atxHeadingText"),a(t))}function o(u){return 35===u?(e.consume(u),o):(e.exit("atxHeadingSequence"),i(u))}function a(u){return null===u||35===u||Xe(u)?(e.exit("atxHeadingText"),i(u)):(e.consume(u),a)}},resolve:function(e,u){var t,n,r=e.length-2,i=3;"whitespace"===e[i][1].type&&(i+=2);r-2>i&&"whitespace"===e[r][1].type&&(r-=2);"atxHeadingSequence"===e[r][1].type&&(i===r-1||r-4>i&&"whitespace"===e[r-2][1].type)&&(r-=i+1===r?2:4);r>i&&(t={type:"atxHeadingText",start:e[i][1].start,end:e[r][1].end},n={type:"chunkText",start:e[i][1].start,end:e[r][1].end,contentType:"text"},Me(e,i,r-i+1,[["enter",t,u],["enter",n,u],["exit",n,u],["exit",t,u]]));return e}};var Pu={name:"setextUnderline",tokenize:function(e,u,t){var n,r=this;return function(u){var o,a=r.events.length;for(;a--;)if("lineEnding"!==r.events[a][1].type&&"linePrefix"!==r.events[a][1].type&&"content"!==r.events[a][1].type){o="paragraph"===r.events[a][1].type;break}if(!r.parser.lazy[r.now().line]&&(r.interrupt||o))return e.enter("setextHeadingLine"),n=u,function(u){return e.enter("setextHeadingLineSequence"),i(u)}(u);return t(u)};function i(u){return u===n?(e.consume(u),i):(e.exit("setextHeadingLineSequence"),Qe(u)?Je(e,o,"lineSuffix")(u):o(u))}function o(n){return null===n||Ye(n)?(e.exit("setextHeadingLine"),u(n)):t(n)}},resolveTo:function(e,u){var t,n,r,i=e.length;for(;i--;)if("enter"===e[i][0]){if("content"===e[i][1].type){t=i;break}"paragraph"===e[i][1].type&&(n=i)}else"content"===e[i][1].type&&e.splice(i,1),r||"definition"!==e[i][1].type||(r=i);var o={type:"setextHeading",start:Object.assign({},e[n][1].start),end:Object.assign({},e[e.length-1][1].end)};e[n][1].type="setextHeadingText",r?(e.splice(n,0,["enter",o,u]),e.splice(r+1,0,["exit",e[t][1],u]),e[t][1].end=Object.assign({},e[r][1].end)):e[t][1]=o;return e.push(["exit",o,u]),e}};var Ou=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Mu=["pre","script","style","textarea"],Iu={name:"htmlFlow",tokenize:function(e,u,t){var n,r,i,o,a,l=this;return function(u){return function(u){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(u),D}(u)};function D(o){return 33===o?(e.consume(o),s):47===o?(e.consume(o),r=!0,d):63===o?(e.consume(o),n=3,l.interrupt?u:I):Re(o)?(e.consume(o),i=String.fromCharCode(o),p):t(o)}function s(r){return 45===r?(e.consume(r),n=2,c):91===r?(e.consume(r),n=5,o=0,f):Re(r)?(e.consume(r),n=4,l.interrupt?u:I):t(r)}function c(n){return 45===n?(e.consume(n),l.interrupt?u:I):t(n)}function f(n){var r="CDATA[";return n===r.charCodeAt(o++)?(e.consume(n),o===r.length?l.interrupt?u:b:f):t(n)}function d(u){return Re(u)?(e.consume(u),i=String.fromCharCode(u),p):t(u)}function p(o){if(null===o||47===o||62===o||Xe(o)){var a=47===o,D=i.toLowerCase();return a||r||!Mu.includes(D)?Ou.includes(i.toLowerCase())?(n=6,a?(e.consume(o),h):l.interrupt?u(o):b(o)):(n=7,l.interrupt&&!l.parser.lazy[l.now().line]?t(o):r?F(o):C(o)):(n=1,l.interrupt?u(o):b(o))}return 45===o||He(o)?(e.consume(o),i+=String.fromCharCode(o),p):t(o)}function h(n){return 62===n?(e.consume(n),l.interrupt?u:b):t(n)}function F(u){return Qe(u)?(e.consume(u),F):B(u)}function C(u){return 47===u?(e.consume(u),B):58===u||95===u||Re(u)?(e.consume(u),E):Qe(u)?(e.consume(u),C):B(u)}function E(u){return 45===u||46===u||58===u||95===u||He(u)?(e.consume(u),E):m(u)}function m(u){return 61===u?(e.consume(u),A):Qe(u)?(e.consume(u),m):C(u)}function A(u){return null===u||60===u||61===u||62===u||96===u?t(u):34===u||39===u?(e.consume(u),a=u,v):Qe(u)?(e.consume(u),A):g(u)}function v(u){return u===a?(e.consume(u),a=null,y):null===u||Ye(u)?t(u):(e.consume(u),v)}function g(u){return null===u||34===u||39===u||47===u||60===u||61===u||62===u||96===u||Xe(u)?m(u):(e.consume(u),g)}function y(e){return 47===e||62===e||Qe(e)?C(e):t(e)}function B(u){return 62===u?(e.consume(u),x):t(u)}function x(u){return null===u||Ye(u)?b(u):Qe(u)?(e.consume(u),x):t(u)}function b(u){return 45===u&&2===n?(e.consume(u),T):60===u&&1===n?(e.consume(u),P):62===u&&4===n?(e.consume(u),N):63===u&&3===n?(e.consume(u),I):93===u&&5===n?(e.consume(u),M):!Ye(u)||6!==n&&7!==n?null===u||Ye(u)?(e.exit("htmlFlowData"),k(u)):(e.consume(u),b):(e.exit("htmlFlowData"),e.check(Nu,_,k)(u))}function k(u){return e.check(_u,w,_)(u)}function w(u){return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),S}function S(u){return null===u||Ye(u)?k(u):(e.enter("htmlFlowData"),b(u))}function T(u){return 45===u?(e.consume(u),I):b(u)}function P(u){return 47===u?(e.consume(u),i="",O):b(u)}function O(u){if(62===u){var t=i.toLowerCase();return Mu.includes(t)?(e.consume(u),N):b(u)}return Re(u)&&i.length<8?(e.consume(u),i+=String.fromCharCode(u),O):b(u)}function M(u){return 93===u?(e.consume(u),I):b(u)}function I(u){return 62===u?(e.consume(u),N):45===u&&2===n?(e.consume(u),I):b(u)}function N(u){return null===u||Ye(u)?(e.exit("htmlFlowData"),_(u)):(e.consume(u),N)}function _(t){return e.exit("htmlFlow"),u(t)}},resolveTo:function(e){var u=e.length;for(;u--&&("enter"!==e[u][0]||"htmlFlow"!==e[u][1].type););u>1&&"linePrefix"===e[u-2][1].type&&(e[u][1].start=e[u-2][1].start,e[u+1][1].start=e[u-2][1].start,e.splice(u-2,2));return e},concrete:!0},Nu={tokenize:function(e,u,t){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),e.attempt(nu,u,t)}},partial:!0},_u={tokenize:function(e,u,t){var n=this;return function(u){if(Ye(u))return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),r;return t(u)};function r(e){return n.parser.lazy[n.now().line]?t(e):u(e)}},partial:!0};var Lu={tokenize:function(e,u,t){var n=this;return function(u){if(null===u)return t(u);return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),r};function r(e){return n.parser.lazy[n.now().line]?t(e):u(e)}},partial:!0},ju={name:"codeFenced",tokenize:function(e,u,t){var n,r=this,i={tokenize:function(e,u,t){var i=0;return o;function o(u){return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),l}function l(u){return e.enter("codeFencedFence"),Qe(u)?Je(e,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u):D(u)}function D(u){return u===n?(e.enter("codeFencedFenceSequence"),s(u)):t(u)}function s(u){return u===n?(i++,e.consume(u),s):i>=a?(e.exit("codeFencedFenceSequence"),Qe(u)?Je(e,c,"whitespace")(u):c(u)):t(u)}function c(n){return null===n||Ye(n)?(e.exit("codeFencedFence"),u(n)):t(n)}},partial:!0},o=0,a=0;return function(u){return function(u){var t=r.events[r.events.length-1];return o=t&&"linePrefix"===t[1].type?t[2].sliceSerialize(t[1],!0).length:0,n=u,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),l(u)}(u)};function l(u){return u===n?(a++,e.consume(u),l):a<3?t(u):(e.exit("codeFencedFenceSequence"),Qe(u)?Je(e,D,"whitespace")(u):D(u))}function D(t){return null===t||Ye(t)?(e.exit("codeFencedFence"),r.interrupt?u(t):e.check(Lu,d,E)(t)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),s(t))}function s(u){return null===u||Ye(u)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),D(u)):Qe(u)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Je(e,c,"whitespace")(u)):96===u&&u===n?t(u):(e.consume(u),s)}function c(u){return null===u||Ye(u)?D(u):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),f(u))}function f(u){return null===u||Ye(u)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),D(u)):96===u&&u===n?t(u):(e.consume(u),f)}function d(u){return e.attempt(i,E,p)(u)}function p(u){return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),h}function h(u){return o>0&&Qe(u)?Je(e,F,"linePrefix",o+1)(u):F(u)}function F(u){return null===u||Ye(u)?e.check(Lu,d,E)(u):(e.enter("codeFlowValue"),C(u))}function C(u){return null===u||Ye(u)?(e.exit("codeFlowValue"),F(u)):(e.consume(u),C)}function E(t){return e.exit("codeFenced"),u(t)}},concrete:!0};var zu=document.createElement("i");function Ru(e){var u="&"+e+";";zu.innerHTML=u;var t=zu.textContent;return(59!==t.charCodeAt(t.length-1)||"semi"===e)&&(t!==u&&t)}var Hu={name:"characterReference",tokenize:function(e,u,t){var n,r,i=this,o=0;return function(u){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(u),e.exit("characterReferenceMarker"),a};function a(u){return 35===u?(e.enter("characterReferenceMarkerNumeric"),e.consume(u),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),n=31,r=He,D(u))}function l(u){return 88===u||120===u?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(u),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),n=6,r=We,D):(e.enter("characterReferenceValue"),n=7,r=qe,D(u))}function D(a){if(59===a&&o){var l=e.exit("characterReferenceValue");return r!==He||Ru(i.sliceSerialize(l))?(e.enter("characterReferenceMarker"),e.consume(a),e.exit("characterReferenceMarker"),e.exit("characterReference"),u):t(a)}return r(a)&&o++1&&e[s][1].end.offset-e[s][1].start.offset>1?2:1;var c=Object.assign({},e[t][1].end),f=Object.assign({},e[s][1].start);$u(c,-a),$u(f,a),i={type:a>1?"strongSequence":"emphasisSequence",start:c,end:Object.assign({},e[t][1].end)},o={type:a>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[s][1].start),end:f},r={type:a>1?"strongText":"emphasisText",start:Object.assign({},e[t][1].end),end:Object.assign({},e[s][1].start)},n={type:a>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},o.end)},e[t][1].end=Object.assign({},i.start),e[s][1].start=Object.assign({},o.end),l=[],e[t][1].end.offset-e[t][1].start.offset&&(l=Ie(l,[["enter",e[t][1],u],["exit",e[t][1],u]])),l=Ie(l,[["enter",n,u],["enter",i,u],["exit",i,u],["enter",r,u]]),l=Ie(l,du(u.parser.constructs.insideSpan.null,e.slice(t+1,s),u)),l=Ie(l,[["exit",r,u],["enter",o,u],["exit",o,u],["exit",n,u]]),e[s][1].end.offset-e[s][1].start.offset?(D=2,l=Ie(l,[["enter",e[s][1],u],["exit",e[s][1],u]])):D=0,Me(e,t-1,s-t+3,l),s=t+l.length-D-2;break}s=-1;for(;++s13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||65535===(65535&t)||65534===(65535&t)||t>1114111?"\ufffd":String.fromCodePoint(t)}var At=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function vt(e,u,t){if(u)return u;if(35===t.charCodeAt(0)){var n=t.charCodeAt(1),r=120===n||88===n;return mt(t.slice(r?2:1),r?16:10)}return Ru(t)||e}var gt={}.hasOwnProperty;function yt(e,u,t){return"string"!==typeof u&&(t=u,u=void 0),function(e){var u={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(ee),autolinkProtocol:x,autolinkEmail:x,atxHeading:i(G),blockQuote:i(W),characterEscape:x,characterReference:x,codeFenced:i(V),codeFencedFenceInfo:o,codeFencedFenceMeta:o,codeIndented:i(V,o),codeText:i(Y,o),codeTextData:x,data:x,codeFlowValue:x,definition:i(X),definitionDestinationString:o,definitionLabelString:o,definitionTitleString:o,emphasis:i(Q),hardBreakEscape:i($),hardBreakTrailing:i($),htmlFlow:i(K,o),htmlFlowData:x,htmlText:i(K,o),htmlTextData:x,image:i(J),label:o,link:i(ee),listItem:i(te),listItemValue:f,listOrdered:i(ue,c),listUnordered:i(ue),paragraph:i(ne),reference:z,referenceString:o,resourceDestinationString:o,resourceTitleString:o,setextHeading:i(G),strong:i(re),thematicBreak:i(ae)},exit:{atxHeading:l(),atxHeadingSequence:v,autolink:l(),autolinkEmail:q,autolinkProtocol:U,blockQuote:l(),characterEscapeValue:b,characterReferenceMarkerHexadecimal:H,characterReferenceMarkerNumeric:H,characterReferenceValue:Z,codeFenced:l(F),codeFencedFence:h,codeFencedFenceInfo:d,codeFencedFenceMeta:p,codeFlowValue:b,codeIndented:l(C),codeText:l(P),codeTextData:b,data:b,definition:l(),definitionDestinationString:A,definitionLabelString:E,definitionTitleString:m,emphasis:l(),hardBreakEscape:l(w),hardBreakTrailing:l(w),htmlFlow:l(S),htmlFlowData:b,htmlText:l(T),htmlTextData:b,image:l(M),label:N,labelText:I,lineEnding:k,link:l(O),listItem:l(),listOrdered:l(),listUnordered:l(),paragraph:l(),referenceString:R,resourceDestinationString:_,resourceTitleString:L,resource:j,setextHeading:l(B),setextHeadingLineSequence:y,setextHeadingText:g,strong:l(),thematicBreak:l()}};xt(u,(e||{}).mdastExtensions||[]);var t={};return n;function n(e){for(var n={type:"root",children:[]},i={stack:[n],tokenStack:[],config:u,enter:a,exit:D,buffer:o,resume:s,data:t},l=[],c=-1;++c0){var d=i.tokenStack[i.tokenStack.length-1];(d[1]||kt).call(i,void 0,d[0])}for(n.position={start:Bt(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:Bt(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},c=-1;++c1&&void 0!==arguments[1]?arguments[1]:{},t=u.json,n=u.lossy,r=[];return jt(!(t||n),!!t,new Map,r)(e),r},Rt="function"===typeof structuredClone?function(e,u){return u&&("json"in u||"lossy"in u)?Ot(zt(e,u)):structuredClone(e)}:function(e,u){return Ot(zt(e,u))};function Ht(e){for(var u=[],t=-1,n=0,r=0;++t55295&&i<57344){var a=e.charCodeAt(t+1);i<56320&&a>56319&&a<57344?(o=String.fromCharCode(i,a),r=1):o="\ufffd"}else o=String.fromCharCode(i);o&&(u.push(e.slice(n,t),encodeURIComponent(o)),n=t+r+1,o=""),r&&(t+=r,r=0)}return u.join("")+e.slice(n)}function Zt(e,u){var t=[{type:"text",value:"\u21a9"}];return u>1&&t.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(u)}]}),t}function Ut(e,u){return"Back to reference "+(e+1)+(u>1?"-"+u:"")}function qt(e,u){if(null==e)return{};var t,n,r=function(e,u){if(null==e)return{};var t,n,r={},i=Object.keys(e);for(n=0;n=0||(r[t]=e[t]);return r}(e,u);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var Wt=function(e){if(null===e||void 0===e)return Xt;if("function"===typeof e)return Yt(e);if("object"===typeof e)return Array.isArray(e)?Vt(e):function(e){var u=e;return Yt(t);function t(t){var n,r=t;for(n in e)if(r[n]!==u[n])return!1;return!0}}(e);if("string"===typeof e)return function(e){return Yt(u);function u(u){return u&&u.type===e}}(e);throw new Error("Expected function, string, or object as test")};function Vt(e){for(var u=[],t=-1;++t":"")+")"})}return c;function c(){var D,s,c,f=Gt;if((!u||i(r,a,l[l.length-1]||void 0))&&(f=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[true,e];return null===e||void 0===e?Gt:[e]}(t(r,l)),false===f[0]))return f;if("children"in r&&r.children){var d=r;if(d.children&&"skip"!==f[0])for(s=(n?d.children.length:-1)+o,c=l.concat(d);s>-1&&s1:u}function un(e){for(var u=String(e),t=/\r?\n|\r/g,n=t.exec(u),r=0,i=[];n;)i.push(tn(u.slice(r,n.index),r>0,!0),n[0]),r=n.index+n[0].length,n=t.exec(u);return i.push(tn(u.slice(r),r>0,!1)),i.join("")}function tn(e,u,t){var n=0,r=e.length;if(u)for(var i=e.codePointAt(n);9===i||32===i;)n++,i=e.codePointAt(n);if(t)for(var o=e.codePointAt(r-1);9===o||32===o;)r--,o=e.codePointAt(r-1);return r>n?e.slice(n,r):""}var nn={blockquote:function(e,u){var t={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(u),!0)};return e.patch(u,t),e.applyData(u,t)},break:function(e,u){var t={type:"element",tagName:"br",properties:{},children:[]};return e.patch(u,t),[e.applyData(u,t),{type:"text",value:"\n"}]},code:function(e,u){var t=u.value?u.value+"\n":"",n={};u.lang&&(n.className=["language-"+u.lang]);var r={type:"element",tagName:"code",properties:n,children:[{type:"text",value:t}]};return u.meta&&(r.data={meta:u.meta}),e.patch(u,r),r={type:"element",tagName:"pre",properties:{},children:[r=e.applyData(u,r)]},e.patch(u,r),r},delete:function(e,u){var t={type:"element",tagName:"del",properties:{},children:e.all(u)};return e.patch(u,t),e.applyData(u,t)},emphasis:function(e,u){var t={type:"element",tagName:"em",properties:{},children:e.all(u)};return e.patch(u,t),e.applyData(u,t)},footnoteReference:function(e,u){var t,n="string"===typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",r=String(u.identifier).toUpperCase(),i=Ht(r.toLowerCase()),o=e.footnoteOrder.indexOf(r),a=e.footnoteCounts.get(r);void 0===a?(a=0,e.footnoteOrder.push(r),t=e.footnoteOrder.length):t=o+1,a+=1,e.footnoteCounts.set(r,a);var l={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(t)}]};e.patch(u,l);var D={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(u,D),e.applyData(u,D)},heading:function(e,u){var t={type:"element",tagName:"h"+u.depth,properties:{},children:e.all(u)};return e.patch(u,t),e.applyData(u,t)},html:function(e,u){if(e.options.allowDangerousHtml){var t={type:"raw",value:u.value};return e.patch(u,t),e.applyData(u,t)}},imageReference:function(e,u){var t=String(u.identifier).toUpperCase(),n=e.definitionById.get(t);if(!n)return Jt(e,u);var r={src:Ht(n.url||""),alt:u.alt};null!==n.title&&void 0!==n.title&&(r.title=n.title);var i={type:"element",tagName:"img",properties:r,children:[]};return e.patch(u,i),e.applyData(u,i)},image:function(e,u){var t={src:Ht(u.url)};null!==u.alt&&void 0!==u.alt&&(t.alt=u.alt),null!==u.title&&void 0!==u.title&&(t.title=u.title);var n={type:"element",tagName:"img",properties:t,children:[]};return e.patch(u,n),e.applyData(u,n)},inlineCode:function(e,u){var t={type:"text",value:u.value.replace(/\r?\n|\r/g," ")};e.patch(u,t);var n={type:"element",tagName:"code",properties:{},children:[t]};return e.patch(u,n),e.applyData(u,n)},linkReference:function(e,u){var t=String(u.identifier).toUpperCase(),n=e.definitionById.get(t);if(!n)return Jt(e,u);var r={href:Ht(n.url||"")};null!==n.title&&void 0!==n.title&&(r.title=n.title);var i={type:"element",tagName:"a",properties:r,children:e.all(u)};return e.patch(u,i),e.applyData(u,i)},link:function(e,u){var t={href:Ht(u.url)};null!==u.title&&void 0!==u.title&&(t.title=u.title);var n={type:"element",tagName:"a",properties:t,children:e.all(u)};return e.patch(u,n),e.applyData(u,n)},listItem:function(e,u,t){var n=e.all(u),r=t?function(e){var u=!1;if("list"===e.type){u=e.spread||!1;for(var t=e.children,n=-1;!u&&++n0&&l.children.unshift({type:"text",value:" "}),l.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:u.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}for(var s=-1;++s0){var o={type:"element",tagName:"tbody",properties:{},children:e.wrap(t,!0)},a=ne(u.children[1]),l=te(u.children[u.children.length-1]);a&&l&&(o.position={start:a,end:l}),r.push(o)}var D={type:"element",tagName:"table",properties:{},children:e.wrap(r,!0)};return e.patch(u,D),e.applyData(u,D)},tableCell:function(e,u){var t={type:"element",tagName:"td",properties:{},children:e.all(u)};return e.patch(u,t),e.applyData(u,t)},tableRow:function(e,u,t){for(var n=t?t.children:void 0,r=0===(n?n.indexOf(u):1)?"th":"td",i=t&&"table"===t.type?t.align:void 0,o=i?i.length:u.children.length,a=-1,l=[];++a0&&t.push({type:"text",value:"\n"}),t}function dn(e){for(var u=0,t=e.charCodeAt(u);9===t||32===t;)u++,t=e.charCodeAt(u);return e.slice(u)}function pn(e,u){var t=function(e,u){var t=u||ln,n=new Map,r=new Map,o=new Map,l=(0,a.Z)((0,a.Z)({},nn),t.handlers),D={all:function(e){var u=[];if("children"in e)for(var t=e.children,n=-1;++n0&&h.push({type:"text",value:" "});var C="string"===typeof t?t:t(D,p);"string"===typeof C&&(C={type:"text",value:C}),h.push({type:"element",tagName:"a",properties:{href:"#"+u+"fnref-"+d+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:"string"===typeof n?n:n(D,p),className:["data-footnote-backref"]},children:Array.isArray(C)?C:[C]})}var E=c[c.length-1];if(E&&"element"===E.type&&"p"===E.tagName){var m,A=E.children[E.children.length-1];A&&"text"===A.type?A.value+=" ":E.children.push({type:"text",value:" "}),(m=E.children).push.apply(m,h)}else c.push.apply(c,h);var v={type:"element",tagName:"li",properties:{id:u+"fn-"+d},children:e.wrap(c,!0)};e.patch(s,v),l.push(v)}}if(0!==l.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:(0,a.Z)((0,a.Z)({},Rt(o)),{},{id:"footnote-label"}),children:[{type:"text",value:r}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:"\n"}]}}(t),o=Array.isArray(n)?{type:"root",children:n}:n||{type:"root",children:[]};return r&&o.children.push({type:"text",value:"\n"},r),o}function hn(e,u){return e&&"run"in e?function(){var t=(0,St.Z)(Tt.mark((function t(n,r){var i;return Tt.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=pn(n,(0,a.Z)({file:r},u)),t.next=3,e.run(i,r);case 3:case"end":return t.stop()}}),t)})));return function(e,u){return t.apply(this,arguments)}}():function(t,n){return pn(t,(0,a.Z)({file:n},u||e))}}var Fn=t(4506);function Cn(e){if(e)throw e}var En=t(1132);function mn(e){if("object"!==typeof e||null===e)return!1;var u=Object.getPrototypeOf(e);return(null===u||u===Object.prototype||null===Object.getPrototypeOf(u))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function An(e,u){var t;return function(){for(var u=arguments.length,i=new Array(u),o=0;oi.length;l&&i.push(n);try{a=e.apply(this,i)}catch(s){var D=s;if(l&&t)throw D;return n(D)}l||(a&&a.then&&"function"===typeof a.then?a.then(r,n):a instanceof Error?n(a):r(a))};function n(e){if(!t){t=!0;for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;ie.length){for(;i--;)if(47===e.codePointAt(i)){if(t){n=i+1;break}}else r<0&&(t=!0,r=i+1);return r<0?"":e.slice(n,r)}if(u===e)return"";var o=-1,a=u.length-1;for(;i--;)if(47===e.codePointAt(i)){if(t){n=i+1;break}}else o<0&&(t=!0,o=i+1),a>-1&&(e.codePointAt(i)===u.codePointAt(a--)?a<0&&(r=i):(a=-1,r=o));n===r?r=o:r<0&&(r=e.length);return e.slice(n,r)},dirname:function(e){if(yn(e),0===e.length)return".";var u,t=-1,n=e.length;for(;--n;)if(47===e.codePointAt(n)){if(u){t=n;break}}else u||(u=!0);return t<0?47===e.codePointAt(0)?"/":".":1===t&&47===e.codePointAt(0)?"//":e.slice(0,t)},extname:function(e){yn(e);var u,t=e.length,n=-1,r=0,i=-1,o=0;for(;t--;){var a=e.codePointAt(t);if(47!==a)n<0&&(u=!0,n=t+1),46===a?i<0?i=t:1!==o&&(o=1):i>-1&&(o=-1);else if(u){r=t+1;break}}if(i<0||n<0||0===o||1===o&&i===n-1&&i===r+1)return"";return e.slice(i,n)},join:function(){for(var e,u=-1,t=arguments.length,n=new Array(t),r=0;r2){if((n=r.lastIndexOf("/"))!==r.length-1){n<0?(r="",i=0):i=(r=r.slice(0,n)).length-1-r.lastIndexOf("/"),o=l,a=0;continue}}else if(r.length>0){r="",i=0,o=l,a=0;continue}u&&(r=r.length>0?r+"/..":"..",i=2)}else r.length>0?r+="/"+e.slice(o+1,l):r=e.slice(o+1,l),i=l-o-1;o=l,a=0}else 46===t&&a>-1?a++:a=-1}return r}(e,!u);return 0!==t.length||u||(t="."),t.length>0&&47===e.codePointAt(e.length-1)&&(t+="/"),u?"/"+t:t}function yn(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var Bn={cwd:function(){return"/"}};function xn(e){return Boolean(null!==e&&"object"===typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}function bn(e){if("string"===typeof e)e=new URL(e);else if(!xn(e)){var u=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw u.code="ERR_INVALID_ARG_TYPE",u}if("file:"!==e.protocol){var t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return function(e){if(""!==e.hostname){var u=new TypeError('File URL host must be "localhost" or empty on darwin');throw u.code="ERR_INVALID_FILE_URL_HOST",u}var t=e.pathname,n=-1;for(;++n1?l-1:0),s=1;s1?n-1:0),o=1;o0){var o=(0,Fn.Z)(t),a=o[0],l=o.slice(1),D=u[r][1];mn(D)&&mn(a)&&(a=En(!0,D,a)),u[r]=[e,a].concat((0,i.Z)(l))}}}}]),t}(On),Nn=(new In).freeze();function _n(e,u){if("function"!==typeof u)throw new TypeError("Cannot `"+e+"` without `parser`")}function Ln(e,u){if("function"!==typeof u)throw new TypeError("Cannot `"+e+"` without `compiler`")}function jn(e,u){if(u)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function zn(e){if(!mn(e)||"string"!==typeof e.type)throw new TypeError("Expected node, got `"+e+"`")}function Rn(e,u,t){if(!t)throw new Error("`"+e+"` finished async. Use `"+u+"` instead")}function Hn(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"messages"in e)}(e)?e:new wn(e)}var Zn=[],Un={allowDangerousHtml:!0},qn=/^(https?|ircs?|mailto|xmpp)$/i,Wn=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Vn(e){var u=e.allowedElements,t=e.allowElement,n=e.children||"",r=e.className,l=e.components,D=e.disallowedElements,s=e.rehypePlugins||Zn,c=e.remarkPlugins||Zn,f=e.remarkRehypeOptions?(0,a.Z)((0,a.Z)({},e.remarkRehypeOptions),Un):Un,d=e.skipHtml,p=e.unwrapDisallowed,h=e.urlTransform||Yn,F=Nn().use(wt).use(c).use(hn,f).use(s),C=new wn;"string"===typeof n&&(C.value=n);var E,m=(0,o.Z)(Wn);try{for(m.s();!(E=m.n()).done;){var A=E.value;Object.hasOwn(e,A.from)&&(A.from,A.to&&A.to,A.id)}}catch(y){m.e(y)}finally{m.f()}var v=F.parse(C),g=F.runSync(v,C);return r&&(g={type:"element",tagName:"div",properties:{className:r},children:"root"===g.type?g.children:[g]}),Kt(g,(function(e,n,r){if("raw"===e.type&&r&&"number"===typeof n)return d?r.children.splice(n,1):r.children[n]={type:"text",value:e.value},n;var o;if("element"===e.type)for(o in we)if(Object.hasOwn(we,o)&&Object.hasOwn(e.properties,o)){var a=e.properties[o],l=we[o];(null===l||l.includes(e.tagName))&&(e.properties[o]=h(String(a||""),o,e))}if("element"===e.type){var s=u?!u.includes(e.tagName):!!D&&D.includes(e.tagName);if(!s&&t&&"number"===typeof n&&(s=!t(e,n,r)),s&&r&&"number"===typeof n){var c;if(p&&e.children)(c=r.children).splice.apply(c,[n,1].concat((0,i.Z)(e.children)));else r.children.splice(n,1);return n}}})),Ce(g,{Fragment:Se.Fragment,components:l,ignoreInvalidStyle:!0,jsx:Se.jsx,jsxs:Se.jsxs,passKeys:!0,passNode:!0})}function Yn(e){var u=e.indexOf(":"),t=e.indexOf("?"),n=e.indexOf("#"),r=e.indexOf("/");return u<0||r>-1&&u>r||t>-1&&u>t||n>-1&&u>n||qn.test(e.slice(0,u))?e:""}}}]); -//# sourceMappingURL=486.f7e54b4c.chunk.js.map \ No newline at end of file diff --git a/static/js/486.f7e54b4c.chunk.js.map b/static/js/486.f7e54b4c.chunk.js.map deleted file mode 100644 index fff4bfa..0000000 --- a/static/js/486.f7e54b4c.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/486.f7e54b4c.chunk.js","mappings":"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GACTu1B,GAEFE,EAAYz1B,EACrB,CAyBA,SAASw1B,EAA4Bx1B,GACnC,OAAa,KAATA,GACF4pB,EAAQK,QAAQjqB,GACTy1B,GAII,KAATz1B,GAAwB,KAATA,GAAe4oB,GAAW5oB,IAC3C4pB,EAAQK,QAAQjqB,GACT01B,GAELpM,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACTw1B,GAEFC,EAAYz1B,EACrB,CAgBA,SAAS01B,EAAsB11B,GAE7B,OACW,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACA8oB,GAAkB9oB,IAElB4pB,EAAQK,QAAQjqB,GACT01B,GAEFC,EAA2B31B,EACpC,CAeA,SAAS21B,EAA2B31B,GAClC,OAAa,KAATA,GACF4pB,EAAQK,QAAQjqB,GACT41B,GAELtM,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACT21B,GAEFH,EAA4Bx1B,EACrC,CAeA,SAAS41B,EAA6B51B,GACpC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,EAEOysB,EAAIzsB,GAEA,KAATA,GAAwB,KAATA,GACjB4pB,EAAQK,QAAQjqB,GAChB+0B,EAAU/0B,EACH61B,GAELvM,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACT41B,GAEFE,EAA+B91B,EACxC,CAcA,SAAS61B,EAA6B71B,GACpC,OAAIA,IAAS+0B,GACXnL,EAAQK,QAAQjqB,GAChB+0B,EAAU,KACHgB,GAEI,OAAT/1B,GAAiBopB,GAAmBppB,GAC/BysB,EAAIzsB,IAEb4pB,EAAQK,QAAQjqB,GACT61B,EACT,CAYA,SAASC,EAA+B91B,GACtC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACAqpB,GAA0BrpB,GAEnB21B,EAA2B31B,IAEpC4pB,EAAQK,QAAQjqB,GACT81B,EACT,CAaA,SAASC,EAAkC/1B,GACzC,OAAa,KAATA,GAAwB,KAATA,GAAespB,GAActpB,GACvCw1B,EAA4Bx1B,GAE9BysB,EAAIz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SAASu7B,EAAgBv7B,GACvB,OAAIopB,GAAmBppB,IACrBowB,EAAcmL,EACPN,EAAiBj7B,IAEtBspB,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACTu7B,GAEFp9C,EAAI6hB,EACb,CAYA,SAAS86B,EAAQ96B,GAEf,OAAa,KAATA,GAAe8oB,GAAkB9oB,IACnC4pB,EAAQK,QAAQjqB,GACT86B,GAEI,KAAT96B,GAAwB,KAATA,GAAeqpB,GAA0BrpB,GACnDw7B,EAAex7B,GAEjBysB,EAAIzsB,EACb,CAYA,SAASw7B,EAAex7B,GACtB,OAAa,KAATA,GACF4pB,EAAQK,QAAQjqB,GACT7hB,GAII,KAAT6hB,GAAwB,KAATA,GAAe4oB,GAAW5oB,IAC3C4pB,EAAQK,QAAQjqB,GACTy7B,GAELrS,GAAmBppB,IACrBowB,EAAcoL,EACPP,EAAiBj7B,IAEtBspB,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACTw7B,GAEFr9C,EAAI6hB,EACb,CAYA,SAASy7B,EAAqBz7B,GAE5B,OACW,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACA8oB,GAAkB9oB,IAElB4pB,EAAQK,QAAQjqB,GACTy7B,GAEFC,EAA0B17B,EACnC,CAaA,SAAS07B,EAA0B17B,GACjC,OAAa,KAATA,GACF4pB,EAAQK,QAAQjqB,GACT27B,GAELvS,GAAmBppB,IACrBowB,EAAcsL,EACPT,EAAiBj7B,IAEtBspB,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACT07B,GAEFF,EAAex7B,EACxB,CAaA,SAAS27B,EAA4B37B,GACnC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,EAEOysB,EAAIzsB,GAEA,KAATA,GAAwB,KAATA,GACjB4pB,EAAQK,QAAQjqB,GAChBoxB,EAASpxB,EACF47B,GAELxS,GAAmBppB,IACrBowB,EAAcuL,EACPV,EAAiBj7B,IAEtBspB,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACT27B,IAET/R,EAAQK,QAAQjqB,GACT67B,EACT,CAYA,SAASD,EAA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","sources":["../node_modules/domelementtype/lib/index.js","../node_modules/extend/index.js","../node_modules/html-dom-parser/src/client/constants.ts","../node_modules/html-dom-parser/src/client/domparser.ts","../node_modules/html-dom-parser/src/client/html-to-dom.ts","../node_modules/html-dom-parser/src/client/utilities.ts","../node_modules/html-dom-parser/node_modules/domhandler/lib/index.js","../node_modules/html-dom-parser/node_modules/domhandler/lib/node.js","../node_modules/html-react-parser/src/attributes-to-props.ts","../node_modules/html-react-parser/src/dom-to-react.ts","../node_modules/html-react-parser/src/index.ts","../node_modules/html-react-parser/src/utilities.ts","../node_modules/html-react-parser/node_modules/domhandler/lib/index.js","../node_modules/html-react-parser/node_modules/domhandler/lib/node.js","../node_modules/inline-style-parser/index.js","../node_modules/react-property/lib/index.js","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/style-to-js/src/index.ts","../node_modules/style-to-js/src/utilities.ts","../node_modules/style-to-object/src/index.ts","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../node_modules/date-fns/locale/en-US/_lib/localize.mjs","../node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../node_modules/date-fns/locale/en-US/_lib/match.mjs","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../node_modules/date-fns/locale/en-US.mjs","../node_modules/date-fns/_lib/defaultOptions.mjs","../node_modules/date-fns/constants.mjs","../node_modules/date-fns/toDate.mjs","../node_modules/date-fns/startOfDay.mjs","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../node_modules/date-fns/differenceInCalendarDays.mjs","../node_modules/date-fns/constructFrom.mjs","../node_modules/date-fns/startOfYear.mjs","../node_modules/date-fns/getDayOfYear.mjs","../node_modules/date-fns/startOfWeek.mjs","../node_modules/date-fns/startOfISOWeek.mjs","../node_modules/date-fns/getISOWeekYear.mjs","../node_modules/date-fns/startOfISOWeekYear.mjs","../node_modules/date-fns/getISOWeek.mjs","../node_modules/date-fns/getWeekYear.mjs","../node_modules/date-fns/startOfWeekYear.mjs","../node_modules/date-fns/getWeek.mjs","../node_modules/date-fns/_lib/addLeadingZeros.mjs","../node_modules/date-fns/_lib/format/lightFormatters.mjs","../node_modules/date-fns/_lib/format/formatters.mjs","../node_modules/date-fns/_lib/format/longFormatters.mjs","../node_modules/date-fns/_lib/protectedTokens.mjs","../node_modules/date-fns/isDate.mjs","../node_modules/date-fns/isValid.mjs","../node_modules/date-fns/format.mjs","../node_modules/html-react-parser/esm/index.mjs","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/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/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/style-to-object/esm/index.mjs","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/html-url-attributes/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-util-combine-extensions/index.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-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/parse.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/remark-parse/lib/index.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.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-reference.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/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.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/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/lib/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/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/react-markdown/lib/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\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 return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\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 infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\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').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\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\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\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 effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\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 effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\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 inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\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 return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\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').Event} Event\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').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\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/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\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 return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\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 }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\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 if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\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 ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\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 )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\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 return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\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 after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(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 return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(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 /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(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 return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\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\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\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 return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\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 */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * 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**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\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').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // 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 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\n\n // Now walk back to find an opener.\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 &&\n // 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 }\n\n // Number of markers to use from the sequence.\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 = []\n\n // If there are more markers in the opening, add them before.\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 }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\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 splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\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\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\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/**\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 {undefined}\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').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\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\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\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 if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\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\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\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 return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\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 if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\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 if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\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 return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\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\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\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').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\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').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\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\n\n // And we have data.\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 }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\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 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 enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\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\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\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 between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\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\n/** @satisfies {Extension['document']} */\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\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\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\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\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\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\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 {string, text} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\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 /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n value =\n buffer +\n (typeof value === 'string'\n ? value.toString()\n : new TextDecoder(encoding || undefined).decode(value))\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\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 if (!match) {\n buffer = value.slice(startPosition)\n break\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 if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\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 * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\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/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\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 return decodeNamedCharacterReference($2) || $0\n}\n","/**\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').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\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 {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 *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | null | undefined | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {undefined | void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} 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: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse, postprocess, preprocess} from 'micromark'\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/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\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 configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\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 index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\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 // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\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\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\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 let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n switch (event[1].type) {\n case 'listUnordered':\n case 'listOrdered':\n case 'blockQuote': {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n break\n }\n case 'lineEndingBlank': {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n break\n }\n case 'linePrefix':\n case 'listItemValue':\n case 'listItemMarker':\n case 'listItemPrefix':\n case 'listItemPrefixWhitespace': {\n // Empty.\n\n break\n }\n default: {\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 while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\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 if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\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 }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n listItem = item\n events.splice(index, 0, ['enter', item, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {undefined}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {undefined}\n * Nothing.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n /** @type {Array} */\n const siblings = parent.children\n siblings.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n }\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {undefined}\n * Nothing.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\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 node.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n this.data.expectingFirstListItemValue = undefined\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return\n this.buffer()\n this.data.flowCodeInside = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n this.data.flowCodeInside = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n /** @type {Array} */\n const siblings = node.children\n let tail = siblings[siblings.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n }\n siblings.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\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\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n this.data.atHardBreak = undefined\n return\n }\n if (\n !this.data.setextHeadingSlurpLineEnding &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n this.data.inReference = true\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n this.data.referenceType = 'full'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = this.data.characterReferenceType\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n this.data.characterReferenceType = undefined\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'transforms': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'enter':\n case 'exit': {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n break\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\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 */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...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: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type)\n return as([type, [...value]], value);\n \n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\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`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * 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]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\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 | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // 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) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const def = state.footnoteById.get(state.footnoteOrder[referenceIndex])\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\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: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (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 return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => 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 if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\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 * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\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 * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\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 } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\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] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, 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\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\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 === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, 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 [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\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({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[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 children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\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 {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 {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\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 undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > 👉 **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\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 = trimMarkdownSpaceStart(head.value)\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}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// \n\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} ToHastOptions\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(options || destination)})\n )\n }\n}\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","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * 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` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\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 && result.then && typeof result.then === 'function') {\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 *\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","// 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 * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\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.codePointAt(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.codePointAt(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.codePointAt(index) === ext.codePointAt(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 * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\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.codePointAt(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.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\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.codePointAt(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 * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\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 * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(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.codePointAt(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 * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\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.codePointAt(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.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(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 * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\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 * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\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 * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\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.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(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","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {Record & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {path} from 'vfile/do-not-use-conditional-minpath'\nimport {proc} from 'vfile/do-not-use-conditional-minproc'\nimport {urlToPath, isUrl} from 'vfile/do-not-use-conditional-minurl'\n\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.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\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 * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\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 * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\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 (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\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)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\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 *\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 * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\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 parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\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 *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\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 *\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 * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(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 full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\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 *\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 *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\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 stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\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 *\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 * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\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 // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\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 * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\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 * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\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 * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const func = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return func.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n const names = Object.getOwnPropertyNames(func)\n\n for (const p of names) {\n const descriptor = Object.getOwnPropertyDescriptor(func, p)\n if (descriptor) Object.defineProperty(apply, p, descriptor)\n }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@link CompileResultMap `CompileResultMap`}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@link Node `Node`}\n * and {@link VFile `VFile`} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@link VFile `VFile`} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@link Node `Node`}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > 👉 **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > 👉 **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@link VFile `VFile`} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@link VFile `VFile`}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@link Processor `Processor`}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > 👉 **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > 👉 **Note**: to register custom data in TypeScript, augment the\n * > {@link Data `Data`} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > 👉 **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > 👉 **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > 👉 **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > 👉 **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > 👉 **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\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 return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\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, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\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 {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\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 {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\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 {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [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 Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","// Register `Raw` in tree:\n/// \n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial} Components\n * Map tag names to components.\n *\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n *\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\n// @ts-expect-error: untyped.\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * @param {Readonly} options\n * Props.\n * @returns {JSX.Element}\n * React element.\n */\nexport function Markdown(options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const children = options.children || ''\n const className = options.className\n const components = options.components\n const disallowedElements = options.disallowedElements\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n const mdastTree = processor.parse(file)\n /** @type {Nodes} */\n let hastTree = processor.runSync(mdastTree, file)\n\n // Wrap in `div` if there’s a class name.\n if (className) {\n hastTree = {\n type: 'element',\n tagName: 'div',\n properties: {className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n hastTree.type === 'root' ? hastTree.children : [hastTree]\n )\n }\n }\n\n visit(hastTree, transform)\n\n return toJsxRuntime(hastTree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {Visitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\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 ||\n // 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) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n"],"names":["ElementType","Object","defineProperty","exports","value","Doctype","CDATA","Tag","Style","Script","Comment","Directive","Text","Root","isTag","elem","type","hasOwn","prototype","hasOwnProperty","toStr","toString","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","call","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","options","name","enumerable","configurable","newValue","writable","getProperty","module","extend","src","copy","copyIsArray","clone","arguments","i","length","deep","reduce","accumulator","tagName","toLowerCase","HTML","HEAD","BODY","FIRST_TAG_REGEX","HEAD_TAG_REGEX","BODY_TAG_REGEX","parseFromDocument","html","Error","parseFromString","DOMParser","window","domParser_1","document","implementation","htmlDocument_1","createHTMLDocument","element","documentElement","querySelector","innerHTML","parseFromTemplate","template","createElement","content","childNodes","match","firstTagName","doc","test","parentNode","removeChild","querySelectorAll","elements","DIRECTIVE_REGEX","TypeError","directive","undefined","formatDOM","formatAttributes","attributes","map","index","attributesLength","attribute","formatTagName","caseSensitiveTagName","constants_1","getCaseSensitiveTagName","nodes","parent","current","domNodes","nodesLength","node","nodeType","nodeName","domhandler_1","children","nodeValue","prev","next","push","substring","indexOf","unshift","__createBinding","this","create","o","m","k","k2","desc","__esModule","get","__exportStar","p","DomHandler","domelementtype_1","require","node_js_1","defaultOpts","withStartIndices","withEndIndices","xmlMode","callback","elementCB","dom","root","Document","done","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onerror","error","onclosetag","pop","endIndex","onopentag","attribs","Element","addNode","ontext","data","oncomment","oncommentend","oncdatastart","text","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","__extends","extendStatics","d","b","setPrototypeOf","__proto__","String","__","__assign","assign","t","s","n","apply","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","Node","set","recursive","_super","_this","_a","keys","_b","namespace","prefix","result","cloneChildren","clone_1","forEach","child","clone_2","clone_3","concat","instruction","sourceCodeLocation","childs","UNCONTROLLED_COMPONENT_ATTRIBUTES","UNCONTROLLED_COMPONENT_NAMES","valueOnlyInputs","reset","submit","getPropName","attributeName","react_property_1","props","isInputValueOnly","Boolean","attributeValue","isCustomAttribute","attributeNameLowerCased","propName","propertyInfo","getPropertyInfo","includes","utilities_1","setStyleProp","style","React","cloneElement","isValidElement","skipAttributesToProps","isCustomComponent","domToReact","reactElements","hasReplace","replace","transform","library","replaceElement","dangerouslySetInnerHTML","__html","defaultValue","isWhitespace","trim","canTextBeChildOfNode","html_dom_parser_1","attributes_to_props_1","dom_to_react_1","domParserOptions","lowerCaseAttributeNames","htmlparser2","RESERVED_SVG_MATHML_ELEMENTS","Set","has","is","styleOptions","reactCompat","Number","react_1","split","arg","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","str","lineno","column","updatePosition","lines","lastIndexOf","position","start","line","Position","whitespace","end","source","errorsList","msg","err","reason","filename","silent","re","exec","slice","comments","rules","c","comment","pos","charAt","declaration","prop","val","ret","property","decl","decls","declarations","_slicedToArray","PropertyInfoRecord","mustUseProperty","attributeNamespace","sanitizeURL","removeEmptyString","acceptsBooleans","propertyName","properties","_ref","_ref2","CAMELIZE","capitalize","token","toUpperCase","_require","CAMELCASE","SAME","possibleStandardNamesOptimized","possibleStandardNames","RegExp","bind","standardName","BOOLEAN","BOOLEANISH_STRING","NUMERIC","OVERLOADED_BOOLEAN","POSITIVE_NUMERIC","RESERVED","STRING","accept","acceptCharset","accessKey","action","allowFullScreen","alt","as","async","autoCapitalize","autoComplete","autoCorrect","autoFocus","autoPlay","autoSave","capture","cellPadding","cellSpacing","challenge","charSet","checked","cite","class","classID","className","cols","colSpan","contentEditable","contextMenu","controls","controlsList","coords","crossOrigin","dateTime","default","defaultChecked","defer","dir","disabled","disablePictureInPicture","disableRemotePlayback","download","draggable","encType","enterKeyHint","for","form","formMethod","formAction","formEncType","formNoValidate","formTarget","frameBorder","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","icon","id","inputMode","integrity","itemID","itemProp","itemRef","itemScope","itemType","keyParams","keyType","kind","label","lang","list","loop","low","manifest","marginWidth","marginHeight","max","maxLength","media","mediaGroup","method","min","minLength","multiple","muted","noModule","nonce","noValidate","open","optimum","pattern","placeholder","playsInline","poster","preload","profile","radioGroup","readOnly","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","srcDoc","srcLang","srcSet","step","summary","tabIndex","title","useMap","width","wmode","wrap","about","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","datatype","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodOpacity","floodColor","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in2","in","inlist","intercept","k1","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","resource","restart","results","rotate","rx","ry","scale","security","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeWidth","strokeOpacity","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","typeof","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","unselectable","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewBox","viewTarget","visibility","vMathematical","vocab","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","output","camelCase","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","character","trimHyphen","skipCamelCase","iterator","styleObject","hasIterator","len","arr2","l","Symbol","e","u","a","f","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","minLen","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","defaultWidth","formats","formatLong","date","full","long","medium","short","time","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","context","formattingValues","defaultFormattingWidth","argumentCallback","localize","ordinalNumber","dirtyNumber","_options","number","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","findKey","valueCallback","rest","object","predicate","array","parsePattern","parseInt","parseResult","any","enUS","code","formatDistance","count","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","weekStartsOn","firstWeekContainsDate","defaultOptions","getDefaultOptions","Math","pow","millisecondsInWeek","toDate","argument","argStr","Date","NaN","startOfDay","setHours","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","differenceInCalendarDays","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","round","constructFrom","startOfYear","cleanDate","setFullYear","getDayOfYear","startOfWeek","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","locale","getDay","diff","setDate","startOfISOWeek","getISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","startOfISOWeekYear","fourthOfJanuary","getISOWeek","getWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","abs","padStart","lightFormatters","signedYear","numberOfDigits","milliseconds","trunc","dayPeriodEnum","formatters","G","unit","Y","signedWeekYear","weekYear","R","Q","ceil","q","M","L","w","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","hours","B","h","H","K","S","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","O","formatTimezoneShort","T","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","P","dateTimeFormat","datePattern","timePattern","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isDate","isValid","isNaN","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","defaultLocale","originalDate","RangeError","parts","firstCharacter","longFormatter","join","isToken","cleanEscapedString","preprocessor","formatterOptions","part","useAdditionalWeekYearTokens","isProtectedWeekYearToken","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","input","_message","subject","message","console","warn","warnOrThrowProtectedError","formatter","matched","HTMLReactParser","nameRe","nameReJsx","emptyOptions","jsx","empty","Schema","_createClass","normal","space","_classCallCheck","merge","definitions","normalize","Info","boolean","booleanish","overloadedBoolean","commaSeparated","spaceSeparated","commaOrSpaceSeparated","defined","powers","increment","checks","types","DefinedInfo","_Info","_inherits","_createSuper","mark","_assertThisInitialized","check","own","definition","info","xlink","_","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","caseSensitiveTransform","caseInsensitiveTransform","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","acceptcharset","classname","htmlfor","httpequiv","abbr","allow","allowPaymentRequest","allowUserMedia","blocking","decoding","dirName","fetchPriority","imageSizes","imageSrcSet","inert","isMap","itemId","language","loading","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","ping","popover","popoverTarget","popoverTargetAction","shadowRootDelegatesFocus","shadowRootMode","slot","translate","typeMustMatch","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","char","charOff","classId","clear","codeBase","codeType","compact","declare","event","face","frame","hSpace","leftMargin","link","longDesc","lowSrc","noResize","noHref","noShade","noWrap","prompt","rev","rightMargin","scheme","standby","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","svg","dataType","horizOriginY","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","transformOrigin","typeOf","playbackOrder","timelineBegin","bandwidth","defaultAction","editable","focusHighlight","fr","handler","hatchContentUnits","hatchUnits","initialVisibility","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","observer","overlay","path","phase","pitch","propagate","requiredFonts","requiredFormats","side","snapshotTime","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","transformBehavior","htmlBase","svgBase","valid","dash","cap","kebab","$0","camelcase","hastToReact","StyleToObject","pointEnd","point","pointStart","stringifyPosition","VFileMessage","_Error","causeOrReason","optionsOrParentOrPlace","legacyCause","place","ancestors","_objectSpread","cause","ruleId","fatal","file","stack","actual","expected","note","url","_wrapNativeSuper","emptyMap","Map","dashSomething","tableElements","tableCellElement","docs","toJsxRuntime","tree","Fragment","filePath","development","jsxDEV","isStaticChildren","columnNumber","fileName","lineNumber","developmentCreate","jsxs","fn","productionCreate","state","components","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","schema","stylePropertyNameCase","tableCellAlignToStyle","parentSchema","findComponentFromName","alignValue","createProperty","_result","createElementProps","createChildren","thing","addChildren","estree","expression","body","evaluateExpression","crashEstree","mdxExpression","_step","_iterator","_createForOfIteratorHelper","objectExpression","createJsxElementProps","mdxJsxElement","evaluateProgram","mdxEsm","countsByName","Type","dashes","find","settings","_toConsumableArray","padRight","padLeft","commas","styleToObject","replacer","toCamel","parseStyle","domCasing","cssCasing","transformStyleToCssCasing","transformStylesToCssCasing","allowExpression","identifiers","isIdentifierName","computed","optional","toDash","$1","urlAttributes","includeImageAlt","includeHtml","all","splice","remove","items","parameters","chunkStart","subtokenize","events","lineIndex","otherIndex","otherEvent","subevents","more","jumps","_tokenizer","_isInFirstContentOfListItem","contentType","subcontent","_container","eventIndex","stream","previous","startPosition","startPositions","tokenizer","childEvents","gaps","adjust","breaks","sliceStream","defineSkip","_gfmTasklistFirstContentOfListItem","write","syntaxExtension","extension","hook","left","right","constructs","existing","before","add","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","fromCharCode","factorySpace","effects","ok","limit","POSITIVE_INFINITY","enter","consume","exit","tokenize","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","self","continued","item","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","lazy","now","containerContinue","flow","flowContinue","writeToChild","eof","seen","entry","nok","disable","null","blankLine","after","partial","chunkInside","contentEnd","continuationConstruct","contentContinue","resolve","prefixed","tail","sliceSerialize","initial","flowInitial","afterConstruct","resolver","resolveAll","createResolver","initializeFactory","field","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","bufferIndex","tabs","chunk","charCodeAt","_index","_bufferIndex","called","createTokenizer","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","fields","constructFactory","construct","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","view","startBufferIndex","endBufferIndex","head","shift","sliceChunks","_point","chunkIndex","go","restore","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","def","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","resolveTo","thematicBreak","marker","sequence","initialSize","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","escape","factoryWhitespace","normalizeIdentifier","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","paragraph","heading","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","buffer","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","nonLazyContinuation","codeFenced","closeStart","startBefore","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","meta","contentBefore","beforeContentChunk","contentChunk","decodeNamedCharacterReference","characterReference","textContent","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","close","group","insideSpan","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","closingSequence","use","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelStartLink","hardBreakEscape","codeText","between","tailExitIndex","headEnterIndex","_document","_defineProperty","_flowInitial","_flow","_string","_text","resolveText","parse","extensions","combineExtensions","defaultConstructs","search","decodeNumericCharacterReference","base","fromCodePoint","characterEscapeOrReference","decode","$2","hex","fromMarkdown","encoding","config","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","image","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","reference","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","configure","mdastExtensions","compile","tokenStack","resume","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","expectingFirstListItemValue","flowCodeInside","depth","setextHeadingSlurpLineEnding","codePointAt","siblings","atHardBreak","inReference","referenceType","ancestor","decodeString","fragment","characterReferenceType","ordered","spread","compiler","postprocess","atCarriageReturn","endPosition","TextDecoder","lastIndex","preprocess","combined","_combined$key","_combined$key2","remarkParse","env","globalThis","deserialize","serialized","$","out","unpair","_$index","_step2","_iterator2","_step2$value","flags","_step3","_iterator3","_step3$value","_step4","_iterator4","BigInt","deserializer","EMPTY","asString","shouldSkip","TYPE","serializer","strict","json","pair","_typeOf","_typeOf2","valueOf","toJSON","entries","toISOString","serialize","lossy","structuredClone","normalizeUri","skip","encodeURIComponent","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","convert","castFactory","anyFactory","checkAsRecord","nodeAsRecord","propsFactory","typeFactory","tests","_len","_key","testFunction","looksLikeANode","visitParents","visitor","reverse","factory","parents","visit","subresult","grandparents","toResult","nodeAsParent","testOrVisitor","visitorOrReverse","maybeReverse","revert","subtype","suffix","contents","listItemLoose","trimLines","last","trimLine","handlers","blockquote","patch","applyData","break","delete","footnoteReference","counter","clobberPrefix","safeId","footnoteOrder","reuseCounter","footnoteCounts","dataFootnoteRef","sup","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","loose","listLoose","table","firstRow","tableContent","tableCell","tableRow","cellIndex","cells","cell","toml","ignore","yaml","footnoteDefinition","hName","hChildren","hProperties","defaultUnknownHandler","trimMarkdownSpaceStart","toHast","footnoteById","defaultHandlers","handle","passThrough","shallow","_excluded","unknownHandler","createState","foot","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","dataFootnoteBackref","_tail$children","tailTail","dataFootnotes","footer","remarkRehype","destination","_asyncToGenerator","_regeneratorRuntime","_callee","hastTree","_context","run","stop","_x","_x2","bail","getPrototypeOf","toStringTag","middleware","_len3","_key3","fnExpectsCallback","exception","then","_len4","_key4","basename","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","segments","sep","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","JSON","stringify","proc","cwd","isUrl","fileUrlOrPath","protocol","auth","urlToPath","URL","hostname","pathname","third","decodeURIComponent","getPathFromURLPosix","VFile","isUint8Array","history","messages","stored","assertNonEmpty","assertPart","stem","CallableInstance","proto","func","names","getOwnPropertyNames","descriptor","Processor","_CallableInstance","Compiler","Parser","attachers","freezeIndex","frozen","transformers","fns","pipeline","middlewareIndex","_len2","_key2","middelware","trough","attacher","assertUnfrozen","_this$attachers$this$","_toArray","transformer","freeze","realFile","vfile","assertParser","assertCompiler","executor","Promise","reject","parseTree","realDone","compileTree","compileResult","complete","process","assertDone","assertNode","outputTree","resultingTree","addPlugin","addList","addPreset","_value","plugins","plugin","entryIndex","_parameters2","primary","currentPrimary","isPlainObj","unified","asyncName","looksLikeAVFile","emptyPlugins","emptyRemarkRehypeOptions","safeProtocol","deprecations","Markdown","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","defaultUrlTransform","processor","deprecation","mdastTree","runSync","_parent$children","colon","questionMark","numberSign"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/53.897844ba.chunk.js b/static/js/53.897844ba.chunk.js deleted file mode 100644 index e33c296..0000000 --- a/static/js/53.897844ba.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[53],{2053:function(e,t,r){r.r(t),r.d(t,{default:function(){return l}});var n=r(1087),a=r(3984),i=r(5861),s=r(4687),c=r.n(s),o=r(4390),d=function(){var e=(0,i.Z)(c().mark((function e(){var t,r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.o.get("/trending/movie/day?language=en-US",o._);case 2:return t=e.sent,r=t.data,e.abrupt("return",r.results);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),u=r(184),l=function(){var e=(0,a.a)({queryKey:["tranding"],queryFn:d}),t=e.isPending,r=e.isError,i=e.data,s=e.error;return t?(0,u.jsx)("div",{children:"Loading..."}):r?(0,u.jsxs)("div",{children:["Error fetching data: ",s.message]}):(0,u.jsxs)("div",{children:[(0,u.jsx)("h1",{className:"scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl",children:"Trending Movies and TV Shows"}),(0,u.jsx)("div",{children:i.map((function(e){return(0,u.jsxs)(n.rU,{to:"/movies/".concat(e.id),children:[(0,u.jsx)("img",{src:"https://image.tmdb.org/t/p/w342".concat(e.poster_path),alt:e.title||e.name}),(0,u.jsx)("p",{children:e.media_type}),(0,u.jsx)("h3",{children:e.title||e.name}),(0,u.jsx)("h4",{children:e.release_date?new Date(e.release_date).getFullYear():new Date(e.first_air_date).getFullYear()})]},e.id)}))})]})}},4390:function(e,t,r){r.d(t,{_:function(){return a},o:function(){return n.Z}});var n=r(5294);n.Z.defaults.baseURL="https://api.themoviedb.org/3";var a={headers:{accept:"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ"}}}}]); -//# sourceMappingURL=53.897844ba.chunk.js.map \ No newline at end of file diff --git a/static/js/53.897844ba.chunk.js.map b/static/js/53.897844ba.chunk.js.map deleted file mode 100644 index 5fdd749..0000000 --- a/static/js/53.897844ba.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/53.897844ba.chunk.js","mappings":"kPAEMA,EAAiB,eAAAC,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAAC,EAAAC,EAAA,OAAAH,IAAAA,MAAA,SAAAI,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACDC,EAAAA,EAAAA,IACrB,qCACAC,EAAAA,GACA,KAAD,EAHW,OAGXN,EAAAE,EAAAK,KAHON,EAAID,EAAJC,KAAIC,EAAAM,OAAA,SAKLP,EAAKQ,SAAO,wBAAAP,EAAAQ,OAAA,GAAAX,EAAA,KACpB,kBAPsB,OAAAH,EAAAe,MAAA,KAAAC,UAAA,K,SC0CvB,EAxCa,WACX,IAAAC,GAA4CC,EAAAA,EAAAA,GAAS,CACnDC,SAAU,CAAC,YACXC,QAASrB,IAFHsB,EAASJ,EAATI,UAAWC,EAAOL,EAAPK,QAASjB,EAAIY,EAAJZ,KAAMkB,EAAKN,EAALM,MAKlC,OAAIF,GACKG,EAAAA,EAAAA,KAAA,OAAAC,SAAK,eAGVH,GACKI,EAAAA,EAAAA,MAAA,OAAAD,SAAA,CAAK,wBAAsBF,EAAMI,YAIxCD,EAAAA,EAAAA,MAAA,OAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,MAAII,UAAU,iEAAgEH,SAAC,kCAG/ED,EAAAA,EAAAA,KAAA,OAAAC,SACGpB,EAAKwB,KAAI,SAAAC,GAAK,OACbJ,EAAAA,EAAAA,MAACK,EAAAA,GAAI,CAACC,GAAE,WAAAC,OAAaH,EAAMI,IAAKT,SAAA,EAC9BD,EAAAA,EAAAA,KAAA,OACEW,IAAG,kCAAAF,OAAoCH,EAAMM,aAC7CC,IAAKP,EAAMQ,OAASR,EAAMS,QAE5Bf,EAAAA,EAAAA,KAAA,KAAAC,SAAIK,EAAMU,cACVhB,EAAAA,EAAAA,KAAA,MAAAC,SAAKK,EAAMQ,OAASR,EAAMS,QAC1Bf,EAAAA,EAAAA,KAAA,MAAAC,SACGK,EAAMW,aACH,IAAIC,KAAKZ,EAAMW,cAAcE,cAC7B,IAAID,KAAKZ,EAAMc,gBAAgBD,kBAVDb,EAAMI,GAYrC,QAKjB,C,8FCxCAzB,EAAAA,EAAAA,SAAAA,QAAyB,+BAEzB,IAAMC,EAAc,CAClBmC,QAAS,CACPC,OAAQ,mBACRC,cACE,8N","sources":["services/fetchTrendingData.js","pages/Home.jsx","services/api.js"],"sourcesContent":["import { axios, baseOptions } from './api';\n\nconst fetchTrendingData = async () => {\n const { data } = await axios.get(\n '/trending/movie/day?language=en-US',\n baseOptions\n );\n\n return data.results;\n};\n\nexport { fetchTrendingData };\n","import { Link } from 'react-router-dom';\nimport { useQuery } from '@tanstack/react-query';\nimport { fetchTrendingData } from 'services/fetchTrendingData';\n\nconst Home = () => {\n const { isPending, isError, data, error } = useQuery({\n queryKey: ['tranding'],\n queryFn: fetchTrendingData,\n });\n\n if (isPending) {\n return
Loading...
;\n }\n\n if (isError) {\n return
Error fetching data: {error.message}
;\n }\n\n return (\n
\n

\n Trending Movies and TV Shows\n

\n
\n {data.map(movie => (\n \n \n

{movie.media_type}

\n

{movie.title || movie.name}

\n

\n {movie.release_date\n ? new Date(movie.release_date).getFullYear()\n : new Date(movie.first_air_date).getFullYear()}\n

\n \n ))}\n
\n
\n );\n};\n\nexport default Home;\n","import axios from 'axios';\n\naxios.defaults.baseURL = 'https://api.themoviedb.org/3';\n\nconst baseOptions = {\n headers: {\n accept: 'application/json',\n Authorization:\n 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ',\n },\n};\n\nexport { axios, baseOptions };\n"],"names":["fetchTrendingData","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","_yield$axios$get","data","_context","prev","next","axios","baseOptions","sent","abrupt","results","stop","apply","arguments","_useQuery","useQuery","queryKey","queryFn","isPending","isError","error","_jsx","children","_jsxs","message","className","map","movie","Link","to","concat","id","src","poster_path","alt","title","name","media_type","release_date","Date","getFullYear","first_air_date","headers","accept","Authorization"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/590.0077b485.chunk.js b/static/js/590.0077b485.chunk.js new file mode 100644 index 0000000..8f581ef --- /dev/null +++ b/static/js/590.0077b485.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[590],{1590:function(e,n,r){r.r(n),r.d(n,{default:function(){return v}});var t=r(7689),i=r(3984),a=r(5861),c=r(4687),s=r.n(c),u=r(4390),o=function(){var e=(0,a.Z)(s().mark((function e(n){var r,t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.o.get("/movie/".concat(n,"/reviews?language=en-US"),u._);case 2:return r=e.sent,t=r.data,e.abrupt("return",t.results);case 5:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),d=r(4461),h=r(570),l=r(5658),f=r(184),v=function(){var e=(0,t.UO)().movieId,n=(0,i.a)({queryKey:["reviews",e],queryFn:function(){return o(e)}}),r=n.data,a=n.isLoading,c=n.error;return a?(0,f.jsx)("div",{children:"Loading..."}):c?(0,f.jsxs)("div",{children:["Error fetching data: ",c.message]}):(0,f.jsxs)("div",{children:[(0,f.jsx)("h1",{children:"Reviews"}),r.map((function(e){return(0,f.jsx)("ul",{children:(0,f.jsxs)("li",{children:[(0,f.jsx)("h4",{children:e.author}),(0,f.jsx)("p",{children:(0,d.WU)(new Date(e.created_at),"MMMM d, yyyy H:mm")}),/<([A-Za-z][A-Za-z0-9]*)\b[^>]*>(.*?)<\/\1>/.test(e.content)?(0,f.jsx)("div",{children:(0,l.ZP)(e.content)}):(0,f.jsx)("div",{children:(0,f.jsx)(h.U,{children:e.content})})]})},e.id)}))]})}},4390:function(e,n,r){r.d(n,{_:function(){return i},o:function(){return t.Z}});var t=r(5294);t.Z.defaults.baseURL="https://api.themoviedb.org/3";var i={headers:{accept:"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ"}}}}]); +//# sourceMappingURL=590.0077b485.chunk.js.map \ No newline at end of file diff --git a/static/js/590.ed54b3f7.chunk.js.map b/static/js/590.0077b485.chunk.js.map similarity index 96% rename from static/js/590.ed54b3f7.chunk.js.map rename to static/js/590.0077b485.chunk.js.map index 1518a3a..c9bd2bf 100644 --- a/static/js/590.ed54b3f7.chunk.js.map +++ b/static/js/590.0077b485.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/590.ed54b3f7.chunk.js","mappings":"mPAEMA,EAAY,eAAAC,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,EAAMC,GAAQ,IAAAC,EAAAC,EAAA,OAAAJ,IAAAA,MAAA,SAAAK,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACVC,EAAAA,EAAAA,IAAU,UAADC,OACpBP,EAAQ,2BAClBQ,EAAAA,GACA,KAAD,EAHW,OAGXP,EAAAE,EAAAM,KAHOP,EAAID,EAAJC,KAAIC,EAAAO,OAAA,SAKLR,EAAKS,SAAO,wBAAAR,EAAAS,OAAA,GAAAb,EAAA,KACpB,gBAPiBc,GAAA,OAAAjB,EAAAkB,MAAA,KAAAC,UAAA,K,uCCiDlB,EA1CgB,WACd,IAAQC,GAAYC,EAAAA,EAAAA,MAAZD,QAERE,GAAmCC,EAAAA,EAAAA,GAAS,CAC1CC,SAAU,CAAC,UAAWJ,GACtBK,QAAS,kBAAM1B,EAAaqB,EAAQ,IAF9Bd,EAAIgB,EAAJhB,KAAMoB,EAASJ,EAATI,UAAWC,EAAKL,EAALK,MAKzB,OAAID,GACKE,EAAAA,EAAAA,KAAA,OAAAC,SAAK,eAGVF,GACKG,EAAAA,EAAAA,MAAA,OAAAD,SAAA,CAAK,wBAAsBF,EAAMI,YAIxCD,EAAAA,EAAAA,MAAA,OAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,MAAAC,SAAI,YACHvB,EAAK0B,KAAI,SAAAC,GAAM,OACdL,EAAAA,EAAAA,KAAA,MAAAC,UACEC,EAAAA,EAAAA,MAAA,MAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,MAAAC,SAAKI,EAAOC,UAEZN,EAAAA,EAAAA,KAAA,KAAAC,UAAIM,EAAAA,EAAAA,IAAO,IAAIC,KAAKH,EAAOI,YAAa,uBAEvC,6CAA6CC,KAC5CL,EAAOM,UAEPX,EAAAA,EAAAA,KAAA,OAAAC,UAAMW,EAAAA,EAAAA,IAAMP,EAAOM,YAEnBX,EAAAA,EAAAA,KAAA,OAAAC,UACED,EAAAA,EAAAA,KAACa,EAAAA,EAAa,CAAAZ,SAAEI,EAAOM,gBAZtBN,EAAOS,GAgBX,MAIb,C,8FC/CAhC,EAAAA,EAAAA,SAAAA,QAAyB,+BAEzB,IAAME,EAAc,CAClB+B,QAAS,CACPC,OAAQ,mBACRC,cACE,8N","sources":["services/fetchReviews.js","components/Reviews.jsx","services/api.js"],"sourcesContent":["import { axios, baseOptions } from './api';\n\nconst fetchReviews = async movie_id => {\n const { data } = await axios.get(\n `/movie/${movie_id}/reviews?language=en-US`,\n baseOptions\n );\n\n return data.results;\n};\n\nexport { fetchReviews };\n","import { useParams } from 'react-router-dom';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { fetchReviews } from 'services/fetchReviews';\n\nimport { format } from 'date-fns';\nimport ReactMarkdown from 'react-markdown';\nimport parse from 'html-react-parser';\n\nconst Reviews = () => {\n const { movieId } = useParams();\n\n const { data, isLoading, error } = useQuery({\n queryKey: ['reviews', movieId],\n queryFn: () => fetchReviews(movieId),\n });\n\n if (isLoading) {\n return
Loading...
;\n }\n\n if (error) {\n return
Error fetching data: {error.message}
;\n }\n\n return (\n
\n

Reviews

\n {data.map(review => (\n
    \n
  • \n

    {review.author}

    \n\n

    {format(new Date(review.created_at), 'MMMM d, yyyy H:mm')}

    \n\n {/<([A-Za-z][A-Za-z0-9]*)\\b[^>]*>(.*?)<\\/\\1>/.test(\n review.content\n ) ? (\n
    {parse(review.content)}
    \n ) : (\n
    \n {review.content}\n
    \n )}\n
  • \n
\n ))}\n
\n );\n};\n\nexport default Reviews;\n","import axios from 'axios';\n\naxios.defaults.baseURL = 'https://api.themoviedb.org/3';\n\nconst baseOptions = {\n headers: {\n accept: 'application/json',\n Authorization:\n 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ',\n },\n};\n\nexport { axios, baseOptions };\n"],"names":["fetchReviews","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","movie_id","_yield$axios$get","data","_context","prev","next","axios","concat","baseOptions","sent","abrupt","results","stop","_x","apply","arguments","movieId","useParams","_useQuery","useQuery","queryKey","queryFn","isLoading","error","_jsx","children","_jsxs","message","map","review","author","format","Date","created_at","test","content","parse","ReactMarkdown","id","headers","accept","Authorization"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/590.0077b485.chunk.js","mappings":"mPAEMA,EAAY,eAAAC,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,EAAMC,GAAQ,IAAAC,EAAAC,EAAA,OAAAJ,IAAAA,MAAA,SAAAK,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACVC,EAAAA,EAAAA,IAAU,UAADC,OACpBP,EAAQ,2BAClBQ,EAAAA,GACA,KAAD,EAHW,OAGXP,EAAAE,EAAAM,KAHOP,EAAID,EAAJC,KAAIC,EAAAO,OAAA,SAKLR,EAAKS,SAAO,wBAAAR,EAAAS,OAAA,GAAAb,EAAA,KACpB,gBAPiBc,GAAA,OAAAjB,EAAAkB,MAAA,KAAAC,UAAA,K,sCCiDlB,EA1CgB,WACd,IAAQC,GAAYC,EAAAA,EAAAA,MAAZD,QAERE,GAAmCC,EAAAA,EAAAA,GAAS,CAC1CC,SAAU,CAAC,UAAWJ,GACtBK,QAAS,kBAAM1B,EAAaqB,EAAQ,IAF9Bd,EAAIgB,EAAJhB,KAAMoB,EAASJ,EAATI,UAAWC,EAAKL,EAALK,MAKzB,OAAID,GACKE,EAAAA,EAAAA,KAAA,OAAAC,SAAK,eAGVF,GACKG,EAAAA,EAAAA,MAAA,OAAAD,SAAA,CAAK,wBAAsBF,EAAMI,YAIxCD,EAAAA,EAAAA,MAAA,OAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,MAAAC,SAAI,YACHvB,EAAK0B,KAAI,SAAAC,GAAM,OACdL,EAAAA,EAAAA,KAAA,MAAAC,UACEC,EAAAA,EAAAA,MAAA,MAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,MAAAC,SAAKI,EAAOC,UAEZN,EAAAA,EAAAA,KAAA,KAAAC,UAAIM,EAAAA,EAAAA,IAAO,IAAIC,KAAKH,EAAOI,YAAa,uBAEvC,6CAA6CC,KAC5CL,EAAOM,UAEPX,EAAAA,EAAAA,KAAA,OAAAC,UAAMW,EAAAA,EAAAA,IAAMP,EAAOM,YAEnBX,EAAAA,EAAAA,KAAA,OAAAC,UACED,EAAAA,EAAAA,KAACa,EAAAA,EAAa,CAAAZ,SAAEI,EAAOM,gBAZtBN,EAAOS,GAgBX,MAIb,C,8FC/CAhC,EAAAA,EAAAA,SAAAA,QAAyB,+BAEzB,IAAME,EAAc,CAClB+B,QAAS,CACPC,OAAQ,mBACRC,cACE,8N","sources":["services/fetchReviews.js","components/Reviews.jsx","services/api.js"],"sourcesContent":["import { axios, baseOptions } from './api';\n\nconst fetchReviews = async movie_id => {\n const { data } = await axios.get(\n `/movie/${movie_id}/reviews?language=en-US`,\n baseOptions\n );\n\n return data.results;\n};\n\nexport { fetchReviews };\n","import { useParams } from 'react-router-dom';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { fetchReviews } from 'services/fetchReviews';\n\nimport { format } from 'date-fns';\nimport ReactMarkdown from 'react-markdown';\nimport parse from 'html-react-parser';\n\nconst Reviews = () => {\n const { movieId } = useParams();\n\n const { data, isLoading, error } = useQuery({\n queryKey: ['reviews', movieId],\n queryFn: () => fetchReviews(movieId),\n });\n\n if (isLoading) {\n return
Loading...
;\n }\n\n if (error) {\n return
Error fetching data: {error.message}
;\n }\n\n return (\n
\n

Reviews

\n {data.map(review => (\n
    \n
  • \n

    {review.author}

    \n\n

    {format(new Date(review.created_at), 'MMMM d, yyyy H:mm')}

    \n\n {/<([A-Za-z][A-Za-z0-9]*)\\b[^>]*>(.*?)<\\/\\1>/.test(\n review.content\n ) ? (\n
    {parse(review.content)}
    \n ) : (\n
    \n {review.content}\n
    \n )}\n
  • \n
\n ))}\n
\n );\n};\n\nexport default Reviews;\n","import axios from 'axios';\n\naxios.defaults.baseURL = 'https://api.themoviedb.org/3';\n\nconst baseOptions = {\n headers: {\n accept: 'application/json',\n Authorization:\n 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ',\n },\n};\n\nexport { axios, baseOptions };\n"],"names":["fetchReviews","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","movie_id","_yield$axios$get","data","_context","prev","next","axios","concat","baseOptions","sent","abrupt","results","stop","_x","apply","arguments","movieId","useParams","_useQuery","useQuery","queryKey","queryFn","isLoading","error","_jsx","children","_jsxs","message","map","review","author","format","Date","created_at","test","content","parse","ReactMarkdown","id","headers","accept","Authorization"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/590.ed54b3f7.chunk.js b/static/js/590.ed54b3f7.chunk.js deleted file mode 100644 index 7deae8c..0000000 --- a/static/js/590.ed54b3f7.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[590],{1590:function(e,n,r){r.r(n),r.d(n,{default:function(){return v}});var t=r(7689),i=r(3984),a=r(5861),c=r(4687),s=r.n(c),u=r(4390),o=function(){var e=(0,a.Z)(s().mark((function e(n){var r,t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.o.get("/movie/".concat(n,"/reviews?language=en-US"),u._);case 2:return r=e.sent,t=r.data,e.abrupt("return",t.results);case 5:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),d=r(4461),h=r(6511),l=r(5658),f=r(184),v=function(){var e=(0,t.UO)().movieId,n=(0,i.a)({queryKey:["reviews",e],queryFn:function(){return o(e)}}),r=n.data,a=n.isLoading,c=n.error;return a?(0,f.jsx)("div",{children:"Loading..."}):c?(0,f.jsxs)("div",{children:["Error fetching data: ",c.message]}):(0,f.jsxs)("div",{children:[(0,f.jsx)("h1",{children:"Reviews"}),r.map((function(e){return(0,f.jsx)("ul",{children:(0,f.jsxs)("li",{children:[(0,f.jsx)("h4",{children:e.author}),(0,f.jsx)("p",{children:(0,d.WU)(new Date(e.created_at),"MMMM d, yyyy H:mm")}),/<([A-Za-z][A-Za-z0-9]*)\b[^>]*>(.*?)<\/\1>/.test(e.content)?(0,f.jsx)("div",{children:(0,l.ZP)(e.content)}):(0,f.jsx)("div",{children:(0,f.jsx)(h.U,{children:e.content})})]})},e.id)}))]})}},4390:function(e,n,r){r.d(n,{_:function(){return i},o:function(){return t.Z}});var t=r(5294);t.Z.defaults.baseURL="https://api.themoviedb.org/3";var i={headers:{accept:"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ"}}}}]); -//# sourceMappingURL=590.ed54b3f7.chunk.js.map \ No newline at end of file diff --git a/static/js/649.5f988163.chunk.js b/static/js/649.5f988163.chunk.js new file mode 100644 index 0000000..00cc740 --- /dev/null +++ b/static/js/649.5f988163.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[649],{4776:function(e,u){"use strict";var t;Object.defineProperty(u,"__esModule",{value:!0}),u.Doctype=u.CDATA=u.Tag=u.Style=u.Script=u.Comment=u.Directive=u.Text=u.Root=u.isTag=u.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(t=u.ElementType||(u.ElementType={})),u.isTag=function(e){return e.type===t.Tag||e.type===t.Script||e.type===t.Style},u.Root=t.Root,u.Text=t.Text,u.Directive=t.Directive,u.Comment=t.Comment,u.Script=t.Script,u.Style=t.Style,u.Tag=t.Tag,u.CDATA=t.CDATA,u.Doctype=t.Doctype},1132:function(e){"use strict";var u=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===t.call(e)},o=function(e){if(!e||"[object Object]"!==t.call(e))return!1;var n,r=u.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&u.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!r&&!i)return!1;for(n in e);return"undefined"===typeof n||u.call(e,n)},a=function(e,u){n&&"__proto__"===u.name?n(e,u.name,{enumerable:!0,configurable:!0,value:u.newValue,writable:!0}):e[u.name]=u.newValue},l=function(e,t){if("__proto__"===t){if(!u.call(e,t))return;if(r)return r(e,t).value}return e[t]};e.exports=function e(){var u,t,n,r,D,s,c=arguments[0],f=1,d=arguments.length,p=!1;for("boolean"===typeof c&&(p=c,c=arguments[1]||{},f=2),(null==c||"object"!==typeof c&&"function"!==typeof c)&&(c={});f/i,a=//i,l=function(e,u){throw new Error("This browser does not support `document.implementation.createHTMLDocument`")},D=function(e,u){throw new Error("This browser does not support `DOMParser.prototype.parseFromString`")},s="object"===typeof window&&window.DOMParser;if("function"===typeof s){var c=new s;l=D=function(e,u){return u&&(e="<".concat(u,">").concat(e,"")),c.parseFromString(e,"text/html")}}if("object"===typeof document&&document.implementation){var f=document.implementation.createHTMLDocument();l=function(e,u){if(u){var t=f.documentElement.querySelector(u);return t&&(t.innerHTML=e),f}return f.documentElement.innerHTML=e,f}}var d,p="object"===typeof document&&document.createElement("template");p&&p.content&&(d=function(e){return p.innerHTML=e,p.content.childNodes}),u.default=function(e){var u,s,c=e.match(i),f=c&&c[1]?c[1].toLowerCase():"";switch(f){case t:var p=D(e);if(!o.test(e))null===(u=null===(F=p.querySelector(n))||void 0===F?void 0:F.parentNode)||void 0===u||u.removeChild(F);if(!a.test(e))null===(s=null===(F=p.querySelector(r))||void 0===F?void 0:F.parentNode)||void 0===s||s.removeChild(F);return p.querySelectorAll(t);case n:case r:var h=l(e).querySelectorAll(f);return a.test(e)&&o.test(e)?h[0].parentNode.childNodes:h;default:return d?d(e):(F=l(e,r).querySelector(r)).childNodes;var F}}},159:function(e,u,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u,"__esModule",{value:!0});var r=n(t(9409)),i=t(1716),o=/<(![a-zA-Z\s]+)>/;u.default=function(e){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];var u=e.match(o),t=u?u[1]:void 0;return(0,i.formatDOM)((0,r.default)(e),null,t)}},1716:function(e,u,t){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.formatDOM=u.formatAttributes=void 0;var n=t(538),r=t(9127);function i(e){for(var u={},t=0,n=e.length;t0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),u}(o);u.NodeWithChildren=c;var f=function(e){function u(){var u=null!==e&&e.apply(this,arguments)||this;return u.type=i.ElementType.CDATA,u}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),u}(c);u.CDATA=f;var d=function(e){function u(){var u=null!==e&&e.apply(this,arguments)||this;return u.type=i.ElementType.Root,u}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),u}(c);u.Document=d;var p=function(e){function u(u,t,n,r){void 0===n&&(n=[]),void 0===r&&(r="script"===u?i.ElementType.Script:"style"===u?i.ElementType.Style:i.ElementType.Tag);var o=e.call(this,n)||this;return o.name=u,o.attribs=t,o.type=r,o}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(u){var t,n;return{name:u,value:e.attribs[u],namespace:null===(t=e["x-attribsNamespace"])||void 0===t?void 0:t[u],prefix:null===(n=e["x-attribsPrefix"])||void 0===n?void 0:n[u]}}))},enumerable:!1,configurable:!0}),u}(c);function h(e){return(0,i.isTag)(e)}function F(e){return e.type===i.ElementType.CDATA}function C(e){return e.type===i.ElementType.Text}function E(e){return e.type===i.ElementType.Comment}function m(e){return e.type===i.ElementType.Directive}function A(e){return e.type===i.ElementType.Root}function v(e,u){var t;if(void 0===u&&(u=!1),C(e))t=new l(e.data);else if(E(e))t=new D(e.data);else if(h(e)){var n=u?g(e.children):[],i=new p(e.name,r({},e.attribs),n);n.forEach((function(e){return e.parent=i})),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=r({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=r({},e["x-attribsPrefix"])),t=i}else if(F(e)){n=u?g(e.children):[];var o=new f(n);n.forEach((function(e){return e.parent=o})),t=o}else if(A(e)){n=u?g(e.children):[];var a=new d(n);n.forEach((function(e){return e.parent=a})),e["x-mode"]&&(a["x-mode"]=e["x-mode"]),t=a}else{if(!m(e))throw new Error("Not implemented yet: ".concat(e.type));var c=new s(e.name,e.data);null!=e["x-name"]&&(c["x-name"]=e["x-name"],c["x-publicId"]=e["x-publicId"],c["x-systemId"]=e["x-systemId"]),t=c}return t.startIndex=e.startIndex,t.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(t.sourceCodeLocation=e.sourceCodeLocation),t}function g(e){for(var u=e.map((function(e){return v(e,!0)})),t=1;t1&&(C=c(C,{key:C.key||h})),n.push(D(C,F,h));continue}}if("text"!==F.type){var E=F,m={};l(E)?((0,o.setStyleProp)(E.attribs.style,E.attribs),m=E.attribs):E.attribs&&(m=(0,i.default)(E.attribs,E.name));var A=void 0;switch(F.type){case"script":case"style":F.children[0]&&(m.dangerouslySetInnerHTML={__html:F.children[0].data});break;case"tag":"textarea"===F.name&&F.children[0]?m.defaultValue=F.children[0].data:F.children&&F.children.length&&(A=e(F.children,t));break;default:continue}p>1&&(m.key=h),n.push(D(f(F.name,m,A),F,h))}else{var v=!F.data.trim().length;if(v&&F.parent&&!(0,o.canTextBeChildOfNode)(F.parent))continue;if((null===t||void 0===t?void 0:t.trim)&&v)continue;n.push(D(F.data,F,h))}}return 1===n.length?n[0]:n}},7025:function(e,u,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u,"__esModule",{value:!0}),u.htmlToDOM=u.domToReact=u.attributesToProps=u.Text=u.ProcessingInstruction=u.Element=u.Comment=void 0;var r=n(t(159));u.htmlToDOM=r.default;var i=n(t(8131));u.attributesToProps=i.default;var o=n(t(4595));u.domToReact=o.default;var a=t(9936);Object.defineProperty(u,"Comment",{enumerable:!0,get:function(){return a.Comment}}),Object.defineProperty(u,"Element",{enumerable:!0,get:function(){return a.Element}}),Object.defineProperty(u,"ProcessingInstruction",{enumerable:!0,get:function(){return a.ProcessingInstruction}}),Object.defineProperty(u,"Text",{enumerable:!0,get:function(){return a.Text}});var l={lowerCaseAttributeNames:!1};u.default=function(e,u){if("string"!==typeof e)throw new TypeError("First argument must be a string");return e?(0,o.default)((0,r.default)(e,(null===u||void 0===u?void 0:u.htmlparser2)||l),u):[]}},4141:function(e,u,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u,"__esModule",{value:!0}),u.returnFirstArg=u.canTextBeChildOfNode=u.ELEMENTS_WITH_NO_TEXT_CHILDREN=u.PRESERVE_CUSTOM_ATTRIBUTES=u.setStyleProp=u.isCustomComponent=void 0;var r=t(2791),i=n(t(5792)),o=new Set(["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"]);u.isCustomComponent=function(e,u){return e.includes("-")?!o.has(e):Boolean(u&&"string"===typeof u.is)};var a={reactCompat:!0};u.setStyleProp=function(e,u){if("string"===typeof e)if(e.trim())try{u.style=(0,i.default)(e,a)}catch(t){u.style={}}else u.style={}},u.PRESERVE_CUSTOM_ATTRIBUTES=Number(r.version.split(".")[0])>=16,u.ELEMENTS_WITH_NO_TEXT_CHILDREN=new Set(["tr","tbody","thead","tfoot","colgroup","table","head","html","frameset"]);u.canTextBeChildOfNode=function(e){return!u.ELEMENTS_WITH_NO_TEXT_CHILDREN.has(e.name)};u.returnFirstArg=function(e){return e}},9936:function(e,u,t){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,u,t,n){void 0===n&&(n=t);var r=Object.getOwnPropertyDescriptor(u,t);r&&!("get"in r?!u.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return u[t]}}),Object.defineProperty(e,n,r)}:function(e,u,t,n){void 0===n&&(n=t),e[n]=u[t]}),r=this&&this.__exportStar||function(e,u){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(u,t)||n(u,e,t)};Object.defineProperty(u,"__esModule",{value:!0}),u.DomHandler=void 0;var i=t(4776),o=t(1262);r(t(1262),u);var a={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,u,t){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"===typeof u&&(t=u,u=a),"object"===typeof e&&(u=e,e=void 0),this.callback=null!==e&&void 0!==e?e:null,this.options=null!==u&&void 0!==u?u:a,this.elementCB=null!==t&&void 0!==t?t:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,u){var t=this.options.xmlMode?i.ElementType.Tag:void 0,n=new o.Element(e,u,void 0,t);this.addNode(n),this.tagStack.push(n)},e.prototype.ontext=function(e){var u=this.lastNode;if(u&&u.type===i.ElementType.Text)u.data+=e,this.options.withEndIndices&&(u.endIndex=this.parser.endIndex);else{var t=new o.Text(e);this.addNode(t),this.lastNode=t}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===i.ElementType.Comment)this.lastNode.data+=e;else{var u=new o.Comment(e);this.addNode(u),this.lastNode=u}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new o.Text(""),u=new o.CDATA([e]);this.addNode(u),e.parent=u,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,u){var t=new o.ProcessingInstruction(e,u);this.addNode(t)},e.prototype.handleCallback=function(e){if("function"===typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var u=this.tagStack[this.tagStack.length-1],t=u.children[u.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),u.children.push(e),t&&(e.prev=t,t.next=e),e.parent=u,this.lastNode=null},e}();u.DomHandler=l,u.default=l},1262:function(e,u,t){"use strict";var n=this&&this.__extends||function(){var e=function(u,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,u){e.__proto__=u}||function(e,u){for(var t in u)Object.prototype.hasOwnProperty.call(u,t)&&(e[t]=u[t])},e(u,t)};return function(u,t){if("function"!==typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=u}e(u,t),u.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}}(),r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var u,t=1,n=arguments.length;t0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),u}(o);u.NodeWithChildren=c;var f=function(e){function u(){var u=null!==e&&e.apply(this,arguments)||this;return u.type=i.ElementType.CDATA,u}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),u}(c);u.CDATA=f;var d=function(e){function u(){var u=null!==e&&e.apply(this,arguments)||this;return u.type=i.ElementType.Root,u}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),u}(c);u.Document=d;var p=function(e){function u(u,t,n,r){void 0===n&&(n=[]),void 0===r&&(r="script"===u?i.ElementType.Script:"style"===u?i.ElementType.Style:i.ElementType.Tag);var o=e.call(this,n)||this;return o.name=u,o.attribs=t,o.type=r,o}return n(u,e),Object.defineProperty(u.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(u){var t,n;return{name:u,value:e.attribs[u],namespace:null===(t=e["x-attribsNamespace"])||void 0===t?void 0:t[u],prefix:null===(n=e["x-attribsPrefix"])||void 0===n?void 0:n[u]}}))},enumerable:!1,configurable:!0}),u}(c);function h(e){return(0,i.isTag)(e)}function F(e){return e.type===i.ElementType.CDATA}function C(e){return e.type===i.ElementType.Text}function E(e){return e.type===i.ElementType.Comment}function m(e){return e.type===i.ElementType.Directive}function A(e){return e.type===i.ElementType.Root}function v(e,u){var t;if(void 0===u&&(u=!1),C(e))t=new l(e.data);else if(E(e))t=new D(e.data);else if(h(e)){var n=u?g(e.children):[],i=new p(e.name,r({},e.attribs),n);n.forEach((function(e){return e.parent=i})),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=r({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=r({},e["x-attribsPrefix"])),t=i}else if(F(e)){n=u?g(e.children):[];var o=new f(n);n.forEach((function(e){return e.parent=o})),t=o}else if(A(e)){n=u?g(e.children):[];var a=new d(n);n.forEach((function(e){return e.parent=a})),e["x-mode"]&&(a["x-mode"]=e["x-mode"]),t=a}else{if(!m(e))throw new Error("Not implemented yet: ".concat(e.type));var c=new s(e.name,e.data);null!=e["x-name"]&&(c["x-name"]=e["x-name"],c["x-publicId"]=e["x-publicId"],c["x-systemId"]=e["x-systemId"]),t=c}return t.startIndex=e.startIndex,t.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(t.sourceCodeLocation=e.sourceCodeLocation),t}function g(e){for(var u=e.map((function(e){return v(e,!0)})),t=1;te.length)&&(u=e.length);for(var t=0,n=new Array(u);t0&&void 0!==arguments[0]?arguments[0]:{},t=u.width?String(u.width):e.defaultWidth,n=e.formats[t]||e.formats[e.defaultWidth];return n}}var i={date:r({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:r({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:r({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},o={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function a(e){return function(u,t){var n;if("formatting"===(null!==t&&void 0!==t&&t.context?String(t.context):"standalone")&&e.formattingValues){var r=e.defaultFormattingWidth||e.defaultWidth,i=null!==t&&void 0!==t&&t.width?String(t.width):r;n=e.formattingValues[i]||e.formattingValues[r]}else{var o=e.defaultWidth,a=null!==t&&void 0!==t&&t.width?String(t.width):e.defaultWidth;n=e.values[a]||e.values[o]}return n[e.argumentCallback?e.argumentCallback(u):u]}}var l={ordinalNumber:function(e,u){var t=Number(e),n=t%100;if(n>20||n<10)switch(n%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},era:a({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:a({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:a({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:a({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:a({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function D(e){return function(u){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.width,r=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],i=u.match(r);if(!i)return null;var o,a=i[0],l=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],D=Array.isArray(l)?c(l,(function(e){return e.test(a)})):s(l,(function(e){return e.test(a)}));o=e.valueCallback?e.valueCallback(D):D,o=t.valueCallback?t.valueCallback(o):o;var f=u.slice(a.length);return{value:o,rest:f}}}function s(e,u){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&u(e[t]))return t}function c(e,u){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:{},t=e.match(f.matchPattern);if(!t)return null;var n=t[0],r=e.match(f.parsePattern);if(!r)return null;var i=f.valueCallback?f.valueCallback(r[0]):r[0];i=u.valueCallback?u.valueCallback(i):i;var o=e.slice(n.length);return{value:i,rest:o}}),era:D({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:D({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:D({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:D({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:D({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},p={code:"en-US",formatDistance:function(e,u,t){var r,i=n[e];return r="string"===typeof i?i:1===u?i.one:i.other.replace("{{count}}",u.toString()),null!==t&&void 0!==t&&t.addSuffix?t.comparison&&t.comparison>0?"in "+r:r+" ago":r},formatLong:i,formatRelative:function(e,u,t,n){return o[e]},localize:l,match:d,options:{weekStartsOn:0,firstWeekContainsDate:1}},h={};function F(){return h}Math.pow(10,8);var C=6048e5;function E(e){var u=Object.prototype.toString.call(e);return e instanceof Date||"object"===typeof e&&"[object Date]"===u?new e.constructor(+e):"number"===typeof e||"[object Number]"===u||"string"===typeof e||"[object String]"===u?new Date(e):new Date(NaN)}function m(e){var u=E(e);return u.setHours(0,0,0,0),u}function A(e){var u=E(e),t=new Date(Date.UTC(u.getFullYear(),u.getMonth(),u.getDate(),u.getHours(),u.getMinutes(),u.getSeconds(),u.getMilliseconds()));return t.setUTCFullYear(u.getFullYear()),+e-+t}function v(e,u){var t=m(e),n=m(u),r=+t-A(t),i=+n-A(n);return Math.round((r-i)/864e5)}function g(e,u){return e instanceof Date?new e.constructor(u):new Date(u)}function y(e){var u=E(e),t=g(e,0);return t.setFullYear(u.getFullYear(),0,1),t.setHours(0,0,0,0),t}function B(e){var u=E(e);return v(u,y(u))+1}function x(e,u){var t,n,r,i,o,a,l,D,s=F(),c=null!==(t=null!==(n=null!==(r=null!==(i=null===u||void 0===u?void 0:u.weekStartsOn)&&void 0!==i?i:null===u||void 0===u||null===(o=u.locale)||void 0===o||null===(a=o.options)||void 0===a?void 0:a.weekStartsOn)&&void 0!==r?r:s.weekStartsOn)&&void 0!==n?n:null===(l=s.locale)||void 0===l||null===(D=l.options)||void 0===D?void 0:D.weekStartsOn)&&void 0!==t?t:0,f=E(e),d=f.getDay(),p=(d=r.getTime()?t+1:u.getTime()>=o.getTime()?t:t-1}function w(e){var u=k(e),t=g(e,0);return t.setFullYear(u,0,4),t.setHours(0,0,0,0),b(t)}function S(e){var u=E(e),t=+b(u)-+w(u);return Math.round(t/C)+1}function T(e,u){var t,n,r,i,o,a,l,D,s=E(e),c=s.getFullYear(),f=F(),d=null!==(t=null!==(n=null!==(r=null!==(i=null===u||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:null===u||void 0===u||null===(o=u.locale)||void 0===o||null===(a=o.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:f.firstWeekContainsDate)&&void 0!==n?n:null===(l=f.locale)||void 0===l||null===(D=l.options)||void 0===D?void 0:D.firstWeekContainsDate)&&void 0!==t?t:1,p=g(e,0);p.setFullYear(c+1,0,d),p.setHours(0,0,0,0);var h=x(p,u),C=g(e,0);C.setFullYear(c,0,d),C.setHours(0,0,0,0);var m=x(C,u);return s.getTime()>=h.getTime()?c+1:s.getTime()>=m.getTime()?c:c-1}function P(e,u){var t,n,r,i,o,a,l,D,s=F(),c=null!==(t=null!==(n=null!==(r=null!==(i=null===u||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==i?i:null===u||void 0===u||null===(o=u.locale)||void 0===o||null===(a=o.options)||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:s.firstWeekContainsDate)&&void 0!==n?n:null===(l=s.locale)||void 0===l||null===(D=l.options)||void 0===D?void 0:D.firstWeekContainsDate)&&void 0!==t?t:1,f=T(e,u),d=g(e,0);return d.setFullYear(f,0,c),d.setHours(0,0,0,0),x(d,u)}function O(e,u){var t=E(e),n=+x(t,u)-+P(t,u);return Math.round(n/C)+1}function M(e,u){return(e<0?"-":"")+Math.abs(e).toString().padStart(u,"0")}var I=function(e,u){var t=e.getFullYear(),n=t>0?t:1-t;return M("yy"===u?n%100:n,u.length)},N=function(e,u){var t=e.getMonth();return"M"===u?String(t+1):M(t+1,2)},_=function(e,u){return M(e.getDate(),u.length)},L=function(e,u){return M(e.getHours()%12||12,u.length)},j=function(e,u){return M(e.getHours(),u.length)},z=function(e,u){return M(e.getMinutes(),u.length)},R=function(e,u){return M(e.getSeconds(),u.length)},H=function(e,u){var t=u.length,n=e.getMilliseconds();return M(Math.trunc(n*Math.pow(10,t-3)),u.length)},Z="midnight",U="noon",q="morning",W="afternoon",V="evening",Y="night",X={G:function(e,u,t){var n=e.getFullYear()>0?1:0;switch(u){case"G":case"GG":case"GGG":return t.era(n,{width:"abbreviated"});case"GGGGG":return t.era(n,{width:"narrow"});default:return t.era(n,{width:"wide"})}},y:function(e,u,t){if("yo"===u){var n=e.getFullYear(),r=n>0?n:1-n;return t.ordinalNumber(r,{unit:"year"})}return I(e,u)},Y:function(e,u,t,n){var r=T(e,n),i=r>0?r:1-r;return"YY"===u?M(i%100,2):"Yo"===u?t.ordinalNumber(i,{unit:"year"}):M(i,u.length)},R:function(e,u){return M(k(e),u.length)},u:function(e,u){return M(e.getFullYear(),u.length)},Q:function(e,u,t){var n=Math.ceil((e.getMonth()+1)/3);switch(u){case"Q":return String(n);case"QQ":return M(n,2);case"Qo":return t.ordinalNumber(n,{unit:"quarter"});case"QQQ":return t.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(n,{width:"narrow",context:"formatting"});default:return t.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,u,t){var n=Math.ceil((e.getMonth()+1)/3);switch(u){case"q":return String(n);case"qq":return M(n,2);case"qo":return t.ordinalNumber(n,{unit:"quarter"});case"qqq":return t.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(n,{width:"narrow",context:"standalone"});default:return t.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,u,t){var n=e.getMonth();switch(u){case"M":case"MM":return N(e,u);case"Mo":return t.ordinalNumber(n+1,{unit:"month"});case"MMM":return t.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(n,{width:"narrow",context:"formatting"});default:return t.month(n,{width:"wide",context:"formatting"})}},L:function(e,u,t){var n=e.getMonth();switch(u){case"L":return String(n+1);case"LL":return M(n+1,2);case"Lo":return t.ordinalNumber(n+1,{unit:"month"});case"LLL":return t.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(n,{width:"narrow",context:"standalone"});default:return t.month(n,{width:"wide",context:"standalone"})}},w:function(e,u,t,n){var r=O(e,n);return"wo"===u?t.ordinalNumber(r,{unit:"week"}):M(r,u.length)},I:function(e,u,t){var n=S(e);return"Io"===u?t.ordinalNumber(n,{unit:"week"}):M(n,u.length)},d:function(e,u,t){return"do"===u?t.ordinalNumber(e.getDate(),{unit:"date"}):_(e,u)},D:function(e,u,t){var n=B(e);return"Do"===u?t.ordinalNumber(n,{unit:"dayOfYear"}):M(n,u.length)},E:function(e,u,t){var n=e.getDay();switch(u){case"E":case"EE":case"EEE":return t.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(n,{width:"short",context:"formatting"});default:return t.day(n,{width:"wide",context:"formatting"})}},e:function(e,u,t,n){var r=e.getDay(),i=(r-n.weekStartsOn+8)%7||7;switch(u){case"e":return String(i);case"ee":return M(i,2);case"eo":return t.ordinalNumber(i,{unit:"day"});case"eee":return t.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(r,{width:"short",context:"formatting"});default:return t.day(r,{width:"wide",context:"formatting"})}},c:function(e,u,t,n){var r=e.getDay(),i=(r-n.weekStartsOn+8)%7||7;switch(u){case"c":return String(i);case"cc":return M(i,u.length);case"co":return t.ordinalNumber(i,{unit:"day"});case"ccc":return t.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(r,{width:"narrow",context:"standalone"});case"cccccc":return t.day(r,{width:"short",context:"standalone"});default:return t.day(r,{width:"wide",context:"standalone"})}},i:function(e,u,t){var n=e.getDay(),r=0===n?7:n;switch(u){case"i":return String(r);case"ii":return M(r,u.length);case"io":return t.ordinalNumber(r,{unit:"day"});case"iii":return t.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(n,{width:"short",context:"formatting"});default:return t.day(n,{width:"wide",context:"formatting"})}},a:function(e,u,t){var n=e.getHours()/12>=1?"pm":"am";switch(u){case"a":case"aa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(e,u,t){var n,r=e.getHours();switch(n=12===r?U:0===r?Z:r/12>=1?"pm":"am",u){case"b":case"bb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(e,u,t){var n,r=e.getHours();switch(n=r>=17?V:r>=12?W:r>=4?q:Y,u){case"B":case"BB":case"BBB":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(n,{width:"narrow",context:"formatting"});default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(e,u,t){if("ho"===u){var n=e.getHours()%12;return 0===n&&(n=12),t.ordinalNumber(n,{unit:"hour"})}return L(e,u)},H:function(e,u,t){return"Ho"===u?t.ordinalNumber(e.getHours(),{unit:"hour"}):j(e,u)},K:function(e,u,t){var n=e.getHours()%12;return"Ko"===u?t.ordinalNumber(n,{unit:"hour"}):M(n,u.length)},k:function(e,u,t){var n=e.getHours();return 0===n&&(n=24),"ko"===u?t.ordinalNumber(n,{unit:"hour"}):M(n,u.length)},m:function(e,u,t){return"mo"===u?t.ordinalNumber(e.getMinutes(),{unit:"minute"}):z(e,u)},s:function(e,u,t){return"so"===u?t.ordinalNumber(e.getSeconds(),{unit:"second"}):R(e,u)},S:function(e,u){return H(e,u)},X:function(e,u,t){var n=e.getTimezoneOffset();if(0===n)return"Z";switch(u){case"X":return G(n);case"XXXX":case"XX":return $(n);default:return $(n,":")}},x:function(e,u,t){var n=e.getTimezoneOffset();switch(u){case"x":return G(n);case"xxxx":case"xx":return $(n);default:return $(n,":")}},O:function(e,u,t){var n=e.getTimezoneOffset();switch(u){case"O":case"OO":case"OOO":return"GMT"+Q(n,":");default:return"GMT"+$(n,":")}},z:function(e,u,t){var n=e.getTimezoneOffset();switch(u){case"z":case"zz":case"zzz":return"GMT"+Q(n,":");default:return"GMT"+$(n,":")}},t:function(e,u,t){return M(Math.trunc(e.getTime()/1e3),u.length)},T:function(e,u,t){return M(e.getTime(),u.length)}};function Q(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=e>0?"-":"+",n=Math.abs(e),r=Math.trunc(n/60),i=n%60;return 0===i?t+String(r):t+String(r)+u+M(i,2)}function G(e,u){return e%60===0?(e>0?"-":"+")+M(Math.abs(e)/60,2):$(e,u)}function $(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=e>0?"-":"+",n=Math.abs(e),r=M(Math.trunc(n/60),2),i=M(n%60,2);return t+r+u+i}var K=function(e,u){switch(e){case"P":return u.date({width:"short"});case"PP":return u.date({width:"medium"});case"PPP":return u.date({width:"long"});default:return u.date({width:"full"})}},J=function(e,u){switch(e){case"p":return u.time({width:"short"});case"pp":return u.time({width:"medium"});case"ppp":return u.time({width:"long"});default:return u.time({width:"full"})}},ee={p:J,P:function(e,u){var t,n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return K(e,u);switch(r){case"P":t=u.dateTime({width:"short"});break;case"PP":t=u.dateTime({width:"medium"});break;case"PPP":t=u.dateTime({width:"long"});break;default:t=u.dateTime({width:"full"})}return t.replace("{{date}}",K(r,u)).replace("{{time}}",J(i,u))}},ue=/^D+$/,te=/^Y+$/,ne=["D","DD","YY","YYYY"];function re(e){return e instanceof Date||"object"===typeof e&&"[object Date]"===Object.prototype.toString.call(e)}function ie(e){if(!re(e)&&"number"!==typeof e)return!1;var u=E(e);return!isNaN(Number(u))}var oe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ae=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,le=/^'([^]*?)'?$/,De=/''/g,se=/[a-zA-Z]/;function ce(e,u,t){var n,r,i,o,a,l,D,s,c,f,d,h,C,m,A,v,g,y,B=F(),x=null!==(n=null!==(r=null===t||void 0===t?void 0:t.locale)&&void 0!==r?r:B.locale)&&void 0!==n?n:p,b=null!==(i=null!==(o=null!==(a=null!==(l=null===t||void 0===t?void 0:t.firstWeekContainsDate)&&void 0!==l?l:null===t||void 0===t||null===(D=t.locale)||void 0===D||null===(s=D.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==a?a:B.firstWeekContainsDate)&&void 0!==o?o:null===(c=B.locale)||void 0===c||null===(f=c.options)||void 0===f?void 0:f.firstWeekContainsDate)&&void 0!==i?i:1,k=null!==(d=null!==(h=null!==(C=null!==(m=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==m?m:null===t||void 0===t||null===(A=t.locale)||void 0===A||null===(v=A.options)||void 0===v?void 0:v.weekStartsOn)&&void 0!==C?C:B.weekStartsOn)&&void 0!==h?h:null===(g=B.locale)||void 0===g||null===(y=g.options)||void 0===y?void 0:y.weekStartsOn)&&void 0!==d?d:0,w=E(e);if(!ie(w))throw new RangeError("Invalid time value");var S=u.match(ae).map((function(e){var u=e[0];return"p"===u||"P"===u?(0,ee[u])(e,x.formatLong):e})).join("").match(oe).map((function(e){if("''"===e)return{isToken:!1,value:"'"};var u=e[0];if("'"===u)return{isToken:!1,value:fe(e)};if(X[u])return{isToken:!0,value:e};if(u.match(se))throw new RangeError("Format string contains an unescaped latin alphabet character `"+u+"`");return{isToken:!1,value:e}}));x.localize.preprocessor&&(S=x.localize.preprocessor(w,S));var T={firstWeekContainsDate:b,weekStartsOn:k,locale:x};return S.map((function(n){if(!n.isToken)return n.value;var r=n.value;return(null!==t&&void 0!==t&&t.useAdditionalWeekYearTokens||!function(e){return te.test(e)}(r))&&(null!==t&&void 0!==t&&t.useAdditionalDayOfYearTokens||!function(e){return ue.test(e)}(r))||function(e,u,t){var n=function(e,u,t){var n="Y"===e[0]?"years":"days of the month";return"Use `".concat(e.toLowerCase(),"` instead of `").concat(e,"` (in `").concat(u,"`) for formatting ").concat(n," to the input `").concat(t,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")}(e,u,t);if(console.warn(n),ne.includes(e))throw new RangeError(n)}(r,u,String(e)),(0,X[r[0]])(w,r,x.localize,T)})).join("")}function fe(e){var u=e.match(le);return u?u[1].replace(De,"'"):e}},5658:function(e,u,t){"use strict";var n=t(7025);u.ZP=n.default||n},570:function(e,u,t){"use strict";t.d(u,{U:function(){return Vn}});var n={};t.r(n),t.d(n,{boolean:function(){return x},booleanish:function(){return b},commaOrSpaceSeparated:function(){return P},commaSeparated:function(){return T},number:function(){return w},overloadedBoolean:function(){return k},spaceSeparated:function(){return S}});var r={};t.r(r),t.d(r,{attentionMarkers:function(){return ht},contentInitial:function(){return Dt},disable:function(){return Ft},document:function(){return lt},flow:function(){return ct},flowInitial:function(){return st},insideSpan:function(){return pt},string:function(){return ft},text:function(){return dt}});var i=t(3433),o=t(7762),a=t(1413);var l=t(9439);var D=/^(?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])(?:[\$0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088E\u0898-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]|\uDB40[\uDD00-\uDDEF])*$/,s=/^(?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])(?:[\$\x2D0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088E\u0898-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]|\uDB40[\uDD00-\uDDEF])*$/,c={};function f(e,u){return((u||c).jsx?s:D).test(e)}var d=/[ \t\n\f\r]/g;function p(e){return""===e.replace(d,"")}var h=t(3144),F=t(5671),C=(0,h.Z)((function e(u,t,n){(0,F.Z)(this,e),this.property=u,this.normal=t,n&&(this.space=n)}));function E(e,u){for(var t={},n={},r=-1;++r0&&"number"===typeof t.column&&t.column>0)return{line:t.line,column:t.column,offset:"number"===typeof t.offset&&t.offset>-1?t.offset:void 0}}}function ie(e){return e&&"object"===typeof e?"position"in e||"type"in e?ae(e.position):"start"in e||"end"in e?ae(e):"line"in e||"column"in e?oe(e):"":""}function oe(e){return le(e&&e.line)+":"+le(e&&e.column)}function ae(e){return oe(e&&e.start)+"-"+oe(e&&e.end)}function le(e){return e&&"number"===typeof e?e:1}var De=function(e){(0,v.Z)(t,e);var u=(0,g.Z)(t);function t(e,n,r){var i;(0,F.Z)(this,t),i=u.call(this),"string"===typeof n&&(r=n,n=void 0);var o="",l={},D=!1;if(n&&(l="line"in n&&"column"in n||"start"in n&&"end"in n?{place:n}:"type"in n?{ancestors:[n],place:n.position}:(0,a.Z)({},n)),"string"===typeof e?o=e:!l.cause&&e&&(D=!0,o=e.message,l.cause=e),!l.ruleId&&!l.source&&"string"===typeof r){var s=r.indexOf(":");-1===s?l.ruleId=r:(l.source=r.slice(0,s),l.ruleId=r.slice(s+1))}if(!l.place&&l.ancestors&&l.ancestors){var c=l.ancestors[l.ancestors.length-1];c&&(l.place=c.position)}var f=l.place&&"start"in l.place?l.place.start:l.place;return i.ancestors=l.ancestors||void 0,i.cause=l.cause||void 0,i.column=f?f.column:void 0,i.fatal=void 0,i.file,i.message=o,i.line=f?f.line:void 0,i.name=ie(l.place)||"1:1",i.place=l.place||void 0,i.reason=i.message,i.ruleId=l.ruleId||void 0,i.source=l.source||void 0,i.stack=D&&l.cause&&"string"===typeof l.cause.stack?l.cause.stack:"",i.actual,i.expected,i.note,i.url,i}return(0,h.Z)(t)}((0,t(8737).Z)(Error));De.prototype.file="",De.prototype.name="",De.prototype.reason="",De.prototype.message="",De.prototype.stack="",De.prototype.column=void 0,De.prototype.line=void 0,De.prototype.ancestors=void 0,De.prototype.cause=void 0,De.prototype.fatal=void 0,De.prototype.place=void 0,De.prototype.ruleId=void 0,De.prototype.source=void 0;var se={}.hasOwnProperty,ce=new Map,fe=/[A-Z]/g,de=/-([a-z])/g,pe=new Set(["table","tbody","thead","tfoot","tr"]),he=new Set(["td","th"]),Fe="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Ce(e,u){if(!u||void 0===u.Fragment)throw new TypeError("Expected `Fragment` in options");var t,n=u.filePath||void 0;if(u.development){if("function"!==typeof u.jsxDEV)throw new TypeError("Expected `jsxDEV` in options when `development: true`");t=function(e,u){return t;function t(t,n,r,i){var o=Array.isArray(r.children),a=ne(t);return u(n,r,i,o,{columnNumber:a?a.column-1:void 0,fileName:e,lineNumber:a?a.line:void 0},void 0)}}(n,u.jsxDEV)}else{if("function"!==typeof u.jsx)throw new TypeError("Expected `jsx` in production options");if("function"!==typeof u.jsxs)throw new TypeError("Expected `jsxs` in production options");t=function(e,u,t){return n;function n(e,n,r,i){var o=Array.isArray(r.children)?t:u;return i?o(n,r,i):o(n,r)}}(0,u.jsx,u.jsxs)}var r={Fragment:u.Fragment,ancestors:[],components:u.components||{},create:t,elementAttributeNameCase:u.elementAttributeNameCase||"react",evaluater:u.createEvaluater?u.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:u.ignoreInvalidStyle||!1,passKeys:!1!==u.passKeys,passNode:u.passNode||!1,schema:"svg"===u.space?Y:V,stylePropertyNameCase:u.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==u.tableCellAlignToStyle},i=Ee(r,e,void 0);return i&&"string"!==typeof i?i:r.create(e,r.Fragment,{children:i||void 0},void 0)}function Ee(e,u,t){return"element"===u.type?function(e,u,t){var n=e.schema,r=n;"svg"===u.tagName.toLowerCase()&&"html"===n.space&&(r=Y,e.schema=r);e.ancestors.push(u);var i=ye(e,u.tagName,!1),o=function(e,u){var t,n,r={};for(n in u.properties)if("children"!==n&&se.call(u.properties,n)){var i=ge(e,n,u.properties[n]);if(i){var o=(0,l.Z)(i,2),a=o[0],D=o[1];e.tableCellAlignToStyle&&"align"===a&&"string"===typeof D&&he.has(u.tagName)?t=D:r[a]=D}}if(t){(r.style||(r.style={}))["css"===e.stylePropertyNameCase?"text-align":"textAlign"]=t}return r}(e,u),a=ve(e,u);pe.has(u.tagName)&&(a=a.filter((function(e){return"string"!==typeof e||!("object"===typeof(u=e)?"text"===u.type&&p(u.value):p(u));var u})));return me(e,o,i,u),Ae(o,a),e.ancestors.pop(),e.schema=n,e.create(u,i,o,t)}(e,u,t):"mdxFlowExpression"===u.type||"mdxTextExpression"===u.type?function(e,u){if(u.data&&u.data.estree&&e.evaluater){var t=u.data.estree.body[0];return t.type,e.evaluater.evaluateExpression(t.expression)}Be(e,u.position)}(e,u):"mdxJsxFlowElement"===u.type||"mdxJsxTextElement"===u.type?function(e,u,t){var n=e.schema,r=n;"svg"===u.name&&"html"===n.space&&(r=Y,e.schema=r);e.ancestors.push(u);var i=null===u.name?e.Fragment:ye(e,u.name,!0),a=function(e,u){var t,n={},r=(0,o.Z)(u.attributes);try{for(r.s();!(t=r.n()).done;){var i=t.value;if("mdxJsxExpressionAttribute"===i.type)if(i.data&&i.data.estree&&e.evaluater){var a=i.data.estree.body[0];a.type;var l=a.expression;l.type;var D=l.properties[0];D.type,Object.assign(n,e.evaluater.evaluateExpression(D.argument))}else Be(e,u.position);else{var s=i.name,c=void 0;if(i.value&&"object"===typeof i.value)if(i.value.data&&i.value.data.estree&&e.evaluater){var f=i.value.data.estree.body[0];f.type,c=e.evaluater.evaluateExpression(f.expression)}else Be(e,u.position);else c=null===i.value||i.value;n[s]=c}}}catch(d){r.e(d)}finally{r.f()}return n}(e,u),l=ve(e,u);return me(e,a,i,u),Ae(a,l),e.ancestors.pop(),e.schema=n,e.create(u,i,a,t)}(e,u,t):"mdxjsEsm"===u.type?function(e,u){if(u.data&&u.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(u.data.estree);Be(e,u.position)}(e,u):"root"===u.type?function(e,u,t){var n={};return Ae(n,ve(e,u)),e.create(u,e.Fragment,n,t)}(e,u,t):"text"===u.type?function(e,u){return u.value}(0,u):void 0}function me(e,u,t,n){"string"!==typeof t&&t!==e.Fragment&&e.passNode&&(u.node=n)}function Ae(e,u){if(u.length>0){var t=u.length>1?u:u[0];t&&(e.children=t)}}function ve(e,u){for(var t=[],n=-1,r=e.passKeys?new Map:ce;++n4&&"data"===t.slice(0,4)&&X.test(u)){if("-"===u.charAt(4)){var i=u.slice(5).replace(Q,K);n="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{var o=u.slice(4);if(!Q.test(o)){var a=o.replace(G,$);"-"!==a.charAt(0)&&(a="-"+a),u="data"+a}}r=I}return new r(n,u)}(e.schema,u);if(!(null===t||void 0===t||"number"===typeof t&&Number.isNaN(t))){if(Array.isArray(t)&&(t=n.commaSeparated?function(e,u){var t=u||{};return(""===e[e.length-1]?[].concat((0,i.Z)(e),[""]):e).join((t.padRight?" ":"")+","+(!1===t.padLeft?"":" ")).trim()}(t):t.join(" ").trim()),"style"===n.property){var r="object"===typeof t?t:function(e,u){var t={};try{ue(u,i)}catch(o){if(!e.ignoreInvalidStyle){var n=o,r=new De("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw r.file=e.filePath||void 0,r.url=Fe+"#cannot-parse-style-attribute",r}}return t;function i(e,u){var n=e;"--"!==n.slice(0,2)&&("-ms-"===n.slice(0,4)&&(n="ms-"+n.slice(4)),n=n.replace(de,be)),t[n]=u}}(e,String(t));return"css"===e.stylePropertyNameCase&&(r=function(e){var u,t={};for(u in e)se.call(e,u)&&(t[xe(u)]=e[u]);return t}(r)),["style",r]}return["react"===e.elementAttributeNameCase&&n.space?J[n.property]||n.property:n.attribute,t]}}function ye(e,u,t){var n;if(t)if(u.includes(".")){for(var r,i=u.split("."),o=-1;++oo?0:o+u:u>o?o:u,t=t>0?t:0,n.length<1e4)(r=Array.from(n)).unshift(u,t),e.splice.apply(e,(0,i.Z)(r));else for(t&&e.splice(u,t);a0?(Me(e,e.length,0,u),e):u}function Ne(e){for(var u,t,n,r,i,o,a,l={},D=-1;++D\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA])/),$e=Ke(/\s/);function Ke(e){return function(u){return null!==u&&u>-1&&e.test(String.fromCharCode(u))}}function Je(e,u,t,n){var r=n?n-1:Number.POSITIVE_INFINITY,i=0;return function(n){if(Qe(n))return e.enter(t),o(n);return u(n)};function o(n){return Qe(n)&&i++n))return;for(var D,s,c=r.events.length,f=c;f--;)if("exit"===r.events[f][0]&&"chunkFlow"===r.events[f][1].type){if(D){s=r.events[f][1].end;break}D=!0}for(C(o),l=c;lu;){var n=i[t];r.containerState=n[1],n[0].exit.call(r,e)}i.length=u}function E(){u.write([null]),t=void 0,u=void 0,r.containerState._closeFlow=void 0}}},tu={tokenize:function(e,u,t){return Je(e,e.attempt(this.parser.constructs.document,u,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};var nu={tokenize:function(e,u,t){return function(u){return Qe(u)?Je(e,n,"linePrefix")(u):n(u)};function n(e){return null===e||Ye(e)?u(e):t(e)}},partial:!0};var ru={tokenize:function(e,u){var t;return function(u){return e.enter("content"),t=e.enter("chunkContent",{contentType:"content"}),n(u)};function n(u){return null===u?r(u):Ye(u)?e.check(iu,i,r)(u):(e.consume(u),n)}function r(t){return e.exit("chunkContent"),e.exit("content"),u(t)}function i(u){return e.consume(u),e.exit("chunkContent"),t.next=e.enter("chunkContent",{contentType:"content",previous:t}),t=t.next,n}},resolve:function(e){return Ne(e),e}},iu={tokenize:function(e,u,t){var n=this;return function(u){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),Je(e,r,"linePrefix")};function r(r){if(null===r||Ye(r))return t(r);var i=n.events[n.events.length-1];return!n.parser.constructs.disable.null.includes("codeIndented")&&i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?u(r):e.interrupt(n.parser.constructs.flow,t,u)(r)}},partial:!0};var ou={tokenize:function(e){var u=this,t=e.attempt(nu,(function(n){if(null===n)return void e.consume(n);return e.enter("lineEndingBlank"),e.consume(n),e.exit("lineEndingBlank"),u.currentConstruct=void 0,t}),e.attempt(this.parser.constructs.flowInitial,n,Je(e,e.attempt(this.parser.constructs.flow,n,e.attempt(ru,n)),"linePrefix")));return t;function n(n){if(null!==n)return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),u.currentConstruct=void 0,t;e.consume(n)}}};var au={resolveAll:cu()},lu=su("string"),Du=su("text");function su(e){return{tokenize:function(u){var t=this,n=this.parser.constructs[e],r=u.attempt(n,i,o);return i;function i(e){return l(e)?r(e):o(e)}function o(e){if(null!==e)return u.enter("data"),u.consume(e),a;u.consume(e)}function a(e){return l(e)?(u.exit("data"),r(e)):(u.consume(e),a)}function l(e){if(null===e)return!0;var u=n[e],r=-1;if(u)for(;++r-1){var a=t[0];"string"===typeof a?t[0]=a.slice(r):t.shift()}o>0&&t.push(e[i].slice(0,o))}return t}(a,e)}function d(){var e=n;return{line:e.line,column:e.column,offset:e.offset,_index:e._index,_bufferIndex:e._bufferIndex}}function p(){for(var e;n._index=3&&(null===i||Ye(i))?(e.exit("thematicBreak"),u(i)):t(i)}function o(u){return u===n?(e.consume(u),r++,o):(e.exit("thematicBreakSequence"),Qe(u)?Je(e,i,"whitespace")(u):i(u))}}};var Cu={name:"list",tokenize:function(e,u,t){var n=this,r=n.events[n.events.length-1],i=r&&"linePrefix"===r[1].type?r[2].sliceSerialize(r[1],!0).length:0,o=0;return function(u){var r=n.containerState.type||(42===u||43===u||45===u?"listUnordered":"listOrdered");if("listUnordered"===r?!n.containerState.marker||u===n.containerState.marker:qe(u)){if(n.containerState.type||(n.containerState.type=r,e.enter(r,{_container:!0})),"listUnordered"===r)return e.enter("listItemPrefix"),42===u||45===u?e.check(Fu,t,l)(u):l(u);if(!n.interrupt||49===u)return e.enter("listItemPrefix"),e.enter("listItemValue"),a(u)}return t(u)};function a(u){return qe(u)&&++o<10?(e.consume(u),a):(!n.interrupt||o<2)&&(n.containerState.marker?u===n.containerState.marker:41===u||46===u)?(e.exit("listItemValue"),l(u)):t(u)}function l(u){return e.enter("listItemMarker"),e.consume(u),e.exit("listItemMarker"),n.containerState.marker=n.containerState.marker||u,e.check(nu,n.interrupt?t:D,e.attempt(Eu,c,s))}function D(e){return n.containerState.initialBlankLine=!0,i++,c(e)}function s(u){return Qe(u)?(e.enter("listItemPrefixWhitespace"),e.consume(u),e.exit("listItemPrefixWhitespace"),c):t(u)}function c(t){return n.containerState.size=i+n.sliceSerialize(e.exit("listItemPrefix"),!0).length,u(t)}},continuation:{tokenize:function(e,u,t){var n=this;return n.containerState._closeFlow=void 0,e.check(nu,r,i);function r(t){return n.containerState.furtherBlankLines=n.containerState.furtherBlankLines||n.containerState.initialBlankLine,Je(e,u,"listItemIndent",n.containerState.size+1)(t)}function i(t){return n.containerState.furtherBlankLines||!Qe(t)?(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,o(t)):(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,e.attempt(mu,u,o)(t))}function o(r){return n.containerState._closeFlow=!0,n.interrupt=void 0,Je(e,e.attempt(Cu,u,t),"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(r)}}},exit:function(e){e.exit(this.containerState.type)}},Eu={tokenize:function(e,u,t){var n=this;return Je(e,(function(e){var r=n.events[n.events.length-1];return!Qe(e)&&r&&"listItemPrefixWhitespace"===r[1].type?u(e):t(e)}),"listItemPrefixWhitespace",n.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},mu={tokenize:function(e,u,t){var n=this;return Je(e,(function(e){var r=n.events[n.events.length-1];return r&&"listItemIndent"===r[1].type&&r[2].sliceSerialize(r[1],!0).length===n.containerState.size?u(e):t(e)}),"listItemIndent",n.containerState.size+1)},partial:!0};var Au={name:"blockQuote",tokenize:function(e,u,t){var n=this;return function(u){if(62===u){var i=n.containerState;return i.open||(e.enter("blockQuote",{_container:!0}),i.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(u),e.exit("blockQuoteMarker"),r}return t(u)};function r(t){return Qe(t)?(e.enter("blockQuotePrefixWhitespace"),e.consume(t),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),u):(e.exit("blockQuotePrefix"),u(t))}},continuation:{tokenize:function(e,u,t){var n=this;return function(u){if(Qe(u))return Je(e,r,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u);return r(u)};function r(n){return e.attempt(Au,u,t)(n)}}},exit:function(e){e.exit("blockQuote")}};function vu(e,u,t,n,r,i,o,a,l){var D=l||Number.POSITIVE_INFINITY,s=0;return function(u){if(60===u)return e.enter(n),e.enter(r),e.enter(i),e.consume(u),e.exit(i),c;if(null===u||32===u||41===u||Ue(u))return t(u);return e.enter(n),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),p(u)};function c(t){return 62===t?(e.enter(i),e.consume(t),e.exit(i),e.exit(r),e.exit(n),u):(e.enter(a),e.enter("chunkString",{contentType:"string"}),f(t))}function f(u){return 62===u?(e.exit("chunkString"),e.exit(a),c(u)):null===u||60===u||Ye(u)?t(u):(e.consume(u),92===u?d:f)}function d(u){return 60===u||62===u||92===u?(e.consume(u),f):f(u)}function p(r){return s||null!==r&&41!==r&&!Xe(r)?s999||null===c||91===c||93===c&&!o||94===c&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?t(c):93===c?(e.exit(i),e.enter(r),e.consume(c),e.exit(r),e.exit(n),u):Ye(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),D):(e.enter("chunkString",{contentType:"string"}),s(c))}function s(u){return null===u||91===u||93===u||Ye(u)||l++>999?(e.exit("chunkString"),D(u)):(e.consume(u),o||(o=!Qe(u)),92===u?c:s)}function c(u){return 91===u||92===u||93===u?(e.consume(u),l++,s):s(u)}}function yu(e,u,t,n,r,i){var o;return function(u){if(34===u||39===u||40===u)return e.enter(n),e.enter(r),e.consume(u),e.exit(r),o=40===u?41:u,a;return t(u)};function a(t){return t===o?(e.enter(r),e.consume(t),e.exit(r),e.exit(n),u):(e.enter(i),l(t))}function l(u){return u===o?(e.exit(i),a(o)):null===u?t(u):Ye(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),Je(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),D(u))}function D(u){return u===o||null===u||Ye(u)?(e.exit("chunkString"),l(u)):(e.consume(u),92===u?s:D)}function s(u){return u===o||92===u?(e.consume(u),D):D(u)}}function Bu(e,u){var t;return function n(r){if(Ye(r))return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t=!0,n;if(Qe(r))return Je(e,n,t?"linePrefix":"lineSuffix")(r);return u(r)}}function xu(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var bu={name:"definition",tokenize:function(e,u,t){var n,r=this;return function(u){return e.enter("definition"),function(u){return gu.call(r,e,i,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(u)}(u)};function i(u){return n=xu(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===u?(e.enter("definitionMarker"),e.consume(u),e.exit("definitionMarker"),o):t(u)}function o(u){return Xe(u)?Bu(e,a)(u):a(u)}function a(u){return vu(e,l,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(u)}function l(u){return e.attempt(ku,D,D)(u)}function D(u){return Qe(u)?Je(e,s,"whitespace")(u):s(u)}function s(i){return null===i||Ye(i)?(e.exit("definition"),r.parser.defined.push(n),u(i)):t(i)}}},ku={tokenize:function(e,u,t){return function(u){return Xe(u)?Bu(e,n)(u):t(u)};function n(u){return yu(e,r,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(u)}function r(u){return Qe(u)?Je(e,i,"whitespace")(u):i(u)}function i(e){return null===e||Ye(e)?u(e):t(e)}},partial:!0};var wu={name:"codeIndented",tokenize:function(e,u,t){var n=this;return function(u){return e.enter("codeIndented"),Je(e,r,"linePrefix",5)(u)};function r(e){var u=n.events[n.events.length-1];return u&&"linePrefix"===u[1].type&&u[2].sliceSerialize(u[1],!0).length>=4?i(e):t(e)}function i(u){return null===u?a(u):Ye(u)?e.attempt(Su,i,a)(u):(e.enter("codeFlowValue"),o(u))}function o(u){return null===u||Ye(u)?(e.exit("codeFlowValue"),i(u)):(e.consume(u),o)}function a(t){return e.exit("codeIndented"),u(t)}}},Su={tokenize:function(e,u,t){var n=this;return r;function r(u){return n.parser.lazy[n.now().line]?t(u):Ye(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),r):Je(e,i,"linePrefix",5)(u)}function i(e){var i=n.events[n.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?u(e):Ye(e)?r(e):t(e)}},partial:!0};var Tu={name:"headingAtx",tokenize:function(e,u,t){var n=0;return function(u){return e.enter("atxHeading"),function(u){return e.enter("atxHeadingSequence"),r(u)}(u)};function r(u){return 35===u&&n++<6?(e.consume(u),r):null===u||Xe(u)?(e.exit("atxHeadingSequence"),i(u)):t(u)}function i(t){return 35===t?(e.enter("atxHeadingSequence"),o(t)):null===t||Ye(t)?(e.exit("atxHeading"),u(t)):Qe(t)?Je(e,i,"whitespace")(t):(e.enter("atxHeadingText"),a(t))}function o(u){return 35===u?(e.consume(u),o):(e.exit("atxHeadingSequence"),i(u))}function a(u){return null===u||35===u||Xe(u)?(e.exit("atxHeadingText"),i(u)):(e.consume(u),a)}},resolve:function(e,u){var t,n,r=e.length-2,i=3;"whitespace"===e[i][1].type&&(i+=2);r-2>i&&"whitespace"===e[r][1].type&&(r-=2);"atxHeadingSequence"===e[r][1].type&&(i===r-1||r-4>i&&"whitespace"===e[r-2][1].type)&&(r-=i+1===r?2:4);r>i&&(t={type:"atxHeadingText",start:e[i][1].start,end:e[r][1].end},n={type:"chunkText",start:e[i][1].start,end:e[r][1].end,contentType:"text"},Me(e,i,r-i+1,[["enter",t,u],["enter",n,u],["exit",n,u],["exit",t,u]]));return e}};var Pu={name:"setextUnderline",tokenize:function(e,u,t){var n,r=this;return function(u){var o,a=r.events.length;for(;a--;)if("lineEnding"!==r.events[a][1].type&&"linePrefix"!==r.events[a][1].type&&"content"!==r.events[a][1].type){o="paragraph"===r.events[a][1].type;break}if(!r.parser.lazy[r.now().line]&&(r.interrupt||o))return e.enter("setextHeadingLine"),n=u,function(u){return e.enter("setextHeadingLineSequence"),i(u)}(u);return t(u)};function i(u){return u===n?(e.consume(u),i):(e.exit("setextHeadingLineSequence"),Qe(u)?Je(e,o,"lineSuffix")(u):o(u))}function o(n){return null===n||Ye(n)?(e.exit("setextHeadingLine"),u(n)):t(n)}},resolveTo:function(e,u){var t,n,r,i=e.length;for(;i--;)if("enter"===e[i][0]){if("content"===e[i][1].type){t=i;break}"paragraph"===e[i][1].type&&(n=i)}else"content"===e[i][1].type&&e.splice(i,1),r||"definition"!==e[i][1].type||(r=i);var o={type:"setextHeading",start:Object.assign({},e[n][1].start),end:Object.assign({},e[e.length-1][1].end)};e[n][1].type="setextHeadingText",r?(e.splice(n,0,["enter",o,u]),e.splice(r+1,0,["exit",e[t][1],u]),e[t][1].end=Object.assign({},e[r][1].end)):e[t][1]=o;return e.push(["exit",o,u]),e}};var Ou=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Mu=["pre","script","style","textarea"],Iu={name:"htmlFlow",tokenize:function(e,u,t){var n,r,i,o,a,l=this;return function(u){return function(u){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(u),D}(u)};function D(o){return 33===o?(e.consume(o),s):47===o?(e.consume(o),r=!0,d):63===o?(e.consume(o),n=3,l.interrupt?u:I):Re(o)?(e.consume(o),i=String.fromCharCode(o),p):t(o)}function s(r){return 45===r?(e.consume(r),n=2,c):91===r?(e.consume(r),n=5,o=0,f):Re(r)?(e.consume(r),n=4,l.interrupt?u:I):t(r)}function c(n){return 45===n?(e.consume(n),l.interrupt?u:I):t(n)}function f(n){var r="CDATA[";return n===r.charCodeAt(o++)?(e.consume(n),o===r.length?l.interrupt?u:b:f):t(n)}function d(u){return Re(u)?(e.consume(u),i=String.fromCharCode(u),p):t(u)}function p(o){if(null===o||47===o||62===o||Xe(o)){var a=47===o,D=i.toLowerCase();return a||r||!Mu.includes(D)?Ou.includes(i.toLowerCase())?(n=6,a?(e.consume(o),h):l.interrupt?u(o):b(o)):(n=7,l.interrupt&&!l.parser.lazy[l.now().line]?t(o):r?F(o):C(o)):(n=1,l.interrupt?u(o):b(o))}return 45===o||He(o)?(e.consume(o),i+=String.fromCharCode(o),p):t(o)}function h(n){return 62===n?(e.consume(n),l.interrupt?u:b):t(n)}function F(u){return Qe(u)?(e.consume(u),F):B(u)}function C(u){return 47===u?(e.consume(u),B):58===u||95===u||Re(u)?(e.consume(u),E):Qe(u)?(e.consume(u),C):B(u)}function E(u){return 45===u||46===u||58===u||95===u||He(u)?(e.consume(u),E):m(u)}function m(u){return 61===u?(e.consume(u),A):Qe(u)?(e.consume(u),m):C(u)}function A(u){return null===u||60===u||61===u||62===u||96===u?t(u):34===u||39===u?(e.consume(u),a=u,v):Qe(u)?(e.consume(u),A):g(u)}function v(u){return u===a?(e.consume(u),a=null,y):null===u||Ye(u)?t(u):(e.consume(u),v)}function g(u){return null===u||34===u||39===u||47===u||60===u||61===u||62===u||96===u||Xe(u)?m(u):(e.consume(u),g)}function y(e){return 47===e||62===e||Qe(e)?C(e):t(e)}function B(u){return 62===u?(e.consume(u),x):t(u)}function x(u){return null===u||Ye(u)?b(u):Qe(u)?(e.consume(u),x):t(u)}function b(u){return 45===u&&2===n?(e.consume(u),T):60===u&&1===n?(e.consume(u),P):62===u&&4===n?(e.consume(u),N):63===u&&3===n?(e.consume(u),I):93===u&&5===n?(e.consume(u),M):!Ye(u)||6!==n&&7!==n?null===u||Ye(u)?(e.exit("htmlFlowData"),k(u)):(e.consume(u),b):(e.exit("htmlFlowData"),e.check(Nu,_,k)(u))}function k(u){return e.check(_u,w,_)(u)}function w(u){return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),S}function S(u){return null===u||Ye(u)?k(u):(e.enter("htmlFlowData"),b(u))}function T(u){return 45===u?(e.consume(u),I):b(u)}function P(u){return 47===u?(e.consume(u),i="",O):b(u)}function O(u){if(62===u){var t=i.toLowerCase();return Mu.includes(t)?(e.consume(u),N):b(u)}return Re(u)&&i.length<8?(e.consume(u),i+=String.fromCharCode(u),O):b(u)}function M(u){return 93===u?(e.consume(u),I):b(u)}function I(u){return 62===u?(e.consume(u),N):45===u&&2===n?(e.consume(u),I):b(u)}function N(u){return null===u||Ye(u)?(e.exit("htmlFlowData"),_(u)):(e.consume(u),N)}function _(t){return e.exit("htmlFlow"),u(t)}},resolveTo:function(e){var u=e.length;for(;u--&&("enter"!==e[u][0]||"htmlFlow"!==e[u][1].type););u>1&&"linePrefix"===e[u-2][1].type&&(e[u][1].start=e[u-2][1].start,e[u+1][1].start=e[u-2][1].start,e.splice(u-2,2));return e},concrete:!0},Nu={tokenize:function(e,u,t){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),e.attempt(nu,u,t)}},partial:!0},_u={tokenize:function(e,u,t){var n=this;return function(u){if(Ye(u))return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),r;return t(u)};function r(e){return n.parser.lazy[n.now().line]?t(e):u(e)}},partial:!0};var Lu={tokenize:function(e,u,t){var n=this;return function(u){if(null===u)return t(u);return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),r};function r(e){return n.parser.lazy[n.now().line]?t(e):u(e)}},partial:!0},ju={name:"codeFenced",tokenize:function(e,u,t){var n,r=this,i={tokenize:function(e,u,t){var i=0;return o;function o(u){return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),l}function l(u){return e.enter("codeFencedFence"),Qe(u)?Je(e,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u):D(u)}function D(u){return u===n?(e.enter("codeFencedFenceSequence"),s(u)):t(u)}function s(u){return u===n?(i++,e.consume(u),s):i>=a?(e.exit("codeFencedFenceSequence"),Qe(u)?Je(e,c,"whitespace")(u):c(u)):t(u)}function c(n){return null===n||Ye(n)?(e.exit("codeFencedFence"),u(n)):t(n)}},partial:!0},o=0,a=0;return function(u){return function(u){var t=r.events[r.events.length-1];return o=t&&"linePrefix"===t[1].type?t[2].sliceSerialize(t[1],!0).length:0,n=u,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),l(u)}(u)};function l(u){return u===n?(a++,e.consume(u),l):a<3?t(u):(e.exit("codeFencedFenceSequence"),Qe(u)?Je(e,D,"whitespace")(u):D(u))}function D(t){return null===t||Ye(t)?(e.exit("codeFencedFence"),r.interrupt?u(t):e.check(Lu,d,E)(t)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),s(t))}function s(u){return null===u||Ye(u)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),D(u)):Qe(u)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Je(e,c,"whitespace")(u)):96===u&&u===n?t(u):(e.consume(u),s)}function c(u){return null===u||Ye(u)?D(u):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),f(u))}function f(u){return null===u||Ye(u)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),D(u)):96===u&&u===n?t(u):(e.consume(u),f)}function d(u){return e.attempt(i,E,p)(u)}function p(u){return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),h}function h(u){return o>0&&Qe(u)?Je(e,F,"linePrefix",o+1)(u):F(u)}function F(u){return null===u||Ye(u)?e.check(Lu,d,E)(u):(e.enter("codeFlowValue"),C(u))}function C(u){return null===u||Ye(u)?(e.exit("codeFlowValue"),F(u)):(e.consume(u),C)}function E(t){return e.exit("codeFenced"),u(t)}},concrete:!0};var zu=document.createElement("i");function Ru(e){var u="&"+e+";";zu.innerHTML=u;var t=zu.textContent;return(59!==t.charCodeAt(t.length-1)||"semi"===e)&&(t!==u&&t)}var Hu={name:"characterReference",tokenize:function(e,u,t){var n,r,i=this,o=0;return function(u){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(u),e.exit("characterReferenceMarker"),a};function a(u){return 35===u?(e.enter("characterReferenceMarkerNumeric"),e.consume(u),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),n=31,r=He,D(u))}function l(u){return 88===u||120===u?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(u),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),n=6,r=We,D):(e.enter("characterReferenceValue"),n=7,r=qe,D(u))}function D(a){if(59===a&&o){var l=e.exit("characterReferenceValue");return r!==He||Ru(i.sliceSerialize(l))?(e.enter("characterReferenceMarker"),e.consume(a),e.exit("characterReferenceMarker"),e.exit("characterReference"),u):t(a)}return r(a)&&o++1&&e[s][1].end.offset-e[s][1].start.offset>1?2:1;var c=Object.assign({},e[t][1].end),f=Object.assign({},e[s][1].start);$u(c,-a),$u(f,a),i={type:a>1?"strongSequence":"emphasisSequence",start:c,end:Object.assign({},e[t][1].end)},o={type:a>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[s][1].start),end:f},r={type:a>1?"strongText":"emphasisText",start:Object.assign({},e[t][1].end),end:Object.assign({},e[s][1].start)},n={type:a>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},o.end)},e[t][1].end=Object.assign({},i.start),e[s][1].start=Object.assign({},o.end),l=[],e[t][1].end.offset-e[t][1].start.offset&&(l=Ie(l,[["enter",e[t][1],u],["exit",e[t][1],u]])),l=Ie(l,[["enter",n,u],["enter",i,u],["exit",i,u],["enter",r,u]]),l=Ie(l,du(u.parser.constructs.insideSpan.null,e.slice(t+1,s),u)),l=Ie(l,[["exit",r,u],["enter",o,u],["exit",o,u],["exit",n,u]]),e[s][1].end.offset-e[s][1].start.offset?(D=2,l=Ie(l,[["enter",e[s][1],u],["exit",e[s][1],u]])):D=0,Me(e,t-1,s-t+3,l),s=t+l.length-D-2;break}s=-1;for(;++s13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||65535===(65535&t)||65534===(65535&t)||t>1114111?"\ufffd":String.fromCodePoint(t)}var At=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function vt(e,u,t){if(u)return u;if(35===t.charCodeAt(0)){var n=t.charCodeAt(1),r=120===n||88===n;return mt(t.slice(r?2:1),r?16:10)}return Ru(t)||e}var gt={}.hasOwnProperty;function yt(e,u,t){return"string"!==typeof u&&(t=u,u=void 0),function(e){var u={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(ee),autolinkProtocol:x,autolinkEmail:x,atxHeading:i(G),blockQuote:i(W),characterEscape:x,characterReference:x,codeFenced:i(V),codeFencedFenceInfo:o,codeFencedFenceMeta:o,codeIndented:i(V,o),codeText:i(Y,o),codeTextData:x,data:x,codeFlowValue:x,definition:i(X),definitionDestinationString:o,definitionLabelString:o,definitionTitleString:o,emphasis:i(Q),hardBreakEscape:i($),hardBreakTrailing:i($),htmlFlow:i(K,o),htmlFlowData:x,htmlText:i(K,o),htmlTextData:x,image:i(J),label:o,link:i(ee),listItem:i(te),listItemValue:f,listOrdered:i(ue,c),listUnordered:i(ue),paragraph:i(ne),reference:z,referenceString:o,resourceDestinationString:o,resourceTitleString:o,setextHeading:i(G),strong:i(re),thematicBreak:i(ae)},exit:{atxHeading:l(),atxHeadingSequence:v,autolink:l(),autolinkEmail:q,autolinkProtocol:U,blockQuote:l(),characterEscapeValue:b,characterReferenceMarkerHexadecimal:H,characterReferenceMarkerNumeric:H,characterReferenceValue:Z,codeFenced:l(F),codeFencedFence:h,codeFencedFenceInfo:d,codeFencedFenceMeta:p,codeFlowValue:b,codeIndented:l(C),codeText:l(P),codeTextData:b,data:b,definition:l(),definitionDestinationString:A,definitionLabelString:E,definitionTitleString:m,emphasis:l(),hardBreakEscape:l(w),hardBreakTrailing:l(w),htmlFlow:l(S),htmlFlowData:b,htmlText:l(T),htmlTextData:b,image:l(M),label:N,labelText:I,lineEnding:k,link:l(O),listItem:l(),listOrdered:l(),listUnordered:l(),paragraph:l(),referenceString:R,resourceDestinationString:_,resourceTitleString:L,resource:j,setextHeading:l(B),setextHeadingLineSequence:y,setextHeadingText:g,strong:l(),thematicBreak:l()}};xt(u,(e||{}).mdastExtensions||[]);var t={};return n;function n(e){for(var n={type:"root",children:[]},i={stack:[n],tokenStack:[],config:u,enter:a,exit:D,buffer:o,resume:s,data:t},l=[],c=-1;++c0){var d=i.tokenStack[i.tokenStack.length-1];(d[1]||kt).call(i,void 0,d[0])}for(n.position={start:Bt(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:Bt(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},c=-1;++c1&&void 0!==arguments[1]?arguments[1]:{},t=u.json,n=u.lossy,r=[];return jt(!(t||n),!!t,new Map,r)(e),r},Rt="function"===typeof structuredClone?function(e,u){return u&&("json"in u||"lossy"in u)?Ot(zt(e,u)):structuredClone(e)}:function(e,u){return Ot(zt(e,u))};function Ht(e){for(var u=[],t=-1,n=0,r=0;++t55295&&i<57344){var a=e.charCodeAt(t+1);i<56320&&a>56319&&a<57344?(o=String.fromCharCode(i,a),r=1):o="\ufffd"}else o=String.fromCharCode(i);o&&(u.push(e.slice(n,t),encodeURIComponent(o)),n=t+r+1,o=""),r&&(t+=r,r=0)}return u.join("")+e.slice(n)}function Zt(e,u){var t=[{type:"text",value:"\u21a9"}];return u>1&&t.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(u)}]}),t}function Ut(e,u){return"Back to reference "+(e+1)+(u>1?"-"+u:"")}var qt=t(4925),Wt=function(e){if(null===e||void 0===e)return Xt;if("function"===typeof e)return Yt(e);if("object"===typeof e)return Array.isArray(e)?Vt(e):function(e){var u=e;return Yt(t);function t(t){var n,r=t;for(n in e)if(r[n]!==u[n])return!1;return!0}}(e);if("string"===typeof e)return function(e){return Yt(u);function u(u){return u&&u.type===e}}(e);throw new Error("Expected function, string, or object as test")};function Vt(e){for(var u=[],t=-1;++t":"")+")"})}return c;function c(){var D,s,c,f=Gt;if((!u||i(r,a,l[l.length-1]||void 0))&&(f=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[true,e];return null===e||void 0===e?Gt:[e]}(t(r,l)),false===f[0]))return f;if("children"in r&&r.children){var d=r;if(d.children&&"skip"!==f[0])for(s=(n?d.children.length:-1)+o,c=l.concat(d);s>-1&&s1:u}function un(e){for(var u=String(e),t=/\r?\n|\r/g,n=t.exec(u),r=0,i=[];n;)i.push(tn(u.slice(r,n.index),r>0,!0),n[0]),r=n.index+n[0].length,n=t.exec(u);return i.push(tn(u.slice(r),r>0,!1)),i.join("")}function tn(e,u,t){var n=0,r=e.length;if(u)for(var i=e.codePointAt(n);9===i||32===i;)n++,i=e.codePointAt(n);if(t)for(var o=e.codePointAt(r-1);9===o||32===o;)r--,o=e.codePointAt(r-1);return r>n?e.slice(n,r):""}var nn={blockquote:function(e,u){var t={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(u),!0)};return e.patch(u,t),e.applyData(u,t)},break:function(e,u){var t={type:"element",tagName:"br",properties:{},children:[]};return e.patch(u,t),[e.applyData(u,t),{type:"text",value:"\n"}]},code:function(e,u){var t=u.value?u.value+"\n":"",n={};u.lang&&(n.className=["language-"+u.lang]);var r={type:"element",tagName:"code",properties:n,children:[{type:"text",value:t}]};return u.meta&&(r.data={meta:u.meta}),e.patch(u,r),r={type:"element",tagName:"pre",properties:{},children:[r=e.applyData(u,r)]},e.patch(u,r),r},delete:function(e,u){var t={type:"element",tagName:"del",properties:{},children:e.all(u)};return e.patch(u,t),e.applyData(u,t)},emphasis:function(e,u){var t={type:"element",tagName:"em",properties:{},children:e.all(u)};return e.patch(u,t),e.applyData(u,t)},footnoteReference:function(e,u){var t,n="string"===typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",r=String(u.identifier).toUpperCase(),i=Ht(r.toLowerCase()),o=e.footnoteOrder.indexOf(r),a=e.footnoteCounts.get(r);void 0===a?(a=0,e.footnoteOrder.push(r),t=e.footnoteOrder.length):t=o+1,a+=1,e.footnoteCounts.set(r,a);var l={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(t)}]};e.patch(u,l);var D={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(u,D),e.applyData(u,D)},heading:function(e,u){var t={type:"element",tagName:"h"+u.depth,properties:{},children:e.all(u)};return e.patch(u,t),e.applyData(u,t)},html:function(e,u){if(e.options.allowDangerousHtml){var t={type:"raw",value:u.value};return e.patch(u,t),e.applyData(u,t)}},imageReference:function(e,u){var t=String(u.identifier).toUpperCase(),n=e.definitionById.get(t);if(!n)return Jt(e,u);var r={src:Ht(n.url||""),alt:u.alt};null!==n.title&&void 0!==n.title&&(r.title=n.title);var i={type:"element",tagName:"img",properties:r,children:[]};return e.patch(u,i),e.applyData(u,i)},image:function(e,u){var t={src:Ht(u.url)};null!==u.alt&&void 0!==u.alt&&(t.alt=u.alt),null!==u.title&&void 0!==u.title&&(t.title=u.title);var n={type:"element",tagName:"img",properties:t,children:[]};return e.patch(u,n),e.applyData(u,n)},inlineCode:function(e,u){var t={type:"text",value:u.value.replace(/\r?\n|\r/g," ")};e.patch(u,t);var n={type:"element",tagName:"code",properties:{},children:[t]};return e.patch(u,n),e.applyData(u,n)},linkReference:function(e,u){var t=String(u.identifier).toUpperCase(),n=e.definitionById.get(t);if(!n)return Jt(e,u);var r={href:Ht(n.url||"")};null!==n.title&&void 0!==n.title&&(r.title=n.title);var i={type:"element",tagName:"a",properties:r,children:e.all(u)};return e.patch(u,i),e.applyData(u,i)},link:function(e,u){var t={href:Ht(u.url)};null!==u.title&&void 0!==u.title&&(t.title=u.title);var n={type:"element",tagName:"a",properties:t,children:e.all(u)};return e.patch(u,n),e.applyData(u,n)},listItem:function(e,u,t){var n=e.all(u),r=t?function(e){var u=!1;if("list"===e.type){u=e.spread||!1;for(var t=e.children,n=-1;!u&&++n0&&l.children.unshift({type:"text",value:" "}),l.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:u.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}for(var s=-1;++s0){var o={type:"element",tagName:"tbody",properties:{},children:e.wrap(t,!0)},a=ne(u.children[1]),l=te(u.children[u.children.length-1]);a&&l&&(o.position={start:a,end:l}),r.push(o)}var D={type:"element",tagName:"table",properties:{},children:e.wrap(r,!0)};return e.patch(u,D),e.applyData(u,D)},tableCell:function(e,u){var t={type:"element",tagName:"td",properties:{},children:e.all(u)};return e.patch(u,t),e.applyData(u,t)},tableRow:function(e,u,t){for(var n=t?t.children:void 0,r=0===(n?n.indexOf(u):1)?"th":"td",i=t&&"table"===t.type?t.align:void 0,o=i?i.length:u.children.length,a=-1,l=[];++a0&&t.push({type:"text",value:"\n"}),t}function dn(e){for(var u=0,t=e.charCodeAt(u);9===t||32===t;)u++,t=e.charCodeAt(u);return e.slice(u)}function pn(e,u){var t=function(e,u){var t=u||ln,n=new Map,r=new Map,o=new Map,l=(0,a.Z)((0,a.Z)({},nn),t.handlers),D={all:function(e){var u=[];if("children"in e)for(var t=e.children,n=-1;++n0&&h.push({type:"text",value:" "});var C="string"===typeof t?t:t(D,p);"string"===typeof C&&(C={type:"text",value:C}),h.push({type:"element",tagName:"a",properties:{href:"#"+u+"fnref-"+d+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:"string"===typeof n?n:n(D,p),className:["data-footnote-backref"]},children:Array.isArray(C)?C:[C]})}var E=c[c.length-1];if(E&&"element"===E.type&&"p"===E.tagName){var m,A=E.children[E.children.length-1];A&&"text"===A.type?A.value+=" ":E.children.push({type:"text",value:" "}),(m=E.children).push.apply(m,h)}else c.push.apply(c,h);var v={type:"element",tagName:"li",properties:{id:u+"fn-"+d},children:e.wrap(c,!0)};e.patch(s,v),l.push(v)}}if(0!==l.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:(0,a.Z)((0,a.Z)({},Rt(o)),{},{id:"footnote-label"}),children:[{type:"text",value:r}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:"\n"}]}}(t),o=Array.isArray(n)?{type:"root",children:n}:n||{type:"root",children:[]};return r&&o.children.push({type:"text",value:"\n"},r),o}function hn(e,u){return e&&"run"in e?function(){var t=(0,St.Z)(Tt.mark((function t(n,r){var i;return Tt.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=pn(n,(0,a.Z)({file:r},u)),t.next=3,e.run(i,r);case 3:case"end":return t.stop()}}),t)})));return function(e,u){return t.apply(this,arguments)}}():function(t,n){return pn(t,(0,a.Z)({file:n},u||e))}}var Fn=t(4506);function Cn(e){if(e)throw e}var En=t(1132);function mn(e){if("object"!==typeof e||null===e)return!1;var u=Object.getPrototypeOf(e);return(null===u||u===Object.prototype||null===Object.getPrototypeOf(u))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function An(e,u){var t;return function(){for(var u=arguments.length,i=new Array(u),o=0;oi.length;l&&i.push(n);try{a=e.apply(this,i)}catch(s){var D=s;if(l&&t)throw D;return n(D)}l||(a&&a.then&&"function"===typeof a.then?a.then(r,n):a instanceof Error?n(a):r(a))};function n(e){if(!t){t=!0;for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;ie.length){for(;i--;)if(47===e.codePointAt(i)){if(t){n=i+1;break}}else r<0&&(t=!0,r=i+1);return r<0?"":e.slice(n,r)}if(u===e)return"";var o=-1,a=u.length-1;for(;i--;)if(47===e.codePointAt(i)){if(t){n=i+1;break}}else o<0&&(t=!0,o=i+1),a>-1&&(e.codePointAt(i)===u.codePointAt(a--)?a<0&&(r=i):(a=-1,r=o));n===r?r=o:r<0&&(r=e.length);return e.slice(n,r)},dirname:function(e){if(yn(e),0===e.length)return".";var u,t=-1,n=e.length;for(;--n;)if(47===e.codePointAt(n)){if(u){t=n;break}}else u||(u=!0);return t<0?47===e.codePointAt(0)?"/":".":1===t&&47===e.codePointAt(0)?"//":e.slice(0,t)},extname:function(e){yn(e);var u,t=e.length,n=-1,r=0,i=-1,o=0;for(;t--;){var a=e.codePointAt(t);if(47!==a)n<0&&(u=!0,n=t+1),46===a?i<0?i=t:1!==o&&(o=1):i>-1&&(o=-1);else if(u){r=t+1;break}}if(i<0||n<0||0===o||1===o&&i===n-1&&i===r+1)return"";return e.slice(i,n)},join:function(){for(var e,u=-1,t=arguments.length,n=new Array(t),r=0;r2){if((n=r.lastIndexOf("/"))!==r.length-1){n<0?(r="",i=0):i=(r=r.slice(0,n)).length-1-r.lastIndexOf("/"),o=l,a=0;continue}}else if(r.length>0){r="",i=0,o=l,a=0;continue}u&&(r=r.length>0?r+"/..":"..",i=2)}else r.length>0?r+="/"+e.slice(o+1,l):r=e.slice(o+1,l),i=l-o-1;o=l,a=0}else 46===t&&a>-1?a++:a=-1}return r}(e,!u);return 0!==t.length||u||(t="."),t.length>0&&47===e.codePointAt(e.length-1)&&(t+="/"),u?"/"+t:t}function yn(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var Bn={cwd:function(){return"/"}};function xn(e){return Boolean(null!==e&&"object"===typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}function bn(e){if("string"===typeof e)e=new URL(e);else if(!xn(e)){var u=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw u.code="ERR_INVALID_ARG_TYPE",u}if("file:"!==e.protocol){var t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return function(e){if(""!==e.hostname){var u=new TypeError('File URL host must be "localhost" or empty on darwin');throw u.code="ERR_INVALID_FILE_URL_HOST",u}var t=e.pathname,n=-1;for(;++n1?l-1:0),s=1;s1?n-1:0),o=1;o0){var o=(0,Fn.Z)(t),a=o[0],l=o.slice(1),D=u[r][1];mn(D)&&mn(a)&&(a=En(!0,D,a)),u[r]=[e,a].concat((0,i.Z)(l))}}}}]),t}(On),Nn=(new In).freeze();function _n(e,u){if("function"!==typeof u)throw new TypeError("Cannot `"+e+"` without `parser`")}function Ln(e,u){if("function"!==typeof u)throw new TypeError("Cannot `"+e+"` without `compiler`")}function jn(e,u){if(u)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function zn(e){if(!mn(e)||"string"!==typeof e.type)throw new TypeError("Expected node, got `"+e+"`")}function Rn(e,u,t){if(!t)throw new Error("`"+e+"` finished async. Use `"+u+"` instead")}function Hn(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"messages"in e)}(e)?e:new wn(e)}var Zn=[],Un={allowDangerousHtml:!0},qn=/^(https?|ircs?|mailto|xmpp)$/i,Wn=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Vn(e){var u=e.allowedElements,t=e.allowElement,n=e.children||"",r=e.className,l=e.components,D=e.disallowedElements,s=e.rehypePlugins||Zn,c=e.remarkPlugins||Zn,f=e.remarkRehypeOptions?(0,a.Z)((0,a.Z)({},e.remarkRehypeOptions),Un):Un,d=e.skipHtml,p=e.unwrapDisallowed,h=e.urlTransform||Yn,F=Nn().use(wt).use(c).use(hn,f).use(s),C=new wn;"string"===typeof n&&(C.value=n);var E,m=(0,o.Z)(Wn);try{for(m.s();!(E=m.n()).done;){var A=E.value;Object.hasOwn(e,A.from)&&(A.from,A.to&&A.to,A.id)}}catch(y){m.e(y)}finally{m.f()}var v=F.parse(C),g=F.runSync(v,C);return r&&(g={type:"element",tagName:"div",properties:{className:r},children:"root"===g.type?g.children:[g]}),Kt(g,(function(e,n,r){if("raw"===e.type&&r&&"number"===typeof n)return d?r.children.splice(n,1):r.children[n]={type:"text",value:e.value},n;var o;if("element"===e.type)for(o in we)if(Object.hasOwn(we,o)&&Object.hasOwn(e.properties,o)){var a=e.properties[o],l=we[o];(null===l||l.includes(e.tagName))&&(e.properties[o]=h(String(a||""),o,e))}if("element"===e.type){var s=u?!u.includes(e.tagName):!!D&&D.includes(e.tagName);if(!s&&t&&"number"===typeof n&&(s=!t(e,n,r)),s&&r&&"number"===typeof n){var c;if(p&&e.children)(c=r.children).splice.apply(c,[n,1].concat((0,i.Z)(e.children)));else r.children.splice(n,1);return n}}})),Ce(g,{Fragment:Se.Fragment,components:l,ignoreInvalidStyle:!0,jsx:Se.jsx,jsxs:Se.jsxs,passKeys:!0,passNode:!0})}function Yn(e){var u=e.indexOf(":"),t=e.indexOf("?"),n=e.indexOf("#"),r=e.indexOf("/");return u<0||r>-1&&u>r||t>-1&&u>t||n>-1&&u>n||qn.test(e.slice(0,u))?e:""}}}]); +//# sourceMappingURL=649.5f988163.chunk.js.map \ No newline at end of file diff --git a/static/js/649.5f988163.chunk.js.map b/static/js/649.5f988163.chunk.js.map new file mode 100644 index 0000000..aa6b5f2 --- /dev/null +++ b/static/js/649.5f988163.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/649.5f988163.chunk.js","mappings":"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GACTu1B,GAEFE,EAAYz1B,EACrB,CAyBA,SAASw1B,EAA4Bx1B,GACnC,OAAa,KAATA,GACF4pB,EAAQK,QAAQjqB,GACTy1B,GAII,KAATz1B,GAAwB,KAATA,GAAe4oB,GAAW5oB,IAC3C4pB,EAAQK,QAAQjqB,GACT01B,GAELpM,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACTw1B,GAEFC,EAAYz1B,EACrB,CAgBA,SAAS01B,EAAsB11B,GAE7B,OACW,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACA8oB,GAAkB9oB,IAElB4pB,EAAQK,QAAQjqB,GACT01B,GAEFC,EAA2B31B,EACpC,CAeA,SAAS21B,EAA2B31B,GAClC,OAAa,KAATA,GACF4pB,EAAQK,QAAQjqB,GACT41B,GAELtM,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACT21B,GAEFH,EAA4Bx1B,EACrC,CAeA,SAAS41B,EAA6B51B,GACpC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,EAEOysB,EAAIzsB,GAEA,KAATA,GAAwB,KAATA,GACjB4pB,EAAQK,QAAQjqB,GAChB+0B,EAAU/0B,EACH61B,GAELvM,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACT41B,GAEFE,EAA+B91B,EACxC,CAcA,SAAS61B,EAA6B71B,GACpC,OAAIA,IAAS+0B,GACXnL,EAAQK,QAAQjqB,GAChB+0B,EAAU,KACHgB,GAEI,OAAT/1B,GAAiBopB,GAAmBppB,GAC/BysB,EAAIzsB,IAEb4pB,EAAQK,QAAQjqB,GACT61B,EACT,CAYA,SAASC,EAA+B91B,GACtC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACAqpB,GAA0BrpB,GAEnB21B,EAA2B31B,IAEpC4pB,EAAQK,QAAQjqB,GACT81B,EACT,CAaA,SAASC,EAAkC/1B,GACzC,OAAa,KAATA,GAAwB,KAATA,GAAespB,GAActpB,GACvCw1B,EAA4Bx1B,GAE9BysB,EAAIz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SAASu7B,EAAgBv7B,GACvB,OAAIopB,GAAmBppB,IACrBowB,EAAcmL,EACPN,EAAiBj7B,IAEtBspB,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACTu7B,GAEFp9C,EAAI6hB,EACb,CAYA,SAAS86B,EAAQ96B,GAEf,OAAa,KAATA,GAAe8oB,GAAkB9oB,IACnC4pB,EAAQK,QAAQjqB,GACT86B,GAEI,KAAT96B,GAAwB,KAATA,GAAeqpB,GAA0BrpB,GACnDw7B,EAAex7B,GAEjBysB,EAAIzsB,EACb,CAYA,SAASw7B,EAAex7B,GACtB,OAAa,KAATA,GACF4pB,EAAQK,QAAQjqB,GACT7hB,GAII,KAAT6hB,GAAwB,KAATA,GAAe4oB,GAAW5oB,IAC3C4pB,EAAQK,QAAQjqB,GACTy7B,GAELrS,GAAmBppB,IACrBowB,EAAcoL,EACPP,EAAiBj7B,IAEtBspB,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACTw7B,GAEFr9C,EAAI6hB,EACb,CAYA,SAASy7B,EAAqBz7B,GAE5B,OACW,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACA8oB,GAAkB9oB,IAElB4pB,EAAQK,QAAQjqB,GACTy7B,GAEFC,EAA0B17B,EACnC,CAaA,SAAS07B,EAA0B17B,GACjC,OAAa,KAATA,GACF4pB,EAAQK,QAAQjqB,GACT27B,GAELvS,GAAmBppB,IACrBowB,EAAcsL,EACPT,EAAiBj7B,IAEtBspB,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACT07B,GAEFF,EAAex7B,EACxB,CAaA,SAAS27B,EAA4B37B,GACnC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,EAEOysB,EAAIzsB,GAEA,KAATA,GAAwB,KAATA,GACjB4pB,EAAQK,QAAQjqB,GAChBoxB,EAASpxB,EACF47B,GAELxS,GAAmBppB,IACrBowB,EAAcuL,EACPV,EAAiBj7B,IAEtBspB,GAActpB,IAChB4pB,EAAQK,QAAQjqB,GACT27B,IAET/R,EAAQK,QAAQjqB,GACT67B,EACT,CAYA,SAASD,EAA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","sources":["../node_modules/domelementtype/lib/index.js","../node_modules/extend/index.js","../node_modules/html-dom-parser/src/client/constants.ts","../node_modules/html-dom-parser/src/client/domparser.ts","../node_modules/html-dom-parser/src/client/html-to-dom.ts","../node_modules/html-dom-parser/src/client/utilities.ts","../node_modules/html-dom-parser/node_modules/domhandler/lib/index.js","../node_modules/html-dom-parser/node_modules/domhandler/lib/node.js","../node_modules/html-react-parser/src/attributes-to-props.ts","../node_modules/html-react-parser/src/dom-to-react.ts","../node_modules/html-react-parser/src/index.ts","../node_modules/html-react-parser/src/utilities.ts","../node_modules/html-react-parser/node_modules/domhandler/lib/index.js","../node_modules/html-react-parser/node_modules/domhandler/lib/node.js","../node_modules/inline-style-parser/index.js","../node_modules/react-property/lib/index.js","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/style-to-js/src/index.ts","../node_modules/style-to-js/src/utilities.ts","../node_modules/style-to-object/src/index.ts","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../node_modules/date-fns/locale/en-US/_lib/localize.mjs","../node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../node_modules/date-fns/locale/en-US/_lib/match.mjs","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../node_modules/date-fns/locale/en-US.mjs","../node_modules/date-fns/_lib/defaultOptions.mjs","../node_modules/date-fns/constants.mjs","../node_modules/date-fns/toDate.mjs","../node_modules/date-fns/startOfDay.mjs","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../node_modules/date-fns/differenceInCalendarDays.mjs","../node_modules/date-fns/constructFrom.mjs","../node_modules/date-fns/startOfYear.mjs","../node_modules/date-fns/getDayOfYear.mjs","../node_modules/date-fns/startOfWeek.mjs","../node_modules/date-fns/startOfISOWeek.mjs","../node_modules/date-fns/getISOWeekYear.mjs","../node_modules/date-fns/startOfISOWeekYear.mjs","../node_modules/date-fns/getISOWeek.mjs","../node_modules/date-fns/getWeekYear.mjs","../node_modules/date-fns/startOfWeekYear.mjs","../node_modules/date-fns/getWeek.mjs","../node_modules/date-fns/_lib/addLeadingZeros.mjs","../node_modules/date-fns/_lib/format/lightFormatters.mjs","../node_modules/date-fns/_lib/format/formatters.mjs","../node_modules/date-fns/_lib/format/longFormatters.mjs","../node_modules/date-fns/_lib/protectedTokens.mjs","../node_modules/date-fns/isDate.mjs","../node_modules/date-fns/isValid.mjs","../node_modules/date-fns/format.mjs","../node_modules/html-react-parser/esm/index.mjs","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/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/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/style-to-object/esm/index.mjs","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/html-url-attributes/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-util-combine-extensions/index.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-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/parse.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/remark-parse/lib/index.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.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-reference.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/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.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/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/lib/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/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/react-markdown/lib/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\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 return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\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 infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\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').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\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\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\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 effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\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 effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\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 inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\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 return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\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').Event} Event\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').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\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/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\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 return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\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 }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\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 if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\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 ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\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 )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\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 return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\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 after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(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 return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(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 /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(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 return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\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\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\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 return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\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 */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * 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**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\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').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // 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 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\n\n // Now walk back to find an opener.\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 &&\n // 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 }\n\n // Number of markers to use from the sequence.\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 = []\n\n // If there are more markers in the opening, add them before.\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 }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\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 splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\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\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\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/**\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 {undefined}\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').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\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\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\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 if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\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\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a
c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\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 return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\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 if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\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 if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\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 return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\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\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\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').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\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').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\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\n\n // And we have data.\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 }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\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 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 enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\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\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\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 between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\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\n/** @satisfies {Extension['document']} */\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\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\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\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\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\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\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 {string, text} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\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 /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n value =\n buffer +\n (typeof value === 'string'\n ? value.toString()\n : new TextDecoder(encoding || undefined).decode(value))\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\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 if (!match) {\n buffer = value.slice(startPosition)\n break\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 if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\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 * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\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/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\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 return decodeNamedCharacterReference($2) || $0\n}\n","/**\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').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\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 {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 *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | null | undefined | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {undefined | void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} 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: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse, postprocess, preprocess} from 'micromark'\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/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\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 configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\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 index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\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 // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\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\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\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 let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n switch (event[1].type) {\n case 'listUnordered':\n case 'listOrdered':\n case 'blockQuote': {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n break\n }\n case 'lineEndingBlank': {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n break\n }\n case 'linePrefix':\n case 'listItemValue':\n case 'listItemMarker':\n case 'listItemPrefix':\n case 'listItemPrefixWhitespace': {\n // Empty.\n\n break\n }\n default: {\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 while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\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 if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\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 }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n listItem = item\n events.splice(index, 0, ['enter', item, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {undefined}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {undefined}\n * Nothing.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n /** @type {Array} */\n const siblings = parent.children\n siblings.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n }\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {undefined}\n * Nothing.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\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 node.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n this.data.expectingFirstListItemValue = undefined\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return\n this.buffer()\n this.data.flowCodeInside = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n this.data.flowCodeInside = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n /** @type {Array} */\n const siblings = node.children\n let tail = siblings[siblings.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n }\n siblings.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\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\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n this.data.atHardBreak = undefined\n return\n }\n if (\n !this.data.setextHeadingSlurpLineEnding &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n this.data.inReference = true\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n this.data.referenceType = 'full'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = this.data.characterReferenceType\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n this.data.characterReferenceType = undefined\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'transforms': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'enter':\n case 'exit': {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n break\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\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 */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...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: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type)\n return as([type, [...value]], value);\n \n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\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`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * 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]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\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 | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // 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) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const def = state.footnoteById.get(state.footnoteOrder[referenceIndex])\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\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: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (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 return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => 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 if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\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 * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\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 * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\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 } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\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] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, 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\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\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 === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, 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 [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\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({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[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 children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\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 {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 {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\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 undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > 👉 **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\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 = trimMarkdownSpaceStart(head.value)\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}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// \n\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} ToHastOptions\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(options || destination)})\n )\n }\n}\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","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * 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` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\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 && result.then && typeof result.then === 'function') {\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 *\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","// 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 * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\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.codePointAt(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.codePointAt(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.codePointAt(index) === ext.codePointAt(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 * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\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.codePointAt(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.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\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.codePointAt(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 * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\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 * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(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.codePointAt(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 * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\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.codePointAt(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.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(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 * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\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 * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\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 * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\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.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(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","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {Record & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {path} from 'vfile/do-not-use-conditional-minpath'\nimport {proc} from 'vfile/do-not-use-conditional-minproc'\nimport {urlToPath, isUrl} from 'vfile/do-not-use-conditional-minurl'\n\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.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\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 * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\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 * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\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 (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\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)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\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 *\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 * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\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 parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\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 *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\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 *\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 * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(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 full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\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 *\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 *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\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 stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\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 *\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 * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\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 // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\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 * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\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 * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\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 * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const func = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return func.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n const names = Object.getOwnPropertyNames(func)\n\n for (const p of names) {\n const descriptor = Object.getOwnPropertyDescriptor(func, p)\n if (descriptor) Object.defineProperty(apply, p, descriptor)\n }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@link CompileResultMap `CompileResultMap`}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@link Node `Node`}\n * and {@link VFile `VFile`} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@link VFile `VFile`} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@link Node `Node`}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > 👉 **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > 👉 **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@link VFile `VFile`} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@link VFile `VFile`}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@link Processor `Processor`}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > 👉 **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > 👉 **Note**: to register custom data in TypeScript, augment the\n * > {@link Data `Data`} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > 👉 **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > 👉 **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > 👉 **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > 👉 **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > 👉 **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\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 return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\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, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\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 {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\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 {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\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 {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [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 Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","// Register `Raw` in tree:\n/// \n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial} Components\n * Map tag names to components.\n *\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n *\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\n// @ts-expect-error: untyped.\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * @param {Readonly} options\n * Props.\n * @returns {JSX.Element}\n * React element.\n */\nexport function Markdown(options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const children = options.children || ''\n const className = options.className\n const components = options.components\n const disallowedElements = options.disallowedElements\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n const mdastTree = processor.parse(file)\n /** @type {Nodes} */\n let hastTree = processor.runSync(mdastTree, file)\n\n // Wrap in `div` if there’s a class name.\n if (className) {\n hastTree = {\n type: 'element',\n tagName: 'div',\n properties: {className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n hastTree.type === 'root' ? hastTree.children : [hastTree]\n )\n }\n }\n\n visit(hastTree, transform)\n\n return toJsxRuntime(hastTree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {Visitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\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 ||\n // 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) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n"],"names":["ElementType","Object","defineProperty","exports","value","Doctype","CDATA","Tag","Style","Script","Comment","Directive","Text","Root","isTag","elem","type","hasOwn","prototype","hasOwnProperty","toStr","toString","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","call","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","options","name","enumerable","configurable","newValue","writable","getProperty","module","extend","src","copy","copyIsArray","clone","arguments","i","length","deep","reduce","accumulator","tagName","toLowerCase","HTML","HEAD","BODY","FIRST_TAG_REGEX","HEAD_TAG_REGEX","BODY_TAG_REGEX","parseFromDocument","html","Error","parseFromString","DOMParser","window","domParser_1","document","implementation","htmlDocument_1","createHTMLDocument","element","documentElement","querySelector","innerHTML","parseFromTemplate","template","createElement","content","childNodes","match","firstTagName","doc","test","parentNode","removeChild","querySelectorAll","elements","DIRECTIVE_REGEX","TypeError","directive","undefined","formatDOM","formatAttributes","attributes","map","index","attributesLength","attribute","formatTagName","caseSensitiveTagName","constants_1","getCaseSensitiveTagName","nodes","parent","current","domNodes","nodesLength","node","nodeType","nodeName","domhandler_1","children","nodeValue","prev","next","push","substring","indexOf","unshift","__createBinding","this","create","o","m","k","k2","desc","__esModule","get","__exportStar","p","DomHandler","domelementtype_1","require","node_js_1","defaultOpts","withStartIndices","withEndIndices","xmlMode","callback","elementCB","dom","root","Document","done","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onerror","error","onclosetag","pop","endIndex","onopentag","attribs","Element","addNode","ontext","data","oncomment","oncommentend","oncdatastart","text","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","__extends","extendStatics","d","b","setPrototypeOf","__proto__","String","__","__assign","assign","t","s","n","apply","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","Node","set","recursive","_super","_this","_a","keys","_b","namespace","prefix","result","cloneChildren","clone_1","forEach","child","clone_2","clone_3","concat","instruction","sourceCodeLocation","childs","UNCONTROLLED_COMPONENT_ATTRIBUTES","UNCONTROLLED_COMPONENT_NAMES","valueOnlyInputs","reset","submit","getPropName","attributeName","react_property_1","props","isInputValueOnly","Boolean","attributeValue","isCustomAttribute","attributeNameLowerCased","propName","propertyInfo","getPropertyInfo","includes","utilities_1","setStyleProp","style","React","cloneElement","isValidElement","skipAttributesToProps","isCustomComponent","domToReact","reactElements","hasReplace","replace","transform","library","replaceElement","dangerouslySetInnerHTML","__html","defaultValue","isWhitespace","trim","canTextBeChildOfNode","html_dom_parser_1","attributes_to_props_1","dom_to_react_1","domParserOptions","lowerCaseAttributeNames","htmlparser2","RESERVED_SVG_MATHML_ELEMENTS","Set","has","is","styleOptions","reactCompat","Number","react_1","split","arg","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","str","lineno","column","updatePosition","lines","lastIndexOf","position","start","line","Position","whitespace","end","source","errorsList","msg","err","reason","filename","silent","re","exec","slice","comments","rules","c","comment","pos","charAt","declaration","prop","val","ret","property","decl","decls","declarations","_slicedToArray","PropertyInfoRecord","mustUseProperty","attributeNamespace","sanitizeURL","removeEmptyString","acceptsBooleans","propertyName","properties","_ref","_ref2","CAMELIZE","capitalize","token","toUpperCase","_require","CAMELCASE","SAME","possibleStandardNamesOptimized","possibleStandardNames","RegExp","bind","standardName","BOOLEAN","BOOLEANISH_STRING","NUMERIC","OVERLOADED_BOOLEAN","POSITIVE_NUMERIC","RESERVED","STRING","accept","acceptCharset","accessKey","action","allowFullScreen","alt","as","async","autoCapitalize","autoComplete","autoCorrect","autoFocus","autoPlay","autoSave","capture","cellPadding","cellSpacing","challenge","charSet","checked","cite","class","classID","className","cols","colSpan","contentEditable","contextMenu","controls","controlsList","coords","crossOrigin","dateTime","default","defaultChecked","defer","dir","disabled","disablePictureInPicture","disableRemotePlayback","download","draggable","encType","enterKeyHint","for","form","formMethod","formAction","formEncType","formNoValidate","formTarget","frameBorder","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","icon","id","inputMode","integrity","itemID","itemProp","itemRef","itemScope","itemType","keyParams","keyType","kind","label","lang","list","loop","low","manifest","marginWidth","marginHeight","max","maxLength","media","mediaGroup","method","min","minLength","multiple","muted","noModule","nonce","noValidate","open","optimum","pattern","placeholder","playsInline","poster","preload","profile","radioGroup","readOnly","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","srcDoc","srcLang","srcSet","step","summary","tabIndex","title","useMap","width","wmode","wrap","about","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","datatype","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodOpacity","floodColor","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in2","in","inlist","intercept","k1","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","resource","restart","results","rotate","rx","ry","scale","security","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeWidth","strokeOpacity","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","typeof","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","unselectable","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewBox","viewTarget","visibility","vMathematical","vocab","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","output","camelCase","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","character","trimHyphen","skipCamelCase","iterator","styleObject","hasIterator","len","arr2","l","Symbol","e","u","a","f","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","minLen","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","args","defaultWidth","formats","formatLong","date","full","long","medium","short","time","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","context","formattingValues","defaultFormattingWidth","argumentCallback","localize","ordinalNumber","dirtyNumber","_options","number","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","findKey","valueCallback","rest","object","predicate","array","parsePattern","parseInt","parseResult","any","enUS","code","formatDistance","count","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","weekStartsOn","firstWeekContainsDate","defaultOptions","getDefaultOptions","Math","pow","millisecondsInWeek","toDate","argument","argStr","Date","NaN","startOfDay","setHours","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","differenceInCalendarDays","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","round","constructFrom","startOfYear","cleanDate","setFullYear","getDayOfYear","startOfWeek","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","locale","getDay","diff","setDate","startOfISOWeek","getISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","startOfISOWeekYear","fourthOfJanuary","getISOWeek","getWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","abs","padStart","lightFormatters","signedYear","numberOfDigits","milliseconds","trunc","dayPeriodEnum","formatters","G","unit","Y","signedWeekYear","weekYear","R","Q","ceil","q","M","L","w","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","hours","B","h","H","K","S","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","O","formatTimezoneShort","T","delimiter","sign","absOffset","minutes","dateLongFormatter","timeLongFormatter","longFormatters","P","dateTimeFormat","datePattern","timePattern","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isDate","isValid","isNaN","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","defaultLocale","originalDate","RangeError","parts","firstCharacter","longFormatter","join","isToken","cleanEscapedString","preprocessor","formatterOptions","part","useAdditionalWeekYearTokens","isProtectedWeekYearToken","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","input","_message","subject","message","console","warn","warnOrThrowProtectedError","formatter","matched","HTMLReactParser","nameRe","nameReJsx","emptyOptions","jsx","empty","Schema","_createClass","normal","space","_classCallCheck","merge","definitions","normalize","Info","boolean","booleanish","overloadedBoolean","commaSeparated","spaceSeparated","commaOrSpaceSeparated","defined","powers","increment","checks","types","DefinedInfo","_Info","_inherits","_createSuper","mark","_assertThisInitialized","check","own","definition","info","xlink","_","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","caseSensitiveTransform","caseInsensitiveTransform","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","acceptcharset","classname","htmlfor","httpequiv","abbr","allow","allowPaymentRequest","allowUserMedia","blocking","decoding","dirName","fetchPriority","imageSizes","imageSrcSet","inert","isMap","itemId","language","loading","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","ping","popover","popoverTarget","popoverTargetAction","shadowRootDelegatesFocus","shadowRootMode","slot","translate","typeMustMatch","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","char","charOff","classId","clear","codeBase","codeType","compact","declare","event","face","frame","hSpace","leftMargin","link","longDesc","lowSrc","noResize","noHref","noShade","noWrap","prompt","rev","rightMargin","scheme","standby","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","svg","dataType","horizOriginY","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","transformOrigin","typeOf","playbackOrder","timelineBegin","bandwidth","defaultAction","editable","focusHighlight","fr","handler","hatchContentUnits","hatchUnits","initialVisibility","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","observer","overlay","path","phase","pitch","propagate","requiredFonts","requiredFormats","side","snapshotTime","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","transformBehavior","htmlBase","svgBase","valid","dash","cap","kebab","$0","camelcase","hastToReact","StyleToObject","pointEnd","point","pointStart","stringifyPosition","VFileMessage","_Error","causeOrReason","optionsOrParentOrPlace","legacyCause","place","ancestors","_objectSpread","cause","ruleId","fatal","file","stack","actual","expected","note","url","_wrapNativeSuper","emptyMap","Map","dashSomething","tableElements","tableCellElement","docs","toJsxRuntime","tree","Fragment","filePath","development","jsxDEV","isStaticChildren","columnNumber","fileName","lineNumber","developmentCreate","jsxs","fn","productionCreate","state","components","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","schema","stylePropertyNameCase","tableCellAlignToStyle","parentSchema","findComponentFromName","alignValue","createProperty","_result","createElementProps","createChildren","thing","addChildren","estree","expression","body","evaluateExpression","crashEstree","mdxExpression","_step","_iterator","_createForOfIteratorHelper","objectExpression","createJsxElementProps","mdxJsxElement","evaluateProgram","mdxEsm","countsByName","Type","dashes","find","settings","_toConsumableArray","padRight","padLeft","commas","styleToObject","replacer","toCamel","parseStyle","domCasing","cssCasing","transformStyleToCssCasing","transformStylesToCssCasing","allowExpression","identifiers","isIdentifierName","computed","optional","toDash","$1","urlAttributes","includeImageAlt","includeHtml","all","splice","remove","items","parameters","chunkStart","subtokenize","events","lineIndex","otherIndex","otherEvent","subevents","more","jumps","_tokenizer","_isInFirstContentOfListItem","contentType","subcontent","_container","eventIndex","stream","previous","startPosition","startPositions","tokenizer","childEvents","gaps","adjust","breaks","sliceStream","defineSkip","_gfmTasklistFirstContentOfListItem","write","syntaxExtension","extension","hook","left","right","constructs","existing","before","add","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","fromCharCode","factorySpace","effects","ok","limit","POSITIVE_INFINITY","enter","consume","exit","tokenize","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","self","continued","item","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","lazy","now","containerContinue","flow","flowContinue","writeToChild","eof","seen","entry","nok","disable","null","blankLine","after","partial","chunkInside","contentEnd","continuationConstruct","contentContinue","resolve","prefixed","tail","sliceSerialize","initial","flowInitial","afterConstruct","resolver","resolveAll","createResolver","initializeFactory","field","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","bufferIndex","tabs","chunk","charCodeAt","_index","_bufferIndex","called","createTokenizer","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","fields","constructFactory","construct","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","view","startBufferIndex","endBufferIndex","head","shift","sliceChunks","_point","chunkIndex","go","restore","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","def","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","resolveTo","thematicBreak","marker","sequence","initialSize","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","escape","factoryWhitespace","normalizeIdentifier","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","paragraph","heading","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","buffer","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","nonLazyContinuation","codeFenced","closeStart","startBefore","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","meta","contentBefore","beforeContentChunk","contentChunk","decodeNamedCharacterReference","characterReference","textContent","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","close","group","insideSpan","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","closingSequence","use","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelStartLink","hardBreakEscape","codeText","between","tailExitIndex","headEnterIndex","_document","_defineProperty","_flowInitial","_flow","_string","_text","resolveText","parse","extensions","combineExtensions","defaultConstructs","search","decodeNumericCharacterReference","base","fromCodePoint","characterEscapeOrReference","decode","$2","hex","fromMarkdown","encoding","config","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","image","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","reference","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","configure","mdastExtensions","compile","tokenStack","resume","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","expectingFirstListItemValue","flowCodeInside","depth","setextHeadingSlurpLineEnding","codePointAt","siblings","atHardBreak","inReference","referenceType","ancestor","decodeString","fragment","characterReferenceType","ordered","spread","compiler","postprocess","atCarriageReturn","endPosition","TextDecoder","lastIndex","preprocess","combined","_combined$key","_combined$key2","remarkParse","env","globalThis","deserialize","serialized","$","out","unpair","_$index","_step2","_iterator2","_step2$value","flags","_step3","_iterator3","_step3$value","_step4","_iterator4","BigInt","deserializer","EMPTY","asString","shouldSkip","TYPE","serializer","strict","json","pair","_typeOf","_typeOf2","valueOf","toJSON","entries","toISOString","serialize","lossy","structuredClone","normalizeUri","skip","encodeURIComponent","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","convert","castFactory","anyFactory","checkAsRecord","nodeAsRecord","propsFactory","typeFactory","tests","_len","_key","testFunction","looksLikeANode","visitParents","visitor","reverse","factory","parents","visit","subresult","grandparents","toResult","nodeAsParent","testOrVisitor","visitorOrReverse","maybeReverse","revert","subtype","suffix","contents","listItemLoose","trimLines","last","trimLine","handlers","blockquote","patch","applyData","break","delete","footnoteReference","counter","clobberPrefix","safeId","footnoteOrder","reuseCounter","footnoteCounts","dataFootnoteRef","sup","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","loose","listLoose","table","firstRow","tableContent","tableCell","tableRow","cellIndex","cells","cell","toml","ignore","yaml","footnoteDefinition","hName","hChildren","hProperties","defaultUnknownHandler","trimMarkdownSpaceStart","toHast","footnoteById","defaultHandlers","handle","passThrough","shallow","_objectWithoutProperties","_excluded","unknownHandler","createState","foot","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","dataFootnoteBackref","_tail$children","tailTail","dataFootnotes","footer","remarkRehype","destination","_asyncToGenerator","_regeneratorRuntime","_callee","hastTree","_context","run","stop","_x","_x2","bail","getPrototypeOf","toStringTag","middleware","_len3","_key3","fnExpectsCallback","exception","then","_len4","_key4","basename","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","segments","sep","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","JSON","stringify","proc","cwd","isUrl","fileUrlOrPath","protocol","auth","urlToPath","URL","hostname","pathname","third","decodeURIComponent","getPathFromURLPosix","VFile","isUint8Array","history","messages","stored","assertNonEmpty","assertPart","stem","CallableInstance","proto","func","names","getOwnPropertyNames","descriptor","Processor","_CallableInstance","Compiler","Parser","attachers","freezeIndex","frozen","transformers","fns","pipeline","middlewareIndex","_len2","_key2","middelware","trough","attacher","assertUnfrozen","_this$attachers$this$","_toArray","transformer","freeze","realFile","vfile","assertParser","assertCompiler","executor","Promise","reject","parseTree","realDone","compileTree","compileResult","complete","process","assertDone","assertNode","outputTree","resultingTree","addPlugin","addList","addPreset","_value","plugins","plugin","entryIndex","_parameters2","primary","currentPrimary","isPlainObj","unified","asyncName","looksLikeAVFile","emptyPlugins","emptyRemarkRehypeOptions","safeProtocol","deprecations","Markdown","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","defaultUrlTransform","processor","deprecation","mdastTree","runSync","_parent$children","colon","questionMark","numberSign"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/783.1eecd861.chunk.js b/static/js/783.1eecd861.chunk.js deleted file mode 100644 index 7c77cbd..0000000 --- a/static/js/783.1eecd861.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[783],{7783:function(e,i,n){n.r(i),n.d(i,{default:function(){return j}});var r=n(7689),t=n(3984),s=n(2791),c=n(1087),a=n(5861),o=n(4687),l=n.n(o),u=n(4390),d=function(){var e=(0,a.Z)(l().mark((function e(i){var n,r;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.o.get("/movie/".concat(i,"?language=en-US"),u._);case 2:return n=e.sent,r=n.data,e.abrupt("return",r);case 5:case"end":return e.stop()}}),e)})));return function(i){return e.apply(this,arguments)}}(),h=n(184),j=function(){var e=(0,r.UO)().movieId,i=(0,t.a)({queryKey:["movieDetails",e],queryFn:function(){return d(e)}}),n=i.isPending,a=i.isError,o=i.data,l=i.error;return n?(0,h.jsx)("div",{children:"Loading..."}):a?(0,h.jsxs)("div",{children:["Error fetching data: ",l.message]}):(0,h.jsxs)("div",{children:[(0,h.jsx)("h1",{children:"Movie Details"}),(0,h.jsxs)("div",{children:[(0,h.jsx)("img",{src:"https://image.tmdb.org/t/p/w342".concat(o.poster_path),alt:o.original_title}),(0,h.jsx)("h1",{children:o.original_title}),(0,h.jsx)("h5",{children:(0,h.jsx)("i",{children:o.tagline})}),(0,h.jsx)("p",{children:o.overview}),(0,h.jsx)("h4",{children:"Genres"}),o.genres.map((function(e){return(0,h.jsx)("ul",{children:(0,h.jsx)("li",{children:e.name})},e.id)})),(0,h.jsx)("h4",{children:"Production Companies"}),o.production_countries.map((function(e){return(0,h.jsx)("ul",{children:(0,h.jsx)("li",{children:e.name})},e.iso_3166_1)}))]}),(0,h.jsxs)("ul",{children:[(0,h.jsx)("li",{children:(0,h.jsx)(c.rU,{to:"cast",children:"Cast"})}),(0,h.jsx)("li",{children:(0,h.jsx)(c.rU,{to:"reviews",children:"Reviews"})})]}),(0,h.jsx)(s.Suspense,{fallback:(0,h.jsx)("div",{children:"Loading subpage..."}),children:(0,h.jsx)(r.j3,{})})]})}},4390:function(e,i,n){n.d(i,{_:function(){return t},o:function(){return r.Z}});var r=n(5294);r.Z.defaults.baseURL="https://api.themoviedb.org/3";var t={headers:{accept:"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ"}}}}]); -//# sourceMappingURL=783.1eecd861.chunk.js.map \ No newline at end of file diff --git a/static/js/783.1eecd861.chunk.js.map b/static/js/783.1eecd861.chunk.js.map deleted file mode 100644 index 4f2a650..0000000 --- a/static/js/783.1eecd861.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/783.1eecd861.chunk.js","mappings":"uQAEMA,EAAiB,eAAAC,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,EAAMC,GAAQ,IAAAC,EAAAC,EAAA,OAAAJ,IAAAA,MAAA,SAAAK,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACfC,EAAAA,EAAAA,IAAU,UAADC,OACpBP,EAAQ,mBAClBQ,EAAAA,GACA,KAAD,EAHW,OAGXP,EAAAE,EAAAM,KAHOP,EAAID,EAAJC,KAAIC,EAAAO,OAAA,SAKLR,GAAI,wBAAAC,EAAAQ,OAAA,GAAAZ,EAAA,KACZ,gBAPsBa,GAAA,OAAAhB,EAAAiB,MAAA,KAAAC,UAAA,K,SCiEvB,EA5DqB,WACnB,IAAQC,GAAYC,EAAAA,EAAAA,MAAZD,QAERE,GAA4CC,EAAAA,EAAAA,GAAS,CACnDC,SAAU,CAAC,eAAgBJ,GAC3BK,QAAS,kBAAMzB,EAAkBoB,EAAQ,IAFnCM,EAASJ,EAATI,UAAWC,EAAOL,EAAPK,QAASpB,EAAIe,EAAJf,KAAMqB,EAAKN,EAALM,MAKlC,OAAIF,GACKG,EAAAA,EAAAA,KAAA,OAAAC,SAAK,eAGVH,GACKI,EAAAA,EAAAA,MAAA,OAAAD,SAAA,CAAK,wBAAsBF,EAAMI,YAIxCD,EAAAA,EAAAA,MAAA,OAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,MAAAC,SAAI,mBACJC,EAAAA,EAAAA,MAAA,OAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,OACEI,IAAG,kCAAArB,OAAoCL,EAAK2B,aAC5CC,IAAK5B,EAAK6B,kBAEZP,EAAAA,EAAAA,KAAA,MAAAC,SAAKvB,EAAK6B,kBACVP,EAAAA,EAAAA,KAAA,MAAAC,UACED,EAAAA,EAAAA,KAAA,KAAAC,SAAIvB,EAAK8B,aAGXR,EAAAA,EAAAA,KAAA,KAAAC,SAAIvB,EAAK+B,YAETT,EAAAA,EAAAA,KAAA,MAAAC,SAAI,WACHvB,EAAKgC,OAAOC,KAAI,SAAAC,GAAK,OACpBZ,EAAAA,EAAAA,KAAA,MAAAC,UACED,EAAAA,EAAAA,KAAA,MAAAC,SAAKW,EAAMC,QADJD,EAAME,GAEV,KAGPd,EAAAA,EAAAA,KAAA,MAAAC,SAAI,yBACHvB,EAAKqC,qBAAqBJ,KAAI,SAAAK,GAAO,OACpChB,EAAAA,EAAAA,KAAA,MAAAC,UACED,EAAAA,EAAAA,KAAA,MAAAC,SAAKe,EAAQH,QADNG,EAAQC,WAEZ,QAGTf,EAAAA,EAAAA,MAAA,MAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,MAAAC,UACED,EAAAA,EAAAA,KAACkB,EAAAA,GAAI,CAACC,GAAG,OAAMlB,SAAC,YAElBD,EAAAA,EAAAA,KAAA,MAAAC,UACED,EAAAA,EAAAA,KAACkB,EAAAA,GAAI,CAACC,GAAG,UAASlB,SAAC,kBAGvBD,EAAAA,EAAAA,KAACoB,EAAAA,SAAQ,CAACC,UAAUrB,EAAAA,EAAAA,KAAA,OAAAC,SAAK,uBAAyBA,UAChDD,EAAAA,EAAAA,KAACsB,EAAAA,GAAM,QAIf,C,8FC/DAxC,EAAAA,EAAAA,SAAAA,QAAyB,+BAEzB,IAAME,EAAc,CAClBuC,QAAS,CACPC,OAAQ,mBACRC,cACE,8N","sources":["services/fetchMovieDetails.js","pages/MovieDetails.jsx","services/api.js"],"sourcesContent":["import { axios, baseOptions } from './api';\n\nconst fetchMovieDetails = async movie_id => {\n const { data } = await axios.get(\n `/movie/${movie_id}?language=en-US`,\n baseOptions\n );\n\n return data;\n};\n\nexport { fetchMovieDetails };\n","import { useParams } from 'react-router-dom';\nimport { useQuery } from '@tanstack/react-query';\nimport { Suspense } from 'react';\nimport { Link, Outlet } from 'react-router-dom';\n\nimport { fetchMovieDetails } from 'services/fetchMovieDetails';\n\nconst MovieDetails = () => {\n const { movieId } = useParams();\n\n const { isPending, isError, data, error } = useQuery({\n queryKey: ['movieDetails', movieId],\n queryFn: () => fetchMovieDetails(movieId),\n });\n\n if (isPending) {\n return
Loading...
;\n }\n\n if (isError) {\n return
Error fetching data: {error.message}
;\n }\n\n return (\n
\n

Movie Details

\n
\n \n

{data.original_title}

\n
\n {data.tagline}\n
\n\n

{data.overview}

\n\n

Genres

\n {data.genres.map(genre => (\n
    \n
  • {genre.name}
  • \n
\n ))}\n\n

Production Companies

\n {data.production_countries.map(country => (\n
    \n
  • {country.name}
  • \n
\n ))}\n
\n
    \n
  • \n Cast\n
  • \n
  • \n Reviews\n
  • \n
\n Loading subpage...
}>\n \n \n
\n );\n};\n\nexport default MovieDetails;\n","import axios from 'axios';\n\naxios.defaults.baseURL = 'https://api.themoviedb.org/3';\n\nconst baseOptions = {\n headers: {\n accept: 'application/json',\n Authorization:\n 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ',\n },\n};\n\nexport { axios, baseOptions };\n"],"names":["fetchMovieDetails","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","movie_id","_yield$axios$get","data","_context","prev","next","axios","concat","baseOptions","sent","abrupt","stop","_x","apply","arguments","movieId","useParams","_useQuery","useQuery","queryKey","queryFn","isPending","isError","error","_jsx","children","_jsxs","message","src","poster_path","alt","original_title","tagline","overview","genres","map","genre","name","id","production_countries","country","iso_3166_1","Link","to","Suspense","fallback","Outlet","headers","accept","Authorization"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/783.283e4891.chunk.js b/static/js/783.283e4891.chunk.js new file mode 100644 index 0000000..0923aa0 --- /dev/null +++ b/static/js/783.283e4891.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkgoit_react_hw_05_movies=self.webpackChunkgoit_react_hw_05_movies||[]).push([[783],{7783:function(e,t,i){i.r(t),i.d(t,{default:function(){return m}});var r=i(7689),n=i(3984),s=i(2791),c=i(1087),l=i(5861),a=i(4687),o=i.n(a),d=i(4390),u=function(){var e=(0,l.Z)(o().mark((function e(t){var i,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.o.get("/movie/".concat(t,"?language=en-US"),d._);case 2:return i=e.sent,r=i.data,e.abrupt("return",r);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),h=i(184),m=function(){var e=(0,r.UO)().movieId,t=(0,n.a)({queryKey:["movieDetails",e],queryFn:function(){return u(e)}}),i=t.isPending,l=t.isError,a=t.data,o=t.error;return i?(0,h.jsx)("div",{children:"Loading..."}):l?(0,h.jsxs)("div",{children:["Error fetching data: ",o.message]}):(0,h.jsxs)("div",{children:[(0,h.jsxs)("div",{children:[(0,h.jsx)("img",{src:"https://image.tmdb.org/t/p/w342".concat(a.poster_path),alt:a.original_title}),(0,h.jsx)("h2",{className:"scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0",children:a.original_title}),(0,h.jsx)("blockquote",{className:"mt-6 border-l-2 pl-6 italic",children:a.tagline}),(0,h.jsx)("p",{className:"leading-7 [&:not(:first-child)]:mt-6",children:a.overview}),(0,h.jsx)("h4",{className:"scroll-m-20 text-xl font-semibold tracking-tight",children:"Genres"}),a.genres.map((function(e){return(0,h.jsx)("ul",{className:"my-6 ml-6 list-disc [&>li]:mt-2",children:(0,h.jsx)("li",{children:e.name})},e.id)})),(0,h.jsx)("h4",{className:"scroll-m-20 text-xl font-semibold tracking-tight",children:"Production Companies"}),a.production_countries.map((function(e){return(0,h.jsx)("ul",{className:"my-6 ml-6 list-disc [&>li]:mt-2",children:(0,h.jsx)("li",{children:e.name})},e.iso_3166_1)}))]}),(0,h.jsxs)("ul",{children:[(0,h.jsx)("li",{children:(0,h.jsx)(c.rU,{to:"cast",className:"scroll-m-20 text-2xl font-semibold tracking-tight",children:"Cast"})}),(0,h.jsx)("li",{children:(0,h.jsx)(c.rU,{to:"reviews",className:"scroll-m-20 text-2xl font-semibold tracking-tight",children:"Reviews"})})]}),(0,h.jsx)(s.Suspense,{fallback:(0,h.jsx)("div",{children:"Loading subpage..."}),children:(0,h.jsx)(r.j3,{})})]})}},4390:function(e,t,i){i.d(t,{_:function(){return n},o:function(){return r.Z}});var r=i(5294);r.Z.defaults.baseURL="https://api.themoviedb.org/3";var n={headers:{accept:"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ"}}}}]); +//# sourceMappingURL=783.283e4891.chunk.js.map \ No newline at end of file diff --git a/static/js/783.283e4891.chunk.js.map b/static/js/783.283e4891.chunk.js.map new file mode 100644 index 0000000..1483077 --- /dev/null +++ b/static/js/783.283e4891.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/783.283e4891.chunk.js","mappings":"uQAEMA,EAAiB,eAAAC,GAAAC,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,EAAMC,GAAQ,IAAAC,EAAAC,EAAA,OAAAJ,IAAAA,MAAA,SAAAK,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACfC,EAAAA,EAAAA,IAAU,UAADC,OACpBP,EAAQ,mBAClBQ,EAAAA,GACA,KAAD,EAHW,OAGXP,EAAAE,EAAAM,KAHOP,EAAID,EAAJC,KAAIC,EAAAO,OAAA,SAKLR,GAAI,wBAAAC,EAAAQ,OAAA,GAAAZ,EAAA,KACZ,gBAPsBa,GAAA,OAAAhB,EAAAiB,MAAA,KAAAC,UAAA,K,SCoFvB,EA/EqB,WACnB,IAAQC,GAAYC,EAAAA,EAAAA,MAAZD,QAERE,GAA4CC,EAAAA,EAAAA,GAAS,CACnDC,SAAU,CAAC,eAAgBJ,GAC3BK,QAAS,kBAAMzB,EAAkBoB,EAAQ,IAFnCM,EAASJ,EAATI,UAAWC,EAAOL,EAAPK,QAASpB,EAAIe,EAAJf,KAAMqB,EAAKN,EAALM,MAKlC,OAAIF,GACKG,EAAAA,EAAAA,KAAA,OAAAC,SAAK,eAGVH,GACKI,EAAAA,EAAAA,MAAA,OAAAD,SAAA,CAAK,wBAAsBF,EAAMI,YAIxCD,EAAAA,EAAAA,MAAA,OAAAD,SAAA,EACEC,EAAAA,EAAAA,MAAA,OAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,OACEI,IAAG,kCAAArB,OAAoCL,EAAK2B,aAC5CC,IAAK5B,EAAK6B,kBAEZP,EAAAA,EAAAA,KAAA,MAAIQ,UAAU,6EAA4EP,SACvFvB,EAAK6B,kBAGRP,EAAAA,EAAAA,KAAA,cAAYQ,UAAU,8BAA6BP,SAChDvB,EAAK+B,WAGRT,EAAAA,EAAAA,KAAA,KAAGQ,UAAU,uCAAsCP,SAAEvB,EAAKgC,YAE1DV,EAAAA,EAAAA,KAAA,MAAIQ,UAAU,mDAAkDP,SAAC,WAGhEvB,EAAKiC,OAAOC,KAAI,SAAAC,GAAK,OACpBb,EAAAA,EAAAA,KAAA,MAAmBQ,UAAU,kCAAiCP,UAC5DD,EAAAA,EAAAA,KAAA,MAAAC,SAAKY,EAAMC,QADJD,EAAME,GAEV,KAGPf,EAAAA,EAAAA,KAAA,MAAIQ,UAAU,mDAAkDP,SAAC,yBAGhEvB,EAAKsC,qBAAqBJ,KAAI,SAAAK,GAAO,OACpCjB,EAAAA,EAAAA,KAAA,MAEEQ,UAAU,kCAAiCP,UAE3CD,EAAAA,EAAAA,KAAA,MAAAC,SAAKgB,EAAQH,QAHRG,EAAQC,WAIV,QAGThB,EAAAA,EAAAA,MAAA,MAAAD,SAAA,EACED,EAAAA,EAAAA,KAAA,MAAAC,UACED,EAAAA,EAAAA,KAACmB,EAAAA,GAAI,CACHC,GAAG,OACHZ,UAAU,oDAAmDP,SAC9D,YAIHD,EAAAA,EAAAA,KAAA,MAAAC,UACED,EAAAA,EAAAA,KAACmB,EAAAA,GAAI,CACHC,GAAG,UACHZ,UAAU,oDAAmDP,SAC9D,kBAKLD,EAAAA,EAAAA,KAACqB,EAAAA,SAAQ,CAACC,UAAUtB,EAAAA,EAAAA,KAAA,OAAAC,SAAK,uBAAyBA,UAChDD,EAAAA,EAAAA,KAACuB,EAAAA,GAAM,QAIf,C,8FClFAzC,EAAAA,EAAAA,SAAAA,QAAyB,+BAEzB,IAAME,EAAc,CAClBwC,QAAS,CACPC,OAAQ,mBACRC,cACE,8N","sources":["services/fetchMovieDetails.js","pages/MovieDetails.jsx","services/api.js"],"sourcesContent":["import { axios, baseOptions } from './api';\n\nconst fetchMovieDetails = async movie_id => {\n const { data } = await axios.get(\n `/movie/${movie_id}?language=en-US`,\n baseOptions\n );\n\n return data;\n};\n\nexport { fetchMovieDetails };\n","import { useParams } from 'react-router-dom';\nimport { useQuery } from '@tanstack/react-query';\nimport { Suspense } from 'react';\nimport { Link, Outlet } from 'react-router-dom';\n\nimport { fetchMovieDetails } from 'services/fetchMovieDetails';\n\nconst MovieDetails = () => {\n const { movieId } = useParams();\n\n const { isPending, isError, data, error } = useQuery({\n queryKey: ['movieDetails', movieId],\n queryFn: () => fetchMovieDetails(movieId),\n });\n\n if (isPending) {\n return
Loading...
;\n }\n\n if (isError) {\n return
Error fetching data: {error.message}
;\n }\n\n return (\n
\n
\n \n

\n {data.original_title}\n

\n\n
\n {data.tagline}\n
\n\n

{data.overview}

\n\n

\n Genres\n

\n {data.genres.map(genre => (\n
    li]:mt-2\">\n
  • {genre.name}
  • \n
\n ))}\n\n

\n Production Companies\n

\n {data.production_countries.map(country => (\n li]:mt-2\"\n >\n
  • {country.name}
  • \n \n ))}\n
    \n
      \n
    • \n \n Cast\n \n
    • \n
    • \n \n Reviews\n \n
    • \n
    \n Loading subpage...
    }>\n \n \n
    \n );\n};\n\nexport default MovieDetails;\n","import axios from 'axios';\n\naxios.defaults.baseURL = 'https://api.themoviedb.org/3';\n\nconst baseOptions = {\n headers: {\n accept: 'application/json',\n Authorization:\n 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlYTMyZWM5MzExODExYjA2NDkyNzhmZGFmYzEyMzAwZSIsInN1YiI6IjY1YzIwN2U2ZjQ0ZjI3MDE2M2MwYzBjMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.zkFtcEcge5gUigfN2sq7K5C-DaNfEfDz1qyoSucACIQ',\n },\n};\n\nexport { axios, baseOptions };\n"],"names":["fetchMovieDetails","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","movie_id","_yield$axios$get","data","_context","prev","next","axios","concat","baseOptions","sent","abrupt","stop","_x","apply","arguments","movieId","useParams","_useQuery","useQuery","queryKey","queryFn","isPending","isError","error","_jsx","children","_jsxs","message","src","poster_path","alt","original_title","className","tagline","overview","genres","map","genre","name","id","production_countries","country","iso_3166_1","Link","to","Suspense","fallback","Outlet","headers","accept","Authorization"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.67db4e8a.js b/static/js/main.67db4e8a.js new file mode 100644 index 0000000..0ac3cad --- /dev/null +++ b/static/js/main.67db4e8a.js @@ -0,0 +1,3 @@ +/*! For license information please see main.67db4e8a.js.LICENSE.txt */ +!function(){var e={2758:function(e,t,n){"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;te&&(t=0,r=n,n=new Map)}return{get:function(e){var t=n.get(e);return void 0!==t?t:void 0!==(t=r.get(e))?(o(e,t),t):void 0},set:function(e,t){n.has(e)?n.set(e,t):o(e,t)}}}function h(e){var t=e.separator,n=1===t.length,r=t[0],o=t.length;return function(e){for(var a,i=[],l=0,u=0,s=0;su?a-u:void 0}}}function m(e){return(0,a.Z)({cache:v(e.cacheSize),splitModifiers:h(e)},u(e))}var y=/\s+/;function g(e,t){var n=t.splitModifiers,r=t.getClassGroupId,o=t.getConflictingClassGroupIds,a=new Set;return e.trim().split(y).map((function(e){var t=n(e),o=t.modifiers,a=t.hasImportantModifier,i=t.baseClassName,u=t.maybePostfixModifierPosition,s=r(u?i.substring(0,u):i),c=Boolean(u);if(!s){if(!u)return{isTailwindClass:!1,originalClassName:e};if(!(s=r(i)))return{isTailwindClass:!1,originalClassName:e};c=!1}var f=function(e){if(e.length<=1)return e;var t=[],n=[];return e.forEach((function(e){"["===e[0]?(t.push.apply(t,(0,l.Z)(n.sort()).concat([e])),n=[]):n.push(e)})),t.push.apply(t,(0,l.Z)(n.sort())),t}(o).join(":");return{isTailwindClass:!0,modifierId:a?f+"!":f,classGroupId:s,originalClassName:e,hasPostfixModifier:c}})).reverse().filter((function(e){if(!e.isTailwindClass)return!0;var t=e.modifierId,n=e.classGroupId,r=e.hasPostfixModifier,i=t+n;return!a.has(i)&&(a.add(i),o(n,r).forEach((function(e){return a.add(t+e)})),!0)})).reverse().map((function(e){return e.originalClassName})).join(" ")}function b(){for(var e,t,n=0,r="";n1?t-1:0),r=1;r=0&&(t.hash=e.substr(n),e=e.substr(0,n));var r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function S(e,t,n,o){void 0===o&&(o={});var a=o,i=a.window,l=void 0===i?document.defaultView:i,u=a.v5Compat,s=void 0!==u&&u,c=l.history,f=r.Pop,d=null,v=m();function m(){return(c.state||{idx:null}).idx}function g(){f=r.Pop;var e=m(),t=null==e?null:e-v;v=e,d&&d({action:f,location:S.location,delta:t})}function x(e){var t="null"!==l.location.origin?l.location.origin:l.location.href,n="string"===typeof e?e:k(e);return y(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==v&&(v=0,c.replaceState(p({},c.state,{idx:v}),""));var S={get action(){return f},get location(){return e(l,c)},listen:function(e){if(d)throw new Error("A history only accepts one active listener");return l.addEventListener(h,g),d=e,function(){l.removeEventListener(h,g),d=null}},createHref:function(e){return t(l,e)},createURL:x,encodeLocation:function(e){var t=x(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){f=r.Push;var o=w(S.location,e,t);n&&n(o,e);var a=b(o,v=m()+1),i=S.createHref(o);try{c.pushState(a,"",i)}catch(u){if(u instanceof DOMException&&"DataCloneError"===u.name)throw u;l.location.assign(i)}s&&d&&d({action:f,location:S.location,delta:1})},replace:function(e,t){f=r.Replace;var o=w(S.location,e,t);n&&n(o,e);var a=b(o,v=m()),i=S.createHref(o);c.replaceState(a,"",i),s&&d&&d({action:f,location:S.location,delta:0})},go:function(e){return c.go(e)}};return S}!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(v||(v={}));new Set(["lazy","caseSensitive","path","id","index","children"]);function E(e,t,n){void 0===n&&(n="/");var r=M(("string"===typeof t?x(t):t).pathname||"/",n);if(null==r)return null;var o=Z(e);!function(e){e.sort((function(e,t){return e.score!==t.score?t.score-e.score:function(e,t){var n=e.length===t.length&&e.slice(0,-1).every((function(e,n){return e===t[n]}));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((function(e){return e.childrenIndex})),t.routesMeta.map((function(e){return e.childrenIndex})))}))}(o);for(var a=null,i=0;null==a&&i0&&(y(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+l+'".'),Z(e.children,t,u,l)),(null!=e.path||e.index)&&t.push({path:l,score:N(l,e.index),routesMeta:u})};return e.forEach((function(e,t){var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?")){var r,a=(0,f.Z)(C(e.path));try{for(a.s();!(r=a.n()).done;){var i=r.value;o(e,t,i)}}catch(l){a.e(l)}finally{a.f()}}else o(e,t)})),t}function C(e){var t=e.split("/");if(0===t.length)return[];var n=(0,c.Z)(t),r=n[0],o=n.slice(1),a=r.endsWith("?"),i=r.replace(/\?$/,"");if(0===o.length)return a?[i,""]:[i];var l=C(o.join("/")),u=[];return u.push.apply(u,(0,d.Z)(l.map((function(e){return""===e?i:[i,e].join("/")})))),a&&u.push.apply(u,(0,d.Z)(l)),u.map((function(t){return e.startsWith("/")&&""===t?"/":t}))}var P=/^:[\w-]+$/,_=function(e){return"*"===e};function N(e,t){var n=e.split("/"),r=n.length;return n.some(_)&&(r+=-2),t&&(r+=2),n.filter((function(e){return!_(e)})).reduce((function(e,t){return e+(P.test(t)?3:""===t?1:10)}),r)}function O(e,t){for(var n=e.routesMeta,r={},o="/",a=[],i=0;i and the router will parse it for you.'}function z(e){return e.filter((function(e,t){return 0===t||e.route.path&&e.route.path.length>0}))}function j(e,t){var n=z(e);return t?n.map((function(t,n){return n===e.length-1?t.pathname:t.pathnameBase})):n.map((function(e){return e.pathnameBase}))}function F(e,t,n,r){var o;void 0===r&&(r=!1),"string"===typeof e?o=x(e):(y(!(o=p({},e)).pathname||!o.pathname.includes("?"),L("?","pathname","search",o)),y(!o.pathname||!o.pathname.includes("#"),L("#","pathname","hash",o)),y(!o.search||!o.search.includes("#"),L("#","search","hash",o)));var a,i=""===e||""===o.pathname,l=i?"/":o.pathname;if(null==l)a=n;else{var u=t.length-1;if(!r&&l.startsWith("..")){for(var s=l.split("/");".."===s[0];)s.shift(),u-=1;o.pathname=s.join("/")}a=u>=0?t[u]:"/"}var c=function(e,t){void 0===t&&(t="/");var n="string"===typeof e?x(e):e,r=n.pathname,o=n.search,a=void 0===o?"":o,i=n.hash,l=void 0===i?"":i,u=r?r.startsWith("/")?r:function(e,t){var n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((function(e){".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(r,t):t;return{pathname:u,search:A(a),hash:U(l)}}(o,a),f=l&&"/"!==l&&l.endsWith("/"),d=(i||"."===l)&&n.endsWith("/");return c.pathname.endsWith("/")||!f&&!d||(c.pathname+="/"),c}var D=function(e){return e.join("/").replace(/\/\/+/g,"/")},I=function(e){return e.replace(/\/+$/,"").replace(/^\/*/,"/")},A=function(e){return e&&"?"!==e?e.startsWith("?")?e:"?"+e:""},U=function(e){return e&&"#"!==e?e.startsWith("#")?e:"#"+e:""},W=function(e){(0,i.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,a.Z)(this,n),t.apply(this,arguments)}return(0,o.Z)(n)}((0,u.Z)(Error));function V(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}var B=["post","put","patch","delete"],Q=(new Set(B),["get"].concat(B));new Set(Q),new Set([301,302,303,307,308]),new Set([307,308]);Symbol("deferred")},4463:function(e,t,n){"use strict";var r=n(2791),o=n(5296);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n