@shell-shock/preset-cli 0.9.10 → 0.9.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +16 -0
- package/dist/_virtual/_rolldown/runtime.mjs +45 -0
- package/dist/components/upgrade-builtin.cjs +1 -1
- package/dist/components/upgrade-builtin.mjs +1 -1
- package/dist/components/upgrade-builtin.mjs.map +1 -1
- package/dist/index.cjs +1 -2
- package/dist/index.mjs +0 -1
- package/dist/index.mjs.map +1 -1
- package/dist/node_modules/.pnpm/@mdit_plugin-alert@0.23.2_markdown-it@14.1.1/node_modules/@mdit/plugin-alert/dist/index.cjs +94 -0
- package/dist/node_modules/.pnpm/@mdit_plugin-alert@0.23.2_markdown-it@14.1.1/node_modules/@mdit/plugin-alert/dist/index.mjs +94 -0
- package/dist/node_modules/.pnpm/@mdit_plugin-alert@0.23.2_markdown-it@14.1.1/node_modules/@mdit/plugin-alert/dist/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/ansi-styles@6.2.3/node_modules/ansi-styles/index.cjs +167 -0
- package/dist/node_modules/.pnpm/ansi-styles@6.2.3/node_modules/ansi-styles/index.mjs +167 -0
- package/dist/node_modules/.pnpm/ansi-styles@6.2.3/node_modules/ansi-styles/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/chalk-string@4.0.0/node_modules/chalk-string/build/src/args.cjs +36 -0
- package/dist/node_modules/.pnpm/chalk-string@4.0.0/node_modules/chalk-string/build/src/args.mjs +36 -0
- package/dist/node_modules/.pnpm/chalk-string@4.0.0/node_modules/chalk-string/build/src/args.mjs.map +1 -0
- package/dist/node_modules/.pnpm/chalk-string@4.0.0/node_modules/chalk-string/build/src/main.cjs +32 -0
- package/dist/node_modules/.pnpm/chalk-string@4.0.0/node_modules/chalk-string/build/src/main.mjs +33 -0
- package/dist/node_modules/.pnpm/chalk-string@4.0.0/node_modules/chalk-string/build/src/main.mjs.map +1 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.cjs +133 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.mjs +134 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.cjs +32 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.mjs +31 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.mjs.map +1 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.cjs +169 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.mjs +167 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.cjs +98 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.mjs +95 -0
- package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/colors-option@6.1.2/node_modules/colors-option/build/src/main.cjs +23 -0
- package/dist/node_modules/.pnpm/colors-option@6.1.2/node_modules/colors-option/build/src/main.mjs +23 -0
- package/dist/node_modules/.pnpm/colors-option@6.1.2/node_modules/colors-option/build/src/main.mjs.map +1 -0
- package/dist/node_modules/.pnpm/colors-option@6.1.2/node_modules/colors-option/build/src/options.cjs +36 -0
- package/dist/node_modules/.pnpm/colors-option@6.1.2/node_modules/colors-option/build/src/options.mjs +36 -0
- package/dist/node_modules/.pnpm/colors-option@6.1.2/node_modules/colors-option/build/src/options.mjs.map +1 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.cjs +373 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.mjs +374 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.mjs.map +1 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.cjs +60 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.mjs +59 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.mjs.map +1 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.cjs +6 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.mjs +6 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.mjs.map +1 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.cjs +6 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.mjs +6 -0
- package/dist/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.mjs.map +1 -0
- package/dist/node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode-codepoint.cjs +59 -0
- package/dist/node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode-codepoint.mjs +59 -0
- package/dist/node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode-codepoint.mjs.map +1 -0
- package/dist/node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode.cjs +338 -0
- package/dist/node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode.mjs +333 -0
- package/dist/node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/decode.mjs.map +1 -0
- package/dist/node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-html.cjs +6 -0
- package/dist/node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-html.mjs +6 -0
- package/dist/node_modules/.pnpm/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-html.mjs.map +1 -0
- package/dist/node_modules/.pnpm/he@1.2.0/node_modules/he/he.cjs +4095 -0
- package/dist/node_modules/.pnpm/he@1.2.0/node_modules/he/he.mjs +4093 -0
- package/dist/node_modules/.pnpm/he@1.2.0/node_modules/he/he.mjs.map +1 -0
- package/dist/node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.cjs +10 -0
- package/dist/node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.mjs +10 -0
- package/dist/node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/index.cjs +449 -0
- package/dist/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/index.mjs +450 -0
- package/dist/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/lib/re.cjs +47 -0
- package/dist/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/lib/re.mjs +48 -0
- package/dist/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/lib/re.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it-abbr@2.0.0/node_modules/markdown-it-abbr/index.cjs +94 -0
- package/dist/node_modules/.pnpm/markdown-it-abbr@2.0.0/node_modules/markdown-it-abbr/index.mjs +94 -0
- package/dist/node_modules/.pnpm/markdown-it-abbr@2.0.0/node_modules/markdown-it-abbr/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it-container@4.0.0/node_modules/markdown-it-container/index.cjs +78 -0
- package/dist/node_modules/.pnpm/markdown-it-container@4.0.0/node_modules/markdown-it-container/index.mjs +78 -0
- package/dist/node_modules/.pnpm/markdown-it-container@4.0.0/node_modules/markdown-it-container/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it-deflist@3.0.0/node_modules/markdown-it-deflist/index.cjs +123 -0
- package/dist/node_modules/.pnpm/markdown-it-deflist@3.0.0/node_modules/markdown-it-deflist/index.mjs +123 -0
- package/dist/node_modules/.pnpm/markdown-it-deflist@3.0.0/node_modules/markdown-it-deflist/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it-footnote@4.0.0/node_modules/markdown-it-footnote/index.cjs +246 -0
- package/dist/node_modules/.pnpm/markdown-it-footnote@4.0.0/node_modules/markdown-it-footnote/index.mjs +244 -0
- package/dist/node_modules/.pnpm/markdown-it-footnote@4.0.0/node_modules/markdown-it-footnote/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it-ins@4.0.0/node_modules/markdown-it-ins/index.cjs +80 -0
- package/dist/node_modules/.pnpm/markdown-it-ins@4.0.0/node_modules/markdown-it-ins/index.mjs +80 -0
- package/dist/node_modules/.pnpm/markdown-it-ins@4.0.0/node_modules/markdown-it-ins/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it-mark@4.0.0/node_modules/markdown-it-mark/index.cjs +80 -0
- package/dist/node_modules/.pnpm/markdown-it-mark@4.0.0/node_modules/markdown-it-mark/index.mjs +80 -0
- package/dist/node_modules/.pnpm/markdown-it-mark@4.0.0/node_modules/markdown-it-mark/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it-sub@2.0.0/node_modules/markdown-it-sub/index.cjs +45 -0
- package/dist/node_modules/.pnpm/markdown-it-sub@2.0.0/node_modules/markdown-it-sub/index.mjs +45 -0
- package/dist/node_modules/.pnpm/markdown-it-sub@2.0.0/node_modules/markdown-it-sub/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it-sup@2.0.0/node_modules/markdown-it-sup/index.cjs +45 -0
- package/dist/node_modules/.pnpm/markdown-it-sup@2.0.0/node_modules/markdown-it-sup/index.mjs +45 -0
- package/dist/node_modules/.pnpm/markdown-it-sup@2.0.0/node_modules/markdown-it-sup/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it-task-lists@2.1.1/node_modules/markdown-it-task-lists/index.cjs +94 -0
- package/dist/node_modules/.pnpm/markdown-it-task-lists@2.1.1/node_modules/markdown-it-task-lists/index.mjs +92 -0
- package/dist/node_modules/.pnpm/markdown-it-task-lists@2.1.1/node_modules/markdown-it-task-lists/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/index.cjs +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/index.mjs +3 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/common/html_blocks.cjs +69 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/common/html_blocks.mjs +69 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/common/html_blocks.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/common/html_re.cjs +9 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/common/html_re.mjs +8 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/common/html_re.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/common/utils.cjs +205 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/common/utils.mjs +189 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/common/utils.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/index.cjs +19 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/index.mjs +15 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/parse_link_destination.cjs +61 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +62 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/parse_link_label.cjs +35 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +35 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/parse_link_label.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/parse_link_title.cjs +43 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +44 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/helpers/parse_link_title.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/index.cjs +488 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/index.mjs +489 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/parser_block.cjs +148 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/parser_block.mjs +149 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/parser_block.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/parser_core.cjs +51 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/parser_core.mjs +52 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/parser_core.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/parser_inline.cjs +126 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/parser_inline.mjs +127 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/parser_inline.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/presets/commonmark.cjs +57 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/presets/commonmark.mjs +57 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/presets/commonmark.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/presets/default.cjs +23 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/presets/default.mjs +23 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/presets/default.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/presets/zero.cjs +31 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/presets/zero.mjs +31 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/presets/zero.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/renderer.cjs +217 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/renderer.mjs +218 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/renderer.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/ruler.cjs +274 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/ruler.mjs +274 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/ruler.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/blockquote.cjs +107 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/blockquote.mjs +108 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/blockquote.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/code.cjs +27 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/code.mjs +27 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/code.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/fence.cjs +48 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/fence.mjs +48 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/fence.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/heading.cjs +35 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/heading.mjs +36 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/heading.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/hr.cjs +26 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/hr.mjs +27 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/hr.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/html_block.cjs +72 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/html_block.mjs +73 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/html_block.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/lheading.cjs +53 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/lheading.mjs +53 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/lheading.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/list.cjs +157 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/list.mjs +158 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/list.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/paragraph.cjs +32 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/paragraph.mjs +32 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/paragraph.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/reference.cjs +140 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/reference.mjs +141 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/reference.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/state_block.cjs +112 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/state_block.mjs +113 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/state_block.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/table.cjs +139 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/table.mjs +140 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_block/table.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/block.cjs +15 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/block.mjs +15 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/block.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/inline.cjs +12 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/inline.mjs +12 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/inline.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/linkify.cjs +81 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/linkify.mjs +82 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/linkify.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/normalize.cjs +13 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/normalize.mjs +13 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/normalize.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/replacements.cjs +45 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/replacements.mjs +45 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/replacements.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/smartquotes.cjs +112 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +113 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/smartquotes.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/state_core.cjs +14 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/state_core.mjs +15 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/state_core.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/text_join.cjs +22 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/text_join.mjs +22 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_core/text_join.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/autolink.cjs +55 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/autolink.mjs +55 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/autolink.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/backticks.cjs +41 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/backticks.mjs +41 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/backticks.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/balance_pairs.cjs +62 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +62 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/emphasis.cjs +64 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +64 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/emphasis.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/entity.cjs +45 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/entity.mjs +46 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/entity.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/escape.cjs +48 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/escape.mjs +49 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/escape.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/fragments_join.cjs +22 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs +22 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/html_inline.cjs +34 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +35 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/html_inline.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/image.cjs +82 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/image.mjs +83 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/image.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/link.cjs +84 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/link.mjs +85 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/link.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/linkify.cjs +42 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/linkify.mjs +42 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/linkify.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/newline.cjs +26 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/newline.mjs +27 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/newline.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/state_inline.cjs +74 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +75 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/state_inline.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/strikethrough.cjs +80 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +80 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/text.cjs +41 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/text.mjs +41 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/rules_inline/text.mjs.map +1 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/token.cjs +157 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/token.mjs +157 -0
- package/dist/node_modules/.pnpm/markdown-it@14.1.1/node_modules/markdown-it/lib/token.mjs.map +1 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/index.cjs +21 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/index.mjs +17 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/decode.cjs +74 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/decode.mjs +74 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/decode.mjs.map +1 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/encode.cjs +57 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/encode.mjs +57 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/encode.mjs.map +1 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/format.cjs +18 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/format.mjs +18 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/format.mjs.map +1 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/parse.cjs +175 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/parse.mjs +175 -0
- package/dist/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/parse.mjs.map +1 -0
- package/dist/node_modules/.pnpm/normalize-html-whitespace@1.0.0/node_modules/normalize-html-whitespace/index.cjs +19 -0
- package/dist/node_modules/.pnpm/normalize-html-whitespace@1.0.0/node_modules/normalize-html-whitespace/index.mjs +15 -0
- package/dist/node_modules/.pnpm/normalize-html-whitespace@1.0.0/node_modules/normalize-html-whitespace/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/doctype.cjs +104 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/doctype.mjs +104 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/doctype.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/error-codes.cjs +73 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/error-codes.mjs +68 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/error-codes.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/foreign-content.cjs +266 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/foreign-content.mjs +262 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/foreign-content.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/html.cjs +575 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/html.mjs +543 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/html.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/token.cjs +27 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/token.mjs +21 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/token.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/unicode.cjs +105 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/unicode.mjs +94 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/common/unicode.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/index.cjs +33 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/index.mjs +34 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/formatting-element-list.cjs +99 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/formatting-element-list.mjs +93 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/formatting-element-list.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/index.cjs +2544 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/index.mjs +2545 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/open-element-stack.cjs +296 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/open-element-stack.mjs +297 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/open-element-stack.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/serializer/index.cjs +26 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/serializer/index.mjs +28 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/serializer/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/tokenizer/index.cjs +2069 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/tokenizer/index.mjs +2069 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/tokenizer/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/tokenizer/preprocessor.cjs +156 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/tokenizer/preprocessor.mjs +157 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/tokenizer/preprocessor.mjs.map +1 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/tree-adapters/default.cjs +166 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/tree-adapters/default.mjs +167 -0
- package/dist/node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/tree-adapters/default.mjs.map +1 -0
- package/dist/node_modules/.pnpm/punycode.js@2.3.1/node_modules/punycode.js/punycode.cjs +299 -0
- package/dist/node_modules/.pnpm/punycode.js@2.3.1/node_modules/punycode.js/punycode.mjs +295 -0
- package/dist/node_modules/.pnpm/punycode.js@2.3.1/node_modules/punycode.js/punycode.mjs.map +1 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cc/regex.cjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cc/regex.mjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cc/regex.mjs.map +1 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cf/regex.cjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cf/regex.mjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cf/regex.mjs.map +1 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/P/regex.cjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/P/regex.mjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/P/regex.mjs.map +1 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/S/regex.cjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/S/regex.mjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/S/regex.mjs.map +1 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Z/regex.cjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Z/regex.mjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Z/regex.mjs.map +1 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/index.cjs +25 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/index.mjs +21 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/index.mjs.map +1 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/properties/Any/regex.cjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/properties/Any/regex.mjs +6 -0
- package/dist/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/properties/Any/regex.mjs.map +1 -0
- package/dist/node_modules/.pnpm/wrap-ansi@10.0.0/node_modules/wrap-ansi/index.cjs +15 -0
- package/dist/node_modules/.pnpm/wrap-ansi@10.0.0/node_modules/wrap-ansi/index.mjs +17 -0
- package/dist/node_modules/.pnpm/wrap-ansi@10.0.0/node_modules/wrap-ansi/index.mjs.map +1 -0
- package/dist/{plugin-changelog → packages/plugin-changelog}/dist/components/changelog-command.cjs +5 -4
- package/dist/packages/plugin-changelog/dist/components/changelog-command.mjs +4 -3
- package/dist/packages/plugin-changelog/dist/components/changelog-command.mjs.map +1 -1
- package/dist/{plugin-changelog → packages/plugin-changelog}/dist/index.cjs +1 -1
- package/dist/packages/unified/dist/html-Di3_LwV3.cjs +337 -0
- package/dist/packages/unified/dist/html-Di3_LwV3.mjs +338 -0
- package/dist/packages/unified/dist/html-Di3_LwV3.mjs.map +1 -0
- package/dist/packages/unified/dist/markdown/index.cjs +1 -0
- package/dist/packages/unified/dist/markdown/index.mjs +3 -0
- package/dist/packages/unified/dist/markdown-OuY_JOk0.cjs +82 -0
- package/dist/packages/unified/dist/markdown-OuY_JOk0.mjs +83 -0
- package/dist/packages/unified/dist/markdown-OuY_JOk0.mjs.map +1 -0
- package/package.json +39 -12
- package/dist/packages/unified/dist/markdown-Bs-BRrSC.mjs +0 -10
- package/dist/packages/unified/dist/markdown-Bs-BRrSC.mjs.map +0 -1
- package/dist/unified/dist/markdown-Bs-BRrSC.cjs +0 -10
- /package/dist/{plugin-changelog → packages/plugin-changelog}/dist/components/index.cjs +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["$","TN","foreignContent.isIntegrationPoint","doctype.getDocumentMode","doctype.isConforming","foreignContent.causesExit"],"sources":["../../../../../../../../../../node_modules/.pnpm/parse5@8.0.0/node_modules/parse5/dist/parser/index.js"],"sourcesContent":["import { Tokenizer, TokenizerMode } from '../tokenizer/index.js';\nimport { OpenElementStack } from './open-element-stack.js';\nimport { FormattingElementList, EntryType } from './formatting-element-list.js';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\nimport * as doctype from '../common/doctype.js';\nimport * as foreignContent from '../common/foreign-content.js';\nimport { ERR } from '../common/error-codes.js';\nimport * as unicode from '../common/unicode.js';\nimport { TAG_ID as $, TAG_NAMES as TN, NS, ATTRS, SPECIAL_ELEMENTS, DOCUMENT_MODE, NUMBERED_HEADERS, getTagID, } from '../common/html.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n//Insertion modes\nvar InsertionMode;\n(function (InsertionMode) {\n InsertionMode[InsertionMode[\"INITIAL\"] = 0] = \"INITIAL\";\n InsertionMode[InsertionMode[\"BEFORE_HTML\"] = 1] = \"BEFORE_HTML\";\n InsertionMode[InsertionMode[\"BEFORE_HEAD\"] = 2] = \"BEFORE_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD\"] = 3] = \"IN_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD_NO_SCRIPT\"] = 4] = \"IN_HEAD_NO_SCRIPT\";\n InsertionMode[InsertionMode[\"AFTER_HEAD\"] = 5] = \"AFTER_HEAD\";\n InsertionMode[InsertionMode[\"IN_BODY\"] = 6] = \"IN_BODY\";\n InsertionMode[InsertionMode[\"TEXT\"] = 7] = \"TEXT\";\n InsertionMode[InsertionMode[\"IN_TABLE\"] = 8] = \"IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TABLE_TEXT\"] = 9] = \"IN_TABLE_TEXT\";\n InsertionMode[InsertionMode[\"IN_CAPTION\"] = 10] = \"IN_CAPTION\";\n InsertionMode[InsertionMode[\"IN_COLUMN_GROUP\"] = 11] = \"IN_COLUMN_GROUP\";\n InsertionMode[InsertionMode[\"IN_TABLE_BODY\"] = 12] = \"IN_TABLE_BODY\";\n InsertionMode[InsertionMode[\"IN_ROW\"] = 13] = \"IN_ROW\";\n InsertionMode[InsertionMode[\"IN_CELL\"] = 14] = \"IN_CELL\";\n InsertionMode[InsertionMode[\"IN_SELECT\"] = 15] = \"IN_SELECT\";\n InsertionMode[InsertionMode[\"IN_SELECT_IN_TABLE\"] = 16] = \"IN_SELECT_IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TEMPLATE\"] = 17] = \"IN_TEMPLATE\";\n InsertionMode[InsertionMode[\"AFTER_BODY\"] = 18] = \"AFTER_BODY\";\n InsertionMode[InsertionMode[\"IN_FRAMESET\"] = 19] = \"IN_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_FRAMESET\"] = 20] = \"AFTER_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_BODY\"] = 21] = \"AFTER_AFTER_BODY\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_FRAMESET\"] = 22] = \"AFTER_AFTER_FRAMESET\";\n})(InsertionMode || (InsertionMode = {}));\nconst BASE_LOC = {\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n};\nconst TABLE_STRUCTURE_TAGS = new Set([$.TABLE, $.TBODY, $.TFOOT, $.THEAD, $.TR]);\nconst defaultParserOptions = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n treeAdapter: defaultTreeAdapter,\n onParseError: null,\n};\n//Parser\nexport class Parser {\n constructor(options, document, \n /** @internal */\n fragmentContext = null, \n /** @internal */\n scriptHandler = null) {\n this.fragmentContext = fragmentContext;\n this.scriptHandler = scriptHandler;\n this.currentToken = null;\n this.stopped = false;\n /** @internal */\n this.insertionMode = InsertionMode.INITIAL;\n /** @internal */\n this.originalInsertionMode = InsertionMode.INITIAL;\n /** @internal */\n this.headElement = null;\n /** @internal */\n this.formElement = null;\n /** Indicates that the current node is not an element in the HTML namespace */\n this.currentNotInHTML = false;\n /**\n * The template insertion mode stack is maintained from the left.\n * Ie. the topmost element will always have index 0.\n *\n * @internal\n */\n this.tmplInsertionModeStack = [];\n /** @internal */\n this.pendingCharacterTokens = [];\n /** @internal */\n this.hasNonWhitespacePendingCharacterToken = false;\n /** @internal */\n this.framesetOk = true;\n /** @internal */\n this.skipNextNewLine = false;\n /** @internal */\n this.fosterParentingEnabled = false;\n this.options = {\n ...defaultParserOptions,\n ...options,\n };\n this.treeAdapter = this.options.treeAdapter;\n this.onParseError = this.options.onParseError;\n // Always enable location info if we report parse errors.\n if (this.onParseError) {\n this.options.sourceCodeLocationInfo = true;\n }\n this.document = document !== null && document !== void 0 ? document : this.treeAdapter.createDocument();\n this.tokenizer = new Tokenizer(this.options, this);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n this.fragmentContextID = fragmentContext ? getTagID(this.treeAdapter.getTagName(fragmentContext)) : $.UNKNOWN;\n this._setContextModes(fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : this.document, this.fragmentContextID);\n this.openElements = new OpenElementStack(this.document, this.treeAdapter, this);\n }\n // API\n static parse(html, options) {\n const parser = new this(options);\n parser.tokenizer.write(html, true);\n return parser.document;\n }\n static getFragmentParser(fragmentContext, options) {\n const opts = {\n ...defaultParserOptions,\n ...options,\n };\n //NOTE: use a <template> element as the fragment context if no context element was provided,\n //so we will parse in a \"forgiving\" manner\n fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : (fragmentContext = opts.treeAdapter.createElement(TN.TEMPLATE, NS.HTML, []));\n //NOTE: create a fake element which will be used as the `document` for fragment parsing.\n //This is important for jsdom, where a new `document` cannot be created. This led to\n //fragment parsing messing with the main `document`.\n const documentMock = opts.treeAdapter.createElement('documentmock', NS.HTML, []);\n const parser = new this(opts, documentMock, fragmentContext);\n if (parser.fragmentContextID === $.TEMPLATE) {\n parser.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n }\n parser._initTokenizerForFragmentParsing();\n parser._insertFakeRootElement();\n parser._resetInsertionMode();\n parser._findFormInFragmentContext();\n return parser;\n }\n getFragment() {\n const rootElement = this.treeAdapter.getFirstChild(this.document);\n const fragment = this.treeAdapter.createDocumentFragment();\n this._adoptNodes(rootElement, fragment);\n return fragment;\n }\n //Errors\n /** @internal */\n _err(token, code, beforeToken) {\n var _a;\n if (!this.onParseError)\n return;\n const loc = (_a = token.location) !== null && _a !== void 0 ? _a : BASE_LOC;\n const err = {\n code,\n startLine: loc.startLine,\n startCol: loc.startCol,\n startOffset: loc.startOffset,\n endLine: beforeToken ? loc.startLine : loc.endLine,\n endCol: beforeToken ? loc.startCol : loc.endCol,\n endOffset: beforeToken ? loc.startOffset : loc.endOffset,\n };\n this.onParseError(err);\n }\n //Stack events\n /** @internal */\n onItemPush(node, tid, isTop) {\n var _a, _b;\n (_b = (_a = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a, node);\n if (isTop && this.openElements.stackTop > 0)\n this._setContextModes(node, tid);\n }\n /** @internal */\n onItemPop(node, isTop) {\n var _a, _b;\n if (this.options.sourceCodeLocationInfo) {\n this._setEndLocation(node, this.currentToken);\n }\n (_b = (_a = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a, node, this.openElements.current);\n if (isTop) {\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n this._setContextModes(current, currentTagId);\n }\n }\n _setContextModes(current, tid) {\n const isHTML = current === this.document || (current && this.treeAdapter.getNamespaceURI(current) === NS.HTML);\n this.currentNotInHTML = !isHTML;\n this.tokenizer.inForeignNode =\n !isHTML && current !== undefined && tid !== undefined && !this._isIntegrationPoint(tid, current);\n }\n /** @protected */\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = InsertionMode.TEXT;\n }\n switchToPlaintextParsing() {\n this.insertionMode = InsertionMode.TEXT;\n this.originalInsertionMode = InsertionMode.IN_BODY;\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n }\n //Fragment parsing\n /** @protected */\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n /** @protected */\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n while (node) {\n if (this.treeAdapter.getTagName(node) === TN.FORM) {\n this.formElement = node;\n break;\n }\n node = this.treeAdapter.getParentNode(node);\n }\n }\n _initTokenizerForFragmentParsing() {\n if (!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== NS.HTML) {\n return;\n }\n switch (this.fragmentContextID) {\n case $.TITLE:\n case $.TEXTAREA: {\n this.tokenizer.state = TokenizerMode.RCDATA;\n break;\n }\n case $.STYLE:\n case $.XMP:\n case $.IFRAME:\n case $.NOEMBED:\n case $.NOFRAMES:\n case $.NOSCRIPT: {\n this.tokenizer.state = TokenizerMode.RAWTEXT;\n break;\n }\n case $.SCRIPT: {\n this.tokenizer.state = TokenizerMode.SCRIPT_DATA;\n break;\n }\n case $.PLAINTEXT: {\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n break;\n }\n default:\n // Do nothing\n }\n }\n //Tree mutation\n /** @protected */\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n if (token.location) {\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const docTypeNode = documentChildren.find((node) => this.treeAdapter.isDocumentTypeNode(node));\n if (docTypeNode) {\n this.treeAdapter.setNodeSourceCodeLocation(docTypeNode, token.location);\n }\n }\n }\n /** @protected */\n _attachElementToTree(element, location) {\n if (this.options.sourceCodeLocationInfo) {\n const loc = location && {\n ...location,\n startTag: location,\n };\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n }\n else {\n const parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.appendChild(parent !== null && parent !== void 0 ? parent : this.document, element);\n }\n }\n /**\n * For self-closing tags. Add an element to the tree, but skip adding it\n * to the stack.\n */\n /** @protected */\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n }\n /** @protected */\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n this.openElements.push(element, token.tagID);\n }\n /** @protected */\n _insertFakeElement(tagName, tagID) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n this._attachElementToTree(element, null);\n this.openElements.push(element, tagID);\n }\n /** @protected */\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl, token.location);\n this.openElements.push(tmpl, token.tagID);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(content, null);\n }\n /** @protected */\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement(TN.HTML, NS.HTML, []);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(element, null);\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element, $.HTML);\n }\n /** @protected */\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n this.treeAdapter.appendChild(parent, commentNode);\n if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n }\n }\n /** @protected */\n _insertCharacters(token) {\n let parent;\n let beforeElement;\n if (this._shouldFosterParentOnInsertion()) {\n ({ parent, beforeElement } = this._findFosterParentingLocation());\n if (beforeElement) {\n this.treeAdapter.insertTextBefore(parent, token.chars, beforeElement);\n }\n else {\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n else {\n parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.insertText(parent, token.chars);\n }\n if (!token.location)\n return;\n const siblings = this.treeAdapter.getChildNodes(parent);\n const textNodeIdx = beforeElement ? siblings.lastIndexOf(beforeElement) : siblings.length;\n const textNode = siblings[textNodeIdx - 1];\n //NOTE: if we have a location assigned by another token, then just update the end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n }\n else if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n /** @protected */\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n /** @protected */\n _setEndLocation(element, closingToken) {\n if (this.treeAdapter.getNodeSourceCodeLocation(element) && closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n const endLoc = \n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n closingToken.type === TokenType.END_TAG && tn === closingToken.tagName\n ? {\n endTag: { ...ctLoc },\n endLine: ctLoc.endLine,\n endCol: ctLoc.endCol,\n endOffset: ctLoc.endOffset,\n }\n : {\n endLine: ctLoc.startLine,\n endCol: ctLoc.startCol,\n endOffset: ctLoc.startOffset,\n };\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n //Token processing\n shouldProcessStartTagTokenInForeignContent(token) {\n // Check that neither current === document, or ns === NS.HTML\n if (!this.currentNotInHTML)\n return false;\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n if (token.tagID === $.SVG &&\n this.treeAdapter.getTagName(current) === TN.ANNOTATION_XML &&\n this.treeAdapter.getNamespaceURI(current) === NS.MATHML) {\n return false;\n }\n return (\n // Check that `current` is not an integration point for HTML or MathML elements.\n this.tokenizer.inForeignNode ||\n // If it _is_ an integration point, then we might have to check that it is not an HTML\n // integration point.\n ((token.tagID === $.MGLYPH || token.tagID === $.MALIGNMARK) &&\n currentTagId !== undefined &&\n !this._isIntegrationPoint(currentTagId, current, NS.HTML)));\n }\n /** @protected */\n _processToken(token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n this.onCharacter(token);\n break;\n }\n case TokenType.NULL_CHARACTER: {\n this.onNullCharacter(token);\n break;\n }\n case TokenType.COMMENT: {\n this.onComment(token);\n break;\n }\n case TokenType.DOCTYPE: {\n this.onDoctype(token);\n break;\n }\n case TokenType.START_TAG: {\n this._processStartTag(token);\n break;\n }\n case TokenType.END_TAG: {\n this.onEndTag(token);\n break;\n }\n case TokenType.EOF: {\n this.onEof(token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n this.onWhitespaceCharacter(token);\n break;\n }\n }\n }\n //Integration points\n /** @protected */\n _isIntegrationPoint(tid, element, foreignNS) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n return foreignContent.isIntegrationPoint(tid, ns, attrs, foreignNS);\n }\n //Active formatting elements reconstruction\n /** @protected */\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.entries.length;\n if (listLength) {\n const endIndex = this.activeFormattingElements.entries.findIndex((entry) => entry.type === EntryType.Marker || this.openElements.contains(entry.element));\n const unopenIdx = endIndex === -1 ? listLength - 1 : endIndex - 1;\n for (let i = unopenIdx; i >= 0; i--) {\n const entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n //Close elements\n /** @protected */\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = InsertionMode.IN_ROW;\n }\n /** @protected */\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n //Insertion modes\n /** @protected */\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n //Insertion mode reset map\n switch (i === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i]) {\n case $.TR: {\n this.insertionMode = InsertionMode.IN_ROW;\n return;\n }\n case $.TBODY:\n case $.THEAD:\n case $.TFOOT: {\n this.insertionMode = InsertionMode.IN_TABLE_BODY;\n return;\n }\n case $.CAPTION: {\n this.insertionMode = InsertionMode.IN_CAPTION;\n return;\n }\n case $.COLGROUP: {\n this.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n return;\n }\n case $.TABLE: {\n this.insertionMode = InsertionMode.IN_TABLE;\n return;\n }\n case $.BODY: {\n this.insertionMode = InsertionMode.IN_BODY;\n return;\n }\n case $.FRAMESET: {\n this.insertionMode = InsertionMode.IN_FRAMESET;\n return;\n }\n case $.SELECT: {\n this._resetInsertionModeForSelect(i);\n return;\n }\n case $.TEMPLATE: {\n this.insertionMode = this.tmplInsertionModeStack[0];\n return;\n }\n case $.HTML: {\n this.insertionMode = this.headElement ? InsertionMode.AFTER_HEAD : InsertionMode.BEFORE_HEAD;\n return;\n }\n case $.TD:\n case $.TH: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_CELL;\n return;\n }\n break;\n }\n case $.HEAD: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_HEAD;\n return;\n }\n break;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_BODY;\n }\n /** @protected */\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const tn = this.openElements.tagIDs[i];\n if (tn === $.TEMPLATE) {\n break;\n }\n else if (tn === $.TABLE) {\n this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE;\n return;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_SELECT;\n }\n //Foster parenting\n /** @protected */\n _isElementCausesFosterParenting(tn) {\n return TABLE_STRUCTURE_TAGS.has(tn);\n }\n /** @protected */\n _shouldFosterParentOnInsertion() {\n return (this.fosterParentingEnabled &&\n this.openElements.currentTagId !== undefined &&\n this._isElementCausesFosterParenting(this.openElements.currentTagId));\n }\n /** @protected */\n _findFosterParentingLocation() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n switch (this.openElements.tagIDs[i]) {\n case $.TEMPLATE: {\n if (this.treeAdapter.getNamespaceURI(openElement) === NS.HTML) {\n return { parent: this.treeAdapter.getTemplateContent(openElement), beforeElement: null };\n }\n break;\n }\n case $.TABLE: {\n const parent = this.treeAdapter.getParentNode(openElement);\n if (parent) {\n return { parent, beforeElement: openElement };\n }\n return { parent: this.openElements.items[i - 1], beforeElement: null };\n }\n default:\n // Do nothing\n }\n }\n return { parent: this.openElements.items[0], beforeElement: null };\n }\n /** @protected */\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n }\n else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n //Special elements\n /** @protected */\n _isSpecialElement(element, id) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n return SPECIAL_ELEMENTS[ns].has(id);\n }\n /** @internal */\n onCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n characterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE: {\n characterInBody(this, token);\n break;\n }\n case InsertionMode.TEXT:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n characterInTableText(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onNullCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n nullCharacterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onComment(token) {\n this.skipNextNewLine = false;\n if (this.currentNotInHTML) {\n appendComment(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL:\n case InsertionMode.BEFORE_HTML:\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n appendComment(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n appendCommentToRootHtmlElement(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n appendCommentToDocument(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onDoctype(token) {\n this.skipNextNewLine = false;\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n doctypeInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD: {\n this._err(token, ERR.misplacedDoctype);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onStartTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n this._processStartTag(token);\n if (token.selfClosing && !token.ackSelfClosing) {\n this._err(token, ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n /**\n * Processes a given start tag.\n *\n * `onStartTag` checks if a self-closing tag was recognized. When a token\n * is moved inbetween multiple insertion modes, this check for self-closing\n * could lead to false positives. To avoid this, `_processStartTag` is used\n * for nested calls.\n *\n * @param token The token to process.\n * @protected\n */\n _processStartTag(token) {\n if (this.shouldProcessStartTagTokenInForeignContent(token)) {\n startTagInForeignContent(this, token);\n }\n else {\n this._startTagOutsideForeignContent(token);\n }\n }\n /** @protected */\n _startTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n startTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n startTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n startTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n startTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n startTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n startTagInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n startTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n startTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n startTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n startTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n startTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n startTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n startTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n startTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n startTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n startTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n startTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n startTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n startTagAfterAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n startTagAfterAfterFrameset(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onEndTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n if (this.currentNotInHTML) {\n endTagInForeignContent(this, token);\n }\n else {\n this._endTagOutsideForeignContent(token);\n }\n }\n /** @protected */\n _endTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n endTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n endTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n endTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n endTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n endTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n endTagInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n endTagInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n endTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n endTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n endTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n endTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n endTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n endTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n endTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n endTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n endTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n endTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n endTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n endTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onEof(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n eofInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n eofInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n eofInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n stopParsing(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n /** @internal */\n onWhitespaceCharacter(token) {\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n if (token.chars.charCodeAt(0) === unicode.CODE_POINTS.LINE_FEED) {\n if (token.chars.length === 1) {\n return;\n }\n token.chars = token.chars.substr(1);\n }\n }\n if (this.tokenizer.inForeignNode) {\n this._insertCharacters(token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.TEXT:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.AFTER_BODY:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n whitespaceCharacterInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n whitespaceCharacterInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n}\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n }\n else if (!p.openElements.hasInScope(token.tagID)) {\n formattingElementEntry = null;\n }\n }\n else {\n genericEndTagInBody(p, token);\n }\n return formattingElementEntry;\n}\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n let idx = p.openElements.stackTop;\n for (; idx >= 0; idx--) {\n const element = p.openElements.items[idx];\n if (element === formattingElementEntry.element) {\n break;\n }\n if (p._isSpecialElement(element, p.openElements.tagIDs[idx])) {\n furthestBlock = element;\n }\n }\n if (!furthestBlock) {\n p.openElements.shortenToLength(Math.max(idx, 0));\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n return furthestBlock;\n}\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store the next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n p.openElements.remove(element);\n }\n else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n return lastElement;\n}\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n return newElement;\n}\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const tid = getTagID(tn);\n if (p._isElementCausesFosterParenting(tid)) {\n p._fosterParentElement(lastElement);\n }\n else {\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n if (tid === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const { token } = formattingElementEntry;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n p.activeFormattingElements.insertElementAfterBookmark(newElement, token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement, token.tagID);\n}\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n const formattingElementEntry = aaObtainFormattingElementEntry(p, token);\n if (!formattingElementEntry) {\n break;\n }\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n if (!furthestBlock) {\n break;\n }\n p.activeFormattingElements.bookmark = formattingElementEntry;\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n p.treeAdapter.detachNode(lastElement);\n if (commonAncestor)\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n//Generic token handlers\n//------------------------------------------------------------------\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContentOrNode);\n}\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\nfunction stopParsing(p, token) {\n p.stopped = true;\n // NOTE: Set end locations for elements that remain on the open element stack.\n if (token.location) {\n // NOTE: If we are not in a fragment, `html` and `body` will stay on the stack.\n // This is a problem, as we might overwrite their end position here.\n const target = p.fragmentContext ? 0 : 2;\n for (let i = p.openElements.stackTop; i >= target; i--) {\n p._setEndLocation(p.openElements.items[i], token);\n }\n // Handle `html` and `body`\n if (!p.fragmentContext && p.openElements.stackTop >= 0) {\n const htmlElement = p.openElements.items[0];\n const htmlLocation = p.treeAdapter.getNodeSourceCodeLocation(htmlElement);\n if (htmlLocation && !htmlLocation.endTag) {\n p._setEndLocation(htmlElement, token);\n if (p.openElements.stackTop >= 1) {\n const bodyElement = p.openElements.items[1];\n const bodyLocation = p.treeAdapter.getNodeSourceCodeLocation(bodyElement);\n if (bodyLocation && !bodyLocation.endTag) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n }\n }\n}\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n const mode = token.forceQuirks ? DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n if (!doctype.isConforming(token)) {\n p._err(token, ERR.nonConformingDoctype);\n }\n p.treeAdapter.setDocumentMode(p.document, mode);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n}\nfunction tokenInInitialMode(p, token) {\n p._err(token, ERR.missingDoctype, true);\n p.treeAdapter.setDocumentMode(p.document, DOCUMENT_MODE.QUIRKS);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n p._processToken(token);\n}\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagID === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n }\n else {\n tokenBeforeHtml(p, token);\n }\n}\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagID;\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n p._processToken(token);\n}\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.HEAD: {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n default: {\n tokenBeforeHead(p, token);\n }\n }\n}\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagID;\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement(TN.HEAD, $.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TITLE: {\n p._switchToTextParsing(token, TokenizerMode.RCDATA);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n }\n else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_HEAD_NO_SCRIPT;\n }\n break;\n }\n case $.NOFRAMES:\n case $.STYLE: {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n break;\n }\n case $.SCRIPT: {\n p._switchToTextParsing(token, TokenizerMode.SCRIPT_DATA);\n break;\n }\n case $.TEMPLATE: {\n p._insertTemplate(token);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TEMPLATE;\n p.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenInHead(p, token);\n }\n }\n}\nfunction endTagInHead(p, token) {\n switch (token.tagID) {\n case $.HEAD: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n break;\n }\n case $.BODY:\n case $.BR:\n case $.HTML: {\n tokenInHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction templateEndTagInHead(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n if (p.openElements.currentTagId !== $.TEMPLATE) {\n p._err(token, ERR.closingOfElementWithOpenChildElements);\n }\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n p._processToken(token);\n}\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASEFONT:\n case $.BGSOUND:\n case $.HEAD:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.STYLE: {\n startTagInHead(p, token);\n break;\n }\n case $.NOSCRIPT: {\n p._err(token, ERR.nestedNoscriptInHead);\n break;\n }\n default: {\n tokenInHeadNoScript(p, token);\n }\n }\n}\nfunction endTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.NOSCRIPT: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n case $.BR: {\n tokenInHeadNoScript(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenInHeadNoScript(p, token) {\n const errCode = token.type === TokenType.EOF ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n p._err(token, errCode);\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BODY: {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_BODY;\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n p._err(token, ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement, $.HEAD);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenAfterHead(p, token);\n }\n }\n}\nfunction endTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.BODY:\n case $.HTML:\n case $.BR: {\n tokenAfterHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement(TN.BODY, $.BODY);\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction modeInBody(p, token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInBody(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInBody(p, token);\n break;\n }\n case TokenType.COMMENT: {\n appendComment(p, token);\n break;\n }\n case TokenType.START_TAG: {\n startTagInBody(p, token);\n break;\n }\n case TokenType.END_TAG: {\n endTagInBody(p, token);\n break;\n }\n case TokenType.EOF: {\n eofInBody(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n }\n}\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n if (p.openElements.currentTagId !== undefined && NUMBERED_HEADERS.has(p.openElements.currentTagId)) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n const tn = token.tagID;\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const elementId = p.openElements.tagIDs[i];\n if ((tn === $.LI && elementId === $.LI) ||\n ((tn === $.DD || tn === $.DT) && (elementId === $.DD || elementId === $.DT))) {\n p.openElements.generateImpliedEndTagsWithExclusion(elementId);\n p.openElements.popUntilTagNamePopped(elementId);\n break;\n }\n if (elementId !== $.ADDRESS &&\n elementId !== $.DIV &&\n elementId !== $.P &&\n p._isSpecialElement(p.openElements.items[i], elementId)) {\n break;\n }\n }\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = TokenizerMode.PLAINTEXT;\n}\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(TN.A);\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\nfunction tableStartTagInBody(p, token) {\n if (p.treeAdapter.getDocumentMode(p.document) !== DOCUMENT_MODE.QUIRKS && p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TABLE;\n}\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction isHiddenInput(token) {\n const inputType = getTokenAttr(token, ATTRS.TYPE);\n return inputType != null && inputType.toLowerCase() === HIDDEN_INPUT_TYPE;\n}\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n if (!isHiddenInput(token)) {\n p.framesetOk = false;\n }\n token.ackSelfClosing = true;\n}\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction imageStartTagInBody(p, token) {\n token.tagName = TN.IMG;\n token.tagID = $.IMG;\n areaStartTagInBody(p, token);\n}\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = TokenizerMode.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = InsertionMode.TEXT;\n}\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\n//NOTE: here we assume that we always act as a user agent with enabled plugins/frames, so we parse\n//<noembed>/<noframes> as rawtext.\nfunction rawTextStartTagInBody(p, token) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode =\n p.insertionMode === InsertionMode.IN_TABLE ||\n p.insertionMode === InsertionMode.IN_CAPTION ||\n p.insertionMode === InsertionMode.IN_TABLE_BODY ||\n p.insertionMode === InsertionMode.IN_ROW ||\n p.insertionMode === InsertionMode.IN_CELL\n ? InsertionMode.IN_SELECT_IN_TABLE\n : InsertionMode.IN_SELECT;\n}\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n p._insertElement(token, NS.HTML);\n}\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n }\n else {\n p._insertElement(token, NS.MATHML);\n }\n token.ackSelfClosing = true;\n}\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n }\n else {\n p._insertElement(token, NS.SVG);\n }\n token.ackSelfClosing = true;\n}\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction startTagInBody(p, token) {\n switch (token.tagID) {\n case $.I:\n case $.S:\n case $.B:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n bStartTagInBody(p, token);\n break;\n }\n case $.A: {\n aStartTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderStartTagInBody(p, token);\n break;\n }\n case $.P:\n case $.DL:\n case $.OL:\n case $.UL:\n case $.DIV:\n case $.DIR:\n case $.NAV:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.DETAILS:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.SEARCH:\n case $.SECTION:\n case $.SUMMARY:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressStartTagInBody(p, token);\n break;\n }\n case $.LI:\n case $.DD:\n case $.DT: {\n listItemStartTagInBody(p, token);\n break;\n }\n case $.BR:\n case $.IMG:\n case $.WBR:\n case $.AREA:\n case $.EMBED:\n case $.KEYGEN: {\n areaStartTagInBody(p, token);\n break;\n }\n case $.HR: {\n hrStartTagInBody(p, token);\n break;\n }\n case $.RB:\n case $.RTC: {\n rbStartTagInBody(p, token);\n break;\n }\n case $.RT:\n case $.RP: {\n rtStartTagInBody(p, token);\n break;\n }\n case $.PRE:\n case $.LISTING: {\n preStartTagInBody(p, token);\n break;\n }\n case $.XMP: {\n xmpStartTagInBody(p, token);\n break;\n }\n case $.SVG: {\n svgStartTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlStartTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.LINK:\n case $.META:\n case $.STYLE:\n case $.TITLE:\n case $.SCRIPT:\n case $.BGSOUND:\n case $.BASEFONT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.BODY: {\n bodyStartTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInBody(p, token);\n break;\n }\n case $.NOBR: {\n nobrStartTagInBody(p, token);\n break;\n }\n case $.MATH: {\n mathStartTagInBody(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInBody(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInBody(p, token);\n break;\n }\n case $.PARAM:\n case $.TRACK:\n case $.SOURCE: {\n paramStartTagInBody(p, token);\n break;\n }\n case $.IMAGE: {\n imageStartTagInBody(p, token);\n break;\n }\n case $.BUTTON: {\n buttonStartTagInBody(p, token);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletStartTagInBody(p, token);\n break;\n }\n case $.IFRAME: {\n iframeStartTagInBody(p, token);\n break;\n }\n case $.SELECT: {\n selectStartTagInBody(p, token);\n break;\n }\n case $.OPTION:\n case $.OPTGROUP: {\n optgroupStartTagInBody(p, token);\n break;\n }\n case $.NOEMBED:\n case $.NOFRAMES: {\n rawTextStartTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n framesetStartTagInBody(p, token);\n break;\n }\n case $.TEXTAREA: {\n textareaStartTagInBody(p, token);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n rawTextStartTagInBody(p, token);\n }\n else {\n genericStartTagInBody(p, token);\n }\n break;\n }\n case $.PLAINTEXT: {\n plaintextStartTagInBody(p, token);\n break;\n }\n case $.COL:\n case $.TH:\n case $.TD:\n case $.TR:\n case $.HEAD:\n case $.FRAME:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.CAPTION:\n case $.COLGROUP: {\n // Ignore token\n break;\n }\n default: {\n genericStartTagInBody(p, token);\n }\n }\n}\nfunction bodyEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n //NOTE: <body> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n}\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n endTagAfterBody(p, token);\n }\n}\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const { formElement } = p;\n if (!inTemplate) {\n p.formElement = null;\n }\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n }\n else if (formElement) {\n p.openElements.remove(formElement);\n }\n }\n}\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement(TN.P, $.P);\n }\n p._closePElement();\n}\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement(TN.BR, $.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n const tid = token.tagID;\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n const elementId = p.openElements.tagIDs[i];\n // Compare the tag name here, as the tag might not be a known tag with an ID.\n if (tid === elementId && (tid !== $.UNKNOWN || p.treeAdapter.getTagName(element) === tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tid);\n if (p.openElements.stackTop >= i)\n p.openElements.shortenToLength(i);\n break;\n }\n if (p._isSpecialElement(element, elementId)) {\n break;\n }\n }\n}\nfunction endTagInBody(p, token) {\n switch (token.tagID) {\n case $.A:\n case $.B:\n case $.I:\n case $.S:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.NOBR:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n callAdoptionAgency(p, token);\n break;\n }\n case $.P: {\n pEndTagInBody(p);\n break;\n }\n case $.DL:\n case $.UL:\n case $.OL:\n case $.DIR:\n case $.DIV:\n case $.NAV:\n case $.PRE:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.BUTTON:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.DETAILS:\n case $.SEARCH:\n case $.SECTION:\n case $.SUMMARY:\n case $.LISTING:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressEndTagInBody(p, token);\n break;\n }\n case $.LI: {\n liEndTagInBody(p);\n break;\n }\n case $.DD:\n case $.DT: {\n ddEndTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderEndTagInBody(p);\n break;\n }\n case $.BR: {\n brEndTagInBody(p);\n break;\n }\n case $.BODY: {\n bodyEndTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlEndTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formEndTagInBody(p);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletEndTagInBody(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n genericEndTagInBody(p, token);\n }\n }\n}\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStack.length > 0) {\n eofInTemplate(p, token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n var _a;\n if (token.tagID === $.SCRIPT) {\n (_a = p.scriptHandler) === null || _a === void 0 ? void 0 : _a.call(p, p.openElements.current);\n }\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\nfunction eofInText(p, token) {\n p._err(token, ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p.onEof(token);\n}\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n if (p.openElements.currentTagId !== undefined && TABLE_STRUCTURE_TAGS.has(p.openElements.currentTagId)) {\n p.pendingCharacterTokens.length = 0;\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = InsertionMode.IN_TABLE_TEXT;\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInTableText(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInTableText(p, token);\n break;\n }\n // Ignore null\n }\n }\n else {\n tokenInTable(p, token);\n }\n}\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CAPTION;\n}\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n}\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.COLGROUP, $.COLGROUP);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n}\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n}\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.TBODY, $.TBODY);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n}\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n}\nfunction inputStartTagInTable(p, token) {\n if (isHiddenInput(token)) {\n p._appendElement(token, NS.HTML);\n }\n else {\n tokenInTable(p, token);\n }\n token.ackSelfClosing = true;\n}\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\nfunction startTagInTable(p, token) {\n switch (token.tagID) {\n case $.TD:\n case $.TH:\n case $.TR: {\n tdStartTagInTable(p, token);\n break;\n }\n case $.STYLE:\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.COL: {\n colStartTagInTable(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInTable(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInTable(p, token);\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n tbodyStartTagInTable(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInTable(p, token);\n break;\n }\n case $.CAPTION: {\n captionStartTagInTable(p, token);\n break;\n }\n case $.COLGROUP: {\n colgroupStartTagInTable(p, token);\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction endTagInTable(p, token) {\n switch (token.tagID) {\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n p.fosterParentingEnabled = true;\n // Process token in `In Body` mode\n modeInBody(p, token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\nfunction tokenInTableText(p, token) {\n let i = 0;\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n }\n else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nconst TABLE_VOID_ELEMENTS = new Set([$.CAPTION, $.COL, $.COLGROUP, $.TBODY, $.TD, $.TFOOT, $.TH, $.THEAD, $.TR]);\nfunction startTagInCaption(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCaption(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.CAPTION:\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n if (tn === $.TABLE) {\n endTagInTable(p, token);\n }\n }\n break;\n }\n case $.BODY:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.COL: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction endTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.COLGROUP: {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.COL: {\n // Ignore token\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n p._processToken(token);\n }\n}\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n switch (token.tagID) {\n case $.TR: {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_ROW;\n break;\n }\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement(TN.TR, $.TR);\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInTableBody(p, token) {\n const tn = token.tagID;\n switch (token.tagID) {\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n endTagInTable(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n switch (token.tagID) {\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CELL;\n p.activeFormattingElements.insertMarker();\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInRow(p, token) {\n switch (token.tagID) {\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(token.tagID) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH: {\n // Ignore end tag\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n startTagInRow(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCell(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.TD:\n case $.TH: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_ROW;\n }\n break;\n }\n case $.TABLE:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n endTagInRow(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.OPTGROUP: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.HR: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.INPUT:\n case $.KEYGEN:\n case $.TEXTAREA:\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n if (token.tagID !== $.SELECT) {\n p._processStartTag(token);\n }\n }\n break;\n }\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInSelect(p, token) {\n switch (token.tagID) {\n case $.OPTGROUP: {\n if (p.openElements.stackTop > 0 &&\n p.openElements.currentTagId === $.OPTION &&\n p.openElements.tagIDs[p.openElements.stackTop - 1] === $.OPTGROUP) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n break;\n }\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n else {\n startTagInSelect(p, token);\n }\n}\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p.onEndTag(token);\n }\n }\n else {\n endTagInSelect(p, token);\n }\n}\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n switch (token.tagID) {\n // First, handle tags that can start without a mode change\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n startTagInHead(p, token);\n break;\n }\n // Re-process the token in the appropriate mode\n case $.CAPTION:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE;\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n break;\n }\n case $.COL: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_COLUMN_GROUP;\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n break;\n }\n case $.TR: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE_BODY;\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n break;\n }\n case $.TD:\n case $.TH: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_ROW;\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n default: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_BODY;\n p.insertionMode = InsertionMode.IN_BODY;\n startTagInBody(p, token);\n }\n }\n}\nfunction endTagInTemplate(p, token) {\n if (token.tagID === $.TEMPLATE) {\n templateEndTagInHead(p, token);\n }\n}\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n p.onEof(token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction endTagAfterBody(p, token) {\n var _a;\n if (token.tagID === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = InsertionMode.AFTER_AFTER_BODY;\n }\n //NOTE: <html> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === $.HTML) {\n p._setEndLocation(p.openElements.items[0], token);\n // Update the body element, if it doesn't have an end tag\n const bodyElement = p.openElements.items[1];\n if (bodyElement && !((_a = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a === void 0 ? void 0 : _a.endTag)) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction tokenAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.FRAME: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInFrameset(p, token) {\n if (token.tagID === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n if (!p.fragmentContext && p.openElements.currentTagId !== $.FRAMESET) {\n p.insertionMode = InsertionMode.AFTER_FRAMESET;\n }\n }\n}\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagAfterFrameset(p, token) {\n if (token.tagID === $.HTML) {\n p.insertionMode = InsertionMode.AFTER_AFTER_FRAMESET;\n }\n}\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterAfterBody(p, token);\n }\n}\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction popUntilHtmlOrIntegrationPoint(p) {\n while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n p.openElements.currentTagId !== undefined &&\n !p._isIntegrationPoint(p.openElements.currentTagId, p.openElements.current)) {\n p.openElements.pop();\n }\n}\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token)) {\n popUntilHtmlOrIntegrationPoint(p);\n p._startTagOutsideForeignContent(token);\n }\n else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n }\n else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n }\n else {\n p._insertElement(token, currentNs);\n }\n token.ackSelfClosing = true;\n }\n}\nfunction endTagInForeignContent(p, token) {\n if (token.tagID === $.P || token.tagID === $.BR) {\n popUntilHtmlOrIntegrationPoint(p);\n p._endTagOutsideForeignContent(token);\n return;\n }\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._endTagOutsideForeignContent(token);\n break;\n }\n const tagName = p.treeAdapter.getTagName(element);\n if (tagName.toLowerCase() === token.tagName) {\n //NOTE: update the token tag name for `_setEndLocation`.\n token.tagName = tagName;\n p.openElements.shortenToLength(i);\n break;\n }\n }\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|