@temelj/mdx 0.14.0 → 0.15.0
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/README.md +468 -82
- package/dist/character-entities.d.mts +4 -0
- package/dist/character-entities.d.mts.map +1 -0
- package/dist/character-entities.mjs +2132 -0
- package/dist/character-entities.mjs.map +1 -0
- package/dist/character-reference.d.mts +6 -0
- package/dist/character-reference.d.mts.map +1 -0
- package/dist/character-reference.mjs +18 -0
- package/dist/character-reference.mjs.map +1 -0
- package/dist/compile-analysis.d.mts +28 -0
- package/dist/compile-analysis.d.mts.map +1 -0
- package/dist/compile-analysis.mjs +74 -0
- package/dist/compile-analysis.mjs.map +1 -0
- package/dist/compile-emit.d.mts +9 -0
- package/dist/compile-emit.d.mts.map +1 -0
- package/dist/compile-emit.mjs +187 -0
- package/dist/compile-emit.mjs.map +1 -0
- package/dist/compile-esm.d.mts +34 -0
- package/dist/compile-esm.d.mts.map +1 -0
- package/dist/compile-esm.mjs +187 -0
- package/dist/compile-esm.mjs.map +1 -0
- package/dist/compile-names.d.mts +13 -0
- package/dist/compile-names.d.mts.map +1 -0
- package/dist/compile-names.mjs +32 -0
- package/dist/compile-names.mjs.map +1 -0
- package/dist/compiler.d.mts +69 -85
- package/dist/compiler.d.mts.map +1 -1
- package/dist/compiler.mjs +185 -418
- package/dist/compiler.mjs.map +1 -1
- package/dist/diagnostics.d.mts +37 -0
- package/dist/diagnostics.d.mts.map +1 -0
- package/dist/diagnostics.mjs +57 -0
- package/dist/diagnostics.mjs.map +1 -0
- package/dist/errors.d.mts +157 -0
- package/dist/errors.d.mts.map +1 -0
- package/dist/errors.mjs +263 -0
- package/dist/errors.mjs.map +1 -0
- package/dist/footnote-numbering.d.mts +27 -0
- package/dist/footnote-numbering.d.mts.map +1 -0
- package/dist/footnote-numbering.mjs +49 -0
- package/dist/footnote-numbering.mjs.map +1 -0
- package/dist/format-context.d.mts +46 -0
- package/dist/format-context.d.mts.map +1 -0
- package/dist/format-context.mjs +26 -0
- package/dist/format-context.mjs.map +1 -0
- package/dist/format-directive.d.mts +9 -0
- package/dist/format-directive.d.mts.map +1 -0
- package/dist/format-directive.mjs +99 -0
- package/dist/format-directive.mjs.map +1 -0
- package/dist/format-jsx.d.mts +8 -0
- package/dist/format-jsx.d.mts.map +1 -0
- package/dist/format-jsx.mjs +47 -0
- package/dist/format-jsx.mjs.map +1 -0
- package/dist/format-math.d.mts +9 -0
- package/dist/format-math.d.mts.map +1 -0
- package/dist/format-math.mjs +79 -0
- package/dist/format-math.mjs.map +1 -0
- package/dist/format-safe.d.mts +25 -0
- package/dist/format-safe.d.mts.map +1 -0
- package/dist/format-safe.mjs +366 -0
- package/dist/format-safe.mjs.map +1 -0
- package/dist/format-table.d.mts +8 -0
- package/dist/format-table.d.mts.map +1 -0
- package/dist/format-table.mjs +55 -0
- package/dist/format-table.mjs.map +1 -0
- package/dist/format-track.d.mts +18 -0
- package/dist/format-track.d.mts.map +1 -0
- package/dist/format-track.mjs +34 -0
- package/dist/format-track.mjs.map +1 -0
- package/dist/format.d.mts +7 -0
- package/dist/format.d.mts.map +1 -0
- package/dist/format.mjs +549 -0
- package/dist/format.mjs.map +1 -0
- package/dist/frontmatter.d.mts +15 -0
- package/dist/frontmatter.d.mts.map +1 -0
- package/dist/frontmatter.mjs +187 -0
- package/dist/frontmatter.mjs.map +1 -0
- package/dist/heading.d.mts +6 -0
- package/dist/heading.d.mts.map +1 -0
- package/dist/heading.mjs +19 -0
- package/dist/heading.mjs.map +1 -0
- package/dist/html-format.d.mts +32 -0
- package/dist/html-format.d.mts.map +1 -0
- package/dist/html-format.mjs +127 -0
- package/dist/html-format.mjs.map +1 -0
- package/dist/html-lower.d.mts +78 -0
- package/dist/html-lower.d.mts.map +1 -0
- package/dist/html-lower.mjs +583 -0
- package/dist/html-lower.mjs.map +1 -0
- package/dist/html-stream.d.mts +13 -0
- package/dist/html-stream.d.mts.map +1 -0
- package/dist/html-stream.mjs +32 -0
- package/dist/html-stream.mjs.map +1 -0
- package/dist/html.d.mts +120 -0
- package/dist/html.d.mts.map +1 -0
- package/dist/html.mjs +77 -0
- package/dist/html.mjs.map +1 -0
- package/dist/identifier.d.mts +4 -0
- package/dist/identifier.d.mts.map +1 -0
- package/dist/identifier.mjs +8 -0
- package/dist/identifier.mjs.map +1 -0
- package/dist/javascript-ast.d.mts +16 -0
- package/dist/javascript-ast.d.mts.map +1 -0
- package/dist/javascript-ast.mjs +39 -0
- package/dist/javascript-ast.mjs.map +1 -0
- package/dist/javascript-jsx.d.mts +24 -0
- package/dist/javascript-jsx.d.mts.map +1 -0
- package/dist/javascript-jsx.mjs +189 -0
- package/dist/javascript-jsx.mjs.map +1 -0
- package/dist/javascript.d.mts +9 -0
- package/dist/javascript.d.mts.map +1 -0
- package/dist/javascript.mjs +31 -0
- package/dist/javascript.mjs.map +1 -0
- package/dist/jsx-reference.d.mts +15 -0
- package/dist/jsx-reference.d.mts.map +1 -0
- package/dist/jsx-reference.mjs +31 -0
- package/dist/jsx-reference.mjs.map +1 -0
- package/dist/mod.d.mts +25 -9
- package/dist/mod.mjs +19 -8
- package/dist/model.d.mts +196 -0
- package/dist/model.d.mts.map +1 -0
- package/dist/model.mjs +113 -0
- package/dist/model.mjs.map +1 -0
- package/dist/parser/block-container-recognizers.d.mts +40 -0
- package/dist/parser/block-container-recognizers.d.mts.map +1 -0
- package/dist/parser/block-container-recognizers.mjs +90 -0
- package/dist/parser/block-container-recognizers.mjs.map +1 -0
- package/dist/parser/block-directive-recognizers.d.mts +22 -0
- package/dist/parser/block-directive-recognizers.d.mts.map +1 -0
- package/dist/parser/block-directive-recognizers.mjs +77 -0
- package/dist/parser/block-directive-recognizers.mjs.map +1 -0
- package/dist/parser/block-leaf-recognizers.d.mts +53 -0
- package/dist/parser/block-leaf-recognizers.d.mts.map +1 -0
- package/dist/parser/block-leaf-recognizers.mjs +386 -0
- package/dist/parser/block-leaf-recognizers.mjs.map +1 -0
- package/dist/parser/block-parser.d.mts +38 -0
- package/dist/parser/block-parser.d.mts.map +1 -0
- package/dist/parser/block-parser.mjs +895 -0
- package/dist/parser/block-parser.mjs.map +1 -0
- package/dist/parser/block-syntax.d.mts +240 -0
- package/dist/parser/block-syntax.d.mts.map +1 -0
- package/dist/parser/characters.d.mts +19 -0
- package/dist/parser/characters.d.mts.map +1 -0
- package/dist/parser/characters.mjs +52 -0
- package/dist/parser/characters.mjs.map +1 -0
- package/dist/parser/config.d.mts +16 -0
- package/dist/parser/config.d.mts.map +1 -0
- package/dist/parser/config.mjs +25 -0
- package/dist/parser/config.mjs.map +1 -0
- package/dist/parser/directive-attributes.d.mts +9 -0
- package/dist/parser/directive-attributes.d.mts.map +1 -0
- package/dist/parser/directive-attributes.mjs +24 -0
- package/dist/parser/directive-attributes.mjs.map +1 -0
- package/dist/parser/embedded-scanner.d.mts +18 -0
- package/dist/parser/embedded-scanner.d.mts.map +1 -0
- package/dist/parser/embedded-scanner.mjs +199 -0
- package/dist/parser/embedded-scanner.mjs.map +1 -0
- package/dist/parser/inline-autolink.d.mts +7 -0
- package/dist/parser/inline-autolink.d.mts.map +1 -0
- package/dist/parser/inline-autolink.mjs +42 -0
- package/dist/parser/inline-autolink.mjs.map +1 -0
- package/dist/parser/inline-character-reference.d.mts +7 -0
- package/dist/parser/inline-character-reference.d.mts.map +1 -0
- package/dist/parser/inline-character-reference.mjs +22 -0
- package/dist/parser/inline-character-reference.mjs.map +1 -0
- package/dist/parser/inline-code.d.mts +7 -0
- package/dist/parser/inline-code.d.mts.map +1 -0
- package/dist/parser/inline-code.mjs +29 -0
- package/dist/parser/inline-code.mjs.map +1 -0
- package/dist/parser/inline-directive.d.mts +9 -0
- package/dist/parser/inline-directive.d.mts.map +1 -0
- package/dist/parser/inline-directive.mjs +45 -0
- package/dist/parser/inline-directive.mjs.map +1 -0
- package/dist/parser/inline-embedded.d.mts +19 -0
- package/dist/parser/inline-embedded.d.mts.map +1 -0
- package/dist/parser/inline-embedded.mjs +92 -0
- package/dist/parser/inline-embedded.mjs.map +1 -0
- package/dist/parser/inline-emphasis.d.mts +11 -0
- package/dist/parser/inline-emphasis.d.mts.map +1 -0
- package/dist/parser/inline-emphasis.mjs +79 -0
- package/dist/parser/inline-emphasis.mjs.map +1 -0
- package/dist/parser/inline-input.d.mts +46 -0
- package/dist/parser/inline-input.d.mts.map +1 -0
- package/dist/parser/inline-input.mjs +137 -0
- package/dist/parser/inline-input.mjs.map +1 -0
- package/dist/parser/inline-link.d.mts +12 -0
- package/dist/parser/inline-link.d.mts.map +1 -0
- package/dist/parser/inline-link.mjs +187 -0
- package/dist/parser/inline-link.mjs.map +1 -0
- package/dist/parser/inline-math.d.mts +10 -0
- package/dist/parser/inline-math.d.mts.map +1 -0
- package/dist/parser/inline-math.mjs +46 -0
- package/dist/parser/inline-math.mjs.map +1 -0
- package/dist/parser/inline-output.d.mts +34 -0
- package/dist/parser/inline-output.d.mts.map +1 -0
- package/dist/parser/inline-output.mjs +62 -0
- package/dist/parser/inline-output.mjs.map +1 -0
- package/dist/parser/inline-parser.d.mts +14 -0
- package/dist/parser/inline-parser.d.mts.map +1 -0
- package/dist/parser/inline-parser.mjs +328 -0
- package/dist/parser/inline-parser.mjs.map +1 -0
- package/dist/parser/inline-pending.d.mts +23 -0
- package/dist/parser/inline-pending.d.mts.map +1 -0
- package/dist/parser/inline-pending.mjs +100 -0
- package/dist/parser/inline-pending.mjs.map +1 -0
- package/dist/parser/inline-syntax.d.mts +118 -0
- package/dist/parser/inline-syntax.d.mts.map +1 -0
- package/dist/parser/inline-syntax.mjs +1 -0
- package/dist/parser/javascript-boundary.d.mts +16 -0
- package/dist/parser/javascript-boundary.d.mts.map +1 -0
- package/dist/parser/javascript-boundary.mjs +42 -0
- package/dist/parser/javascript-boundary.mjs.map +1 -0
- package/dist/parser/javascript-scanner.d.mts +22 -0
- package/dist/parser/javascript-scanner.d.mts.map +1 -0
- package/dist/parser/javascript-scanner.mjs +122 -0
- package/dist/parser/javascript-scanner.mjs.map +1 -0
- package/dist/parser/materialize-cache.d.mts +34 -0
- package/dist/parser/materialize-cache.d.mts.map +1 -0
- package/dist/parser/materialize-cache.mjs +12 -0
- package/dist/parser/materialize-cache.mjs.map +1 -0
- package/dist/parser/materialize-jsx.d.mts +14 -0
- package/dist/parser/materialize-jsx.d.mts.map +1 -0
- package/dist/parser/materialize-jsx.mjs +76 -0
- package/dist/parser/materialize-jsx.mjs.map +1 -0
- package/dist/parser/materialize.d.mts +61 -0
- package/dist/parser/materialize.d.mts.map +1 -0
- package/dist/parser/materialize.mjs +736 -0
- package/dist/parser/materialize.mjs.map +1 -0
- package/dist/parser/recognizer.d.mts +20 -0
- package/dist/parser/recognizer.d.mts.map +1 -0
- package/dist/parser/recognizer.mjs +24 -0
- package/dist/parser/recognizer.mjs.map +1 -0
- package/dist/parser/session.d.mts +42 -0
- package/dist/parser/session.d.mts.map +1 -0
- package/dist/parser/session.mjs +89 -0
- package/dist/parser/session.mjs.map +1 -0
- package/dist/parser.d.mts +25 -0
- package/dist/parser.d.mts.map +1 -0
- package/dist/parser.mjs +37 -0
- package/dist/parser.mjs.map +1 -0
- package/dist/plugin-internal.d.mts +25 -0
- package/dist/plugin-internal.d.mts.map +1 -0
- package/dist/plugin-internal.mjs +99 -0
- package/dist/plugin-internal.mjs.map +1 -0
- package/dist/plugin.d.mts +37 -0
- package/dist/plugin.d.mts.map +1 -0
- package/dist/plugin.mjs +1 -0
- package/dist/plugins/code-block-metadata.d.mts +42 -0
- package/dist/plugins/code-block-metadata.d.mts.map +1 -0
- package/dist/plugins/code-block-metadata.mjs +133 -0
- package/dist/plugins/code-block-metadata.mjs.map +1 -0
- package/dist/plugins/heading-id.d.mts +15 -0
- package/dist/plugins/heading-id.d.mts.map +1 -0
- package/dist/plugins/heading-id.mjs +45 -0
- package/dist/plugins/heading-id.mjs.map +1 -0
- package/dist/plugins/lower-heading.d.mts +16 -0
- package/dist/plugins/lower-heading.d.mts.map +1 -0
- package/dist/plugins/lower-heading.mjs +28 -0
- package/dist/plugins/lower-heading.mjs.map +1 -0
- package/dist/plugins/math-render.d.mts +26 -0
- package/dist/plugins/math-render.d.mts.map +1 -0
- package/dist/plugins/math-render.mjs +51 -0
- package/dist/plugins/math-render.mjs.map +1 -0
- package/dist/plugins/mod.d.mts +9 -6
- package/dist/plugins/mod.mjs +8 -6
- package/dist/plugins/remove-esm.d.mts +10 -0
- package/dist/plugins/remove-esm.d.mts.map +1 -0
- package/dist/plugins/remove-esm.mjs +12 -0
- package/dist/plugins/remove-esm.mjs.map +1 -0
- package/dist/plugins/shiki.d.mts +21 -0
- package/dist/plugins/shiki.d.mts.map +1 -0
- package/dist/plugins/shiki.mjs +144 -0
- package/dist/plugins/shiki.mjs.map +1 -0
- package/dist/plugins/syntax-highlight.d.mts +38 -0
- package/dist/plugins/syntax-highlight.d.mts.map +1 -0
- package/dist/plugins/syntax-highlight.mjs +106 -0
- package/dist/plugins/syntax-highlight.mjs.map +1 -0
- package/dist/processor.d.mts +60 -0
- package/dist/processor.d.mts.map +1 -0
- package/dist/processor.mjs +106 -0
- package/dist/processor.mjs.map +1 -0
- package/dist/ranges.d.mts +10 -0
- package/dist/ranges.d.mts.map +1 -0
- package/dist/ranges.mjs +22 -0
- package/dist/ranges.mjs.map +1 -0
- package/dist/source-map.d.mts +28 -0
- package/dist/source-map.d.mts.map +1 -0
- package/dist/source-map.mjs +90 -0
- package/dist/source-map.mjs.map +1 -0
- package/dist/source-text.d.mts +35 -0
- package/dist/source-text.d.mts.map +1 -0
- package/dist/source-text.mjs +132 -0
- package/dist/source-text.mjs.map +1 -0
- package/dist/source.d.mts +86 -0
- package/dist/source.d.mts.map +1 -0
- package/dist/source.mjs +264 -0
- package/dist/source.mjs.map +1 -0
- package/dist/stream-events.d.mts +59 -0
- package/dist/stream-events.d.mts.map +1 -0
- package/dist/stream-events.mjs +115 -0
- package/dist/stream-events.mjs.map +1 -0
- package/dist/stream-session.d.mts +79 -0
- package/dist/stream-session.d.mts.map +1 -0
- package/dist/stream-session.mjs +904 -0
- package/dist/stream-session.mjs.map +1 -0
- package/dist/stream-tail.d.mts +84 -0
- package/dist/stream-tail.d.mts.map +1 -0
- package/dist/stream-tail.mjs +359 -0
- package/dist/stream-tail.mjs.map +1 -0
- package/dist/stream-types.d.mts +89 -0
- package/dist/stream-types.d.mts.map +1 -0
- package/dist/stream-types.mjs +1 -0
- package/dist/stream.d.mts +28 -0
- package/dist/stream.d.mts.map +1 -0
- package/dist/stream.mjs +68 -0
- package/dist/stream.mjs.map +1 -0
- package/dist/syntax-options.d.mts +21 -0
- package/dist/syntax-options.d.mts.map +1 -0
- package/dist/syntax-options.mjs +26 -0
- package/dist/syntax-options.mjs.map +1 -0
- package/dist/traversal.d.mts +25 -0
- package/dist/traversal.d.mts.map +1 -0
- package/dist/traversal.mjs +136 -0
- package/dist/traversal.mjs.map +1 -0
- package/dist/tree.d.mts +18 -0
- package/dist/tree.d.mts.map +1 -0
- package/dist/tree.mjs +43 -0
- package/dist/tree.mjs.map +1 -0
- package/dist/unified/adapter.d.mts +24 -0
- package/dist/unified/adapter.d.mts.map +1 -0
- package/dist/unified/adapter.mjs +44 -0
- package/dist/unified/adapter.mjs.map +1 -0
- package/dist/unified/mod.d.mts +2 -0
- package/dist/unified/mod.mjs +1 -0
- package/dist/unified/runtime.d.mts +10 -0
- package/dist/unified/runtime.d.mts.map +1 -0
- package/dist/unified/runtime.mjs +115 -0
- package/dist/unified/runtime.mjs.map +1 -0
- package/dist/unified/tree-bridge.d.mts +63 -0
- package/dist/unified/tree-bridge.d.mts.map +1 -0
- package/dist/unified/tree-bridge.mjs +876 -0
- package/dist/unified/tree-bridge.mjs.map +1 -0
- package/dist/uri.d.mts +5 -0
- package/dist/uri.d.mts.map +1 -0
- package/dist/uri.mjs +32 -0
- package/dist/uri.mjs.map +1 -0
- package/package.json +56 -30
- package/dist/plugins/heading-id/plugin.d.mts +0 -17
- package/dist/plugins/heading-id/plugin.d.mts.map +0 -1
- package/dist/plugins/heading-id/plugin.mjs +0 -23
- package/dist/plugins/heading-id/plugin.mjs.map +0 -1
- package/dist/plugins/katex/plugin.d.mts +0 -39
- package/dist/plugins/katex/plugin.d.mts.map +0 -1
- package/dist/plugins/katex/plugin.mjs +0 -107
- package/dist/plugins/katex/plugin.mjs.map +0 -1
- package/dist/plugins/remove-imports-exports.d.mts +0 -10
- package/dist/plugins/remove-imports-exports.d.mts.map +0 -1
- package/dist/plugins/remove-imports-exports.mjs +0 -15
- package/dist/plugins/remove-imports-exports.mjs.map +0 -1
- package/dist/plugins/syntax-highlight/code-meta.d.mts +0 -22
- package/dist/plugins/syntax-highlight/code-meta.d.mts.map +0 -1
- package/dist/plugins/syntax-highlight/code-meta.mjs +0 -38
- package/dist/plugins/syntax-highlight/code-meta.mjs.map +0 -1
- package/dist/plugins/syntax-highlight/plugin.d.mts +0 -57
- package/dist/plugins/syntax-highlight/plugin.d.mts.map +0 -1
- package/dist/plugins/syntax-highlight/plugin.mjs +0 -93
- package/dist/plugins/syntax-highlight/plugin.mjs.map +0 -1
- package/dist/plugins/tree-processor/plugin.d.mts +0 -19
- package/dist/plugins/tree-processor/plugin.d.mts.map +0 -1
- package/dist/plugins/tree-processor/plugin.mjs +0 -21
- package/dist/plugins/tree-processor/plugin.mjs.map +0 -1
- package/dist/types.d.mts +0 -2
- /package/dist/{types.mjs → parser/block-syntax.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-entities.mjs","names":[],"sources":["../src/character-entities.ts"],"sourcesContent":["// Generated by scripts/generate-character-entities.ts from character-entities@2.0.2.\n// Do not edit by hand.\n\nexport const NAMED_CHARACTER_REFERENCES: Readonly<Record<string, string>> = Object.freeze({\n AElig: \"Æ\",\n AMP: \"&\",\n Aacute: \"Á\",\n Abreve: \"Ă\",\n Acirc: \"Â\",\n Acy: \"А\",\n Afr: \"𝔄\",\n Agrave: \"À\",\n Alpha: \"Α\",\n Amacr: \"Ā\",\n And: \"⩓\",\n Aogon: \"Ą\",\n Aopf: \"𝔸\",\n ApplyFunction: \"\",\n Aring: \"Å\",\n Ascr: \"𝒜\",\n Assign: \"≔\",\n Atilde: \"Ã\",\n Auml: \"Ä\",\n Backslash: \"∖\",\n Barv: \"⫧\",\n Barwed: \"⌆\",\n Bcy: \"Б\",\n Because: \"∵\",\n Bernoullis: \"ℬ\",\n Beta: \"Β\",\n Bfr: \"𝔅\",\n Bopf: \"𝔹\",\n Breve: \"˘\",\n Bscr: \"ℬ\",\n Bumpeq: \"≎\",\n CHcy: \"Ч\",\n COPY: \"©\",\n Cacute: \"Ć\",\n Cap: \"⋒\",\n CapitalDifferentialD: \"ⅅ\",\n Cayleys: \"ℭ\",\n Ccaron: \"Č\",\n Ccedil: \"Ç\",\n Ccirc: \"Ĉ\",\n Cconint: \"∰\",\n Cdot: \"Ċ\",\n Cedilla: \"¸\",\n CenterDot: \"·\",\n Cfr: \"ℭ\",\n Chi: \"Χ\",\n CircleDot: \"⊙\",\n CircleMinus: \"⊖\",\n CirclePlus: \"⊕\",\n CircleTimes: \"⊗\",\n ClockwiseContourIntegral: \"∲\",\n CloseCurlyDoubleQuote: \"”\",\n CloseCurlyQuote: \"’\",\n Colon: \"∷\",\n Colone: \"⩴\",\n Congruent: \"≡\",\n Conint: \"∯\",\n ContourIntegral: \"∮\",\n Copf: \"ℂ\",\n Coproduct: \"∐\",\n CounterClockwiseContourIntegral: \"∳\",\n Cross: \"⨯\",\n Cscr: \"𝒞\",\n Cup: \"⋓\",\n CupCap: \"≍\",\n DD: \"ⅅ\",\n DDotrahd: \"⤑\",\n DJcy: \"Ђ\",\n DScy: \"Ѕ\",\n DZcy: \"Џ\",\n Dagger: \"‡\",\n Darr: \"↡\",\n Dashv: \"⫤\",\n Dcaron: \"Ď\",\n Dcy: \"Д\",\n Del: \"∇\",\n Delta: \"Δ\",\n Dfr: \"𝔇\",\n DiacriticalAcute: \"´\",\n DiacriticalDot: \"˙\",\n DiacriticalDoubleAcute: \"˝\",\n DiacriticalGrave: \"`\",\n DiacriticalTilde: \"˜\",\n Diamond: \"⋄\",\n DifferentialD: \"ⅆ\",\n Dopf: \"𝔻\",\n Dot: \"¨\",\n DotDot: \"⃜\",\n DotEqual: \"≐\",\n DoubleContourIntegral: \"∯\",\n DoubleDot: \"¨\",\n DoubleDownArrow: \"⇓\",\n DoubleLeftArrow: \"⇐\",\n DoubleLeftRightArrow: \"⇔\",\n DoubleLeftTee: \"⫤\",\n DoubleLongLeftArrow: \"⟸\",\n DoubleLongLeftRightArrow: \"⟺\",\n DoubleLongRightArrow: \"⟹\",\n DoubleRightArrow: \"⇒\",\n DoubleRightTee: \"⊨\",\n DoubleUpArrow: \"⇑\",\n DoubleUpDownArrow: \"⇕\",\n DoubleVerticalBar: \"∥\",\n DownArrow: \"↓\",\n DownArrowBar: \"⤓\",\n DownArrowUpArrow: \"⇵\",\n DownBreve: \"̑\",\n DownLeftRightVector: \"⥐\",\n DownLeftTeeVector: \"⥞\",\n DownLeftVector: \"↽\",\n DownLeftVectorBar: \"⥖\",\n DownRightTeeVector: \"⥟\",\n DownRightVector: \"⇁\",\n DownRightVectorBar: \"⥗\",\n DownTee: \"⊤\",\n DownTeeArrow: \"↧\",\n Downarrow: \"⇓\",\n Dscr: \"𝒟\",\n Dstrok: \"Đ\",\n ENG: \"Ŋ\",\n ETH: \"Ð\",\n Eacute: \"É\",\n Ecaron: \"Ě\",\n Ecirc: \"Ê\",\n Ecy: \"Э\",\n Edot: \"Ė\",\n Efr: \"𝔈\",\n Egrave: \"È\",\n Element: \"∈\",\n Emacr: \"Ē\",\n EmptySmallSquare: \"◻\",\n EmptyVerySmallSquare: \"▫\",\n Eogon: \"Ę\",\n Eopf: \"𝔼\",\n Epsilon: \"Ε\",\n Equal: \"⩵\",\n EqualTilde: \"≂\",\n Equilibrium: \"⇌\",\n Escr: \"ℰ\",\n Esim: \"⩳\",\n Eta: \"Η\",\n Euml: \"Ë\",\n Exists: \"∃\",\n ExponentialE: \"ⅇ\",\n Fcy: \"Ф\",\n Ffr: \"𝔉\",\n FilledSmallSquare: \"◼\",\n FilledVerySmallSquare: \"▪\",\n Fopf: \"𝔽\",\n ForAll: \"∀\",\n Fouriertrf: \"ℱ\",\n Fscr: \"ℱ\",\n GJcy: \"Ѓ\",\n GT: \">\",\n Gamma: \"Γ\",\n Gammad: \"Ϝ\",\n Gbreve: \"Ğ\",\n Gcedil: \"Ģ\",\n Gcirc: \"Ĝ\",\n Gcy: \"Г\",\n Gdot: \"Ġ\",\n Gfr: \"𝔊\",\n Gg: \"⋙\",\n Gopf: \"𝔾\",\n GreaterEqual: \"≥\",\n GreaterEqualLess: \"⋛\",\n GreaterFullEqual: \"≧\",\n GreaterGreater: \"⪢\",\n GreaterLess: \"≷\",\n GreaterSlantEqual: \"⩾\",\n GreaterTilde: \"≳\",\n Gscr: \"𝒢\",\n Gt: \"≫\",\n HARDcy: \"Ъ\",\n Hacek: \"ˇ\",\n Hat: \"^\",\n Hcirc: \"Ĥ\",\n Hfr: \"ℌ\",\n HilbertSpace: \"ℋ\",\n Hopf: \"ℍ\",\n HorizontalLine: \"─\",\n Hscr: \"ℋ\",\n Hstrok: \"Ħ\",\n HumpDownHump: \"≎\",\n HumpEqual: \"≏\",\n IEcy: \"Е\",\n IJlig: \"IJ\",\n IOcy: \"Ё\",\n Iacute: \"Í\",\n Icirc: \"Î\",\n Icy: \"И\",\n Idot: \"İ\",\n Ifr: \"ℑ\",\n Igrave: \"Ì\",\n Im: \"ℑ\",\n Imacr: \"Ī\",\n ImaginaryI: \"ⅈ\",\n Implies: \"⇒\",\n Int: \"∬\",\n Integral: \"∫\",\n Intersection: \"⋂\",\n InvisibleComma: \"\",\n InvisibleTimes: \"\",\n Iogon: \"Į\",\n Iopf: \"𝕀\",\n Iota: \"Ι\",\n Iscr: \"ℐ\",\n Itilde: \"Ĩ\",\n Iukcy: \"І\",\n Iuml: \"Ï\",\n Jcirc: \"Ĵ\",\n Jcy: \"Й\",\n Jfr: \"𝔍\",\n Jopf: \"𝕁\",\n Jscr: \"𝒥\",\n Jsercy: \"Ј\",\n Jukcy: \"Є\",\n KHcy: \"Х\",\n KJcy: \"Ќ\",\n Kappa: \"Κ\",\n Kcedil: \"Ķ\",\n Kcy: \"К\",\n Kfr: \"𝔎\",\n Kopf: \"𝕂\",\n Kscr: \"𝒦\",\n LJcy: \"Љ\",\n LT: \"<\",\n Lacute: \"Ĺ\",\n Lambda: \"Λ\",\n Lang: \"⟪\",\n Laplacetrf: \"ℒ\",\n Larr: \"↞\",\n Lcaron: \"Ľ\",\n Lcedil: \"Ļ\",\n Lcy: \"Л\",\n LeftAngleBracket: \"⟨\",\n LeftArrow: \"←\",\n LeftArrowBar: \"⇤\",\n LeftArrowRightArrow: \"⇆\",\n LeftCeiling: \"⌈\",\n LeftDoubleBracket: \"⟦\",\n LeftDownTeeVector: \"⥡\",\n LeftDownVector: \"⇃\",\n LeftDownVectorBar: \"⥙\",\n LeftFloor: \"⌊\",\n LeftRightArrow: \"↔\",\n LeftRightVector: \"⥎\",\n LeftTee: \"⊣\",\n LeftTeeArrow: \"↤\",\n LeftTeeVector: \"⥚\",\n LeftTriangle: \"⊲\",\n LeftTriangleBar: \"⧏\",\n LeftTriangleEqual: \"⊴\",\n LeftUpDownVector: \"⥑\",\n LeftUpTeeVector: \"⥠\",\n LeftUpVector: \"↿\",\n LeftUpVectorBar: \"⥘\",\n LeftVector: \"↼\",\n LeftVectorBar: \"⥒\",\n Leftarrow: \"⇐\",\n Leftrightarrow: \"⇔\",\n LessEqualGreater: \"⋚\",\n LessFullEqual: \"≦\",\n LessGreater: \"≶\",\n LessLess: \"⪡\",\n LessSlantEqual: \"⩽\",\n LessTilde: \"≲\",\n Lfr: \"𝔏\",\n Ll: \"⋘\",\n Lleftarrow: \"⇚\",\n Lmidot: \"Ŀ\",\n LongLeftArrow: \"⟵\",\n LongLeftRightArrow: \"⟷\",\n LongRightArrow: \"⟶\",\n Longleftarrow: \"⟸\",\n Longleftrightarrow: \"⟺\",\n Longrightarrow: \"⟹\",\n Lopf: \"𝕃\",\n LowerLeftArrow: \"↙\",\n LowerRightArrow: \"↘\",\n Lscr: \"ℒ\",\n Lsh: \"↰\",\n Lstrok: \"Ł\",\n Lt: \"≪\",\n Map: \"⤅\",\n Mcy: \"М\",\n MediumSpace: \" \",\n Mellintrf: \"ℳ\",\n Mfr: \"𝔐\",\n MinusPlus: \"∓\",\n Mopf: \"𝕄\",\n Mscr: \"ℳ\",\n Mu: \"Μ\",\n NJcy: \"Њ\",\n Nacute: \"Ń\",\n Ncaron: \"Ň\",\n Ncedil: \"Ņ\",\n Ncy: \"Н\",\n NegativeMediumSpace: \"\",\n NegativeThickSpace: \"\",\n NegativeThinSpace: \"\",\n NegativeVeryThinSpace: \"\",\n NestedGreaterGreater: \"≫\",\n NestedLessLess: \"≪\",\n NewLine: \"\\n\",\n Nfr: \"𝔑\",\n NoBreak: \"\",\n NonBreakingSpace: \" \",\n Nopf: \"ℕ\",\n Not: \"⫬\",\n NotCongruent: \"≢\",\n NotCupCap: \"≭\",\n NotDoubleVerticalBar: \"∦\",\n NotElement: \"∉\",\n NotEqual: \"≠\",\n NotEqualTilde: \"≂̸\",\n NotExists: \"∄\",\n NotGreater: \"≯\",\n NotGreaterEqual: \"≱\",\n NotGreaterFullEqual: \"≧̸\",\n NotGreaterGreater: \"≫̸\",\n NotGreaterLess: \"≹\",\n NotGreaterSlantEqual: \"⩾̸\",\n NotGreaterTilde: \"≵\",\n NotHumpDownHump: \"≎̸\",\n NotHumpEqual: \"≏̸\",\n NotLeftTriangle: \"⋪\",\n NotLeftTriangleBar: \"⧏̸\",\n NotLeftTriangleEqual: \"⋬\",\n NotLess: \"≮\",\n NotLessEqual: \"≰\",\n NotLessGreater: \"≸\",\n NotLessLess: \"≪̸\",\n NotLessSlantEqual: \"⩽̸\",\n NotLessTilde: \"≴\",\n NotNestedGreaterGreater: \"⪢̸\",\n NotNestedLessLess: \"⪡̸\",\n NotPrecedes: \"⊀\",\n NotPrecedesEqual: \"⪯̸\",\n NotPrecedesSlantEqual: \"⋠\",\n NotReverseElement: \"∌\",\n NotRightTriangle: \"⋫\",\n NotRightTriangleBar: \"⧐̸\",\n NotRightTriangleEqual: \"⋭\",\n NotSquareSubset: \"⊏̸\",\n NotSquareSubsetEqual: \"⋢\",\n NotSquareSuperset: \"⊐̸\",\n NotSquareSupersetEqual: \"⋣\",\n NotSubset: \"⊂⃒\",\n NotSubsetEqual: \"⊈\",\n NotSucceeds: \"⊁\",\n NotSucceedsEqual: \"⪰̸\",\n NotSucceedsSlantEqual: \"⋡\",\n NotSucceedsTilde: \"≿̸\",\n NotSuperset: \"⊃⃒\",\n NotSupersetEqual: \"⊉\",\n NotTilde: \"≁\",\n NotTildeEqual: \"≄\",\n NotTildeFullEqual: \"≇\",\n NotTildeTilde: \"≉\",\n NotVerticalBar: \"∤\",\n Nscr: \"𝒩\",\n Ntilde: \"Ñ\",\n Nu: \"Ν\",\n OElig: \"Œ\",\n Oacute: \"Ó\",\n Ocirc: \"Ô\",\n Ocy: \"О\",\n Odblac: \"Ő\",\n Ofr: \"𝔒\",\n Ograve: \"Ò\",\n Omacr: \"Ō\",\n Omega: \"Ω\",\n Omicron: \"Ο\",\n Oopf: \"𝕆\",\n OpenCurlyDoubleQuote: \"“\",\n OpenCurlyQuote: \"‘\",\n Or: \"⩔\",\n Oscr: \"𝒪\",\n Oslash: \"Ø\",\n Otilde: \"Õ\",\n Otimes: \"⨷\",\n Ouml: \"Ö\",\n OverBar: \"‾\",\n OverBrace: \"⏞\",\n OverBracket: \"⎴\",\n OverParenthesis: \"⏜\",\n PartialD: \"∂\",\n Pcy: \"П\",\n Pfr: \"𝔓\",\n Phi: \"Φ\",\n Pi: \"Π\",\n PlusMinus: \"±\",\n Poincareplane: \"ℌ\",\n Popf: \"ℙ\",\n Pr: \"⪻\",\n Precedes: \"≺\",\n PrecedesEqual: \"⪯\",\n PrecedesSlantEqual: \"≼\",\n PrecedesTilde: \"≾\",\n Prime: \"″\",\n Product: \"∏\",\n Proportion: \"∷\",\n Proportional: \"∝\",\n Pscr: \"𝒫\",\n Psi: \"Ψ\",\n QUOT: '\"',\n Qfr: \"𝔔\",\n Qopf: \"ℚ\",\n Qscr: \"𝒬\",\n RBarr: \"⤐\",\n REG: \"®\",\n Racute: \"Ŕ\",\n Rang: \"⟫\",\n Rarr: \"↠\",\n Rarrtl: \"⤖\",\n Rcaron: \"Ř\",\n Rcedil: \"Ŗ\",\n Rcy: \"Р\",\n Re: \"ℜ\",\n ReverseElement: \"∋\",\n ReverseEquilibrium: \"⇋\",\n ReverseUpEquilibrium: \"⥯\",\n Rfr: \"ℜ\",\n Rho: \"Ρ\",\n RightAngleBracket: \"⟩\",\n RightArrow: \"→\",\n RightArrowBar: \"⇥\",\n RightArrowLeftArrow: \"⇄\",\n RightCeiling: \"⌉\",\n RightDoubleBracket: \"⟧\",\n RightDownTeeVector: \"⥝\",\n RightDownVector: \"⇂\",\n RightDownVectorBar: \"⥕\",\n RightFloor: \"⌋\",\n RightTee: \"⊢\",\n RightTeeArrow: \"↦\",\n RightTeeVector: \"⥛\",\n RightTriangle: \"⊳\",\n RightTriangleBar: \"⧐\",\n RightTriangleEqual: \"⊵\",\n RightUpDownVector: \"⥏\",\n RightUpTeeVector: \"⥜\",\n RightUpVector: \"↾\",\n RightUpVectorBar: \"⥔\",\n RightVector: \"⇀\",\n RightVectorBar: \"⥓\",\n Rightarrow: \"⇒\",\n Ropf: \"ℝ\",\n RoundImplies: \"⥰\",\n Rrightarrow: \"⇛\",\n Rscr: \"ℛ\",\n Rsh: \"↱\",\n RuleDelayed: \"⧴\",\n SHCHcy: \"Щ\",\n SHcy: \"Ш\",\n SOFTcy: \"Ь\",\n Sacute: \"Ś\",\n Sc: \"⪼\",\n Scaron: \"Š\",\n Scedil: \"Ş\",\n Scirc: \"Ŝ\",\n Scy: \"С\",\n Sfr: \"𝔖\",\n ShortDownArrow: \"↓\",\n ShortLeftArrow: \"←\",\n ShortRightArrow: \"→\",\n ShortUpArrow: \"↑\",\n Sigma: \"Σ\",\n SmallCircle: \"∘\",\n Sopf: \"𝕊\",\n Sqrt: \"√\",\n Square: \"□\",\n SquareIntersection: \"⊓\",\n SquareSubset: \"⊏\",\n SquareSubsetEqual: \"⊑\",\n SquareSuperset: \"⊐\",\n SquareSupersetEqual: \"⊒\",\n SquareUnion: \"⊔\",\n Sscr: \"𝒮\",\n Star: \"⋆\",\n Sub: \"⋐\",\n Subset: \"⋐\",\n SubsetEqual: \"⊆\",\n Succeeds: \"≻\",\n SucceedsEqual: \"⪰\",\n SucceedsSlantEqual: \"≽\",\n SucceedsTilde: \"≿\",\n SuchThat: \"∋\",\n Sum: \"∑\",\n Sup: \"⋑\",\n Superset: \"⊃\",\n SupersetEqual: \"⊇\",\n Supset: \"⋑\",\n THORN: \"Þ\",\n TRADE: \"™\",\n TSHcy: \"Ћ\",\n TScy: \"Ц\",\n Tab: \"\\t\",\n Tau: \"Τ\",\n Tcaron: \"Ť\",\n Tcedil: \"Ţ\",\n Tcy: \"Т\",\n Tfr: \"𝔗\",\n Therefore: \"∴\",\n Theta: \"Θ\",\n ThickSpace: \" \",\n ThinSpace: \" \",\n Tilde: \"∼\",\n TildeEqual: \"≃\",\n TildeFullEqual: \"≅\",\n TildeTilde: \"≈\",\n Topf: \"𝕋\",\n TripleDot: \"⃛\",\n Tscr: \"𝒯\",\n Tstrok: \"Ŧ\",\n Uacute: \"Ú\",\n Uarr: \"↟\",\n Uarrocir: \"⥉\",\n Ubrcy: \"Ў\",\n Ubreve: \"Ŭ\",\n Ucirc: \"Û\",\n Ucy: \"У\",\n Udblac: \"Ű\",\n Ufr: \"𝔘\",\n Ugrave: \"Ù\",\n Umacr: \"Ū\",\n UnderBar: \"_\",\n UnderBrace: \"⏟\",\n UnderBracket: \"⎵\",\n UnderParenthesis: \"⏝\",\n Union: \"⋃\",\n UnionPlus: \"⊎\",\n Uogon: \"Ų\",\n Uopf: \"𝕌\",\n UpArrow: \"↑\",\n UpArrowBar: \"⤒\",\n UpArrowDownArrow: \"⇅\",\n UpDownArrow: \"↕\",\n UpEquilibrium: \"⥮\",\n UpTee: \"⊥\",\n UpTeeArrow: \"↥\",\n Uparrow: \"⇑\",\n Updownarrow: \"⇕\",\n UpperLeftArrow: \"↖\",\n UpperRightArrow: \"↗\",\n Upsi: \"ϒ\",\n Upsilon: \"Υ\",\n Uring: \"Ů\",\n Uscr: \"𝒰\",\n Utilde: \"Ũ\",\n Uuml: \"Ü\",\n VDash: \"⊫\",\n Vbar: \"⫫\",\n Vcy: \"В\",\n Vdash: \"⊩\",\n Vdashl: \"⫦\",\n Vee: \"⋁\",\n Verbar: \"‖\",\n Vert: \"‖\",\n VerticalBar: \"∣\",\n VerticalLine: \"|\",\n VerticalSeparator: \"❘\",\n VerticalTilde: \"≀\",\n VeryThinSpace: \" \",\n Vfr: \"𝔙\",\n Vopf: \"𝕍\",\n Vscr: \"𝒱\",\n Vvdash: \"⊪\",\n Wcirc: \"Ŵ\",\n Wedge: \"⋀\",\n Wfr: \"𝔚\",\n Wopf: \"𝕎\",\n Wscr: \"𝒲\",\n Xfr: \"𝔛\",\n Xi: \"Ξ\",\n Xopf: \"𝕏\",\n Xscr: \"𝒳\",\n YAcy: \"Я\",\n YIcy: \"Ї\",\n YUcy: \"Ю\",\n Yacute: \"Ý\",\n Ycirc: \"Ŷ\",\n Ycy: \"Ы\",\n Yfr: \"𝔜\",\n Yopf: \"𝕐\",\n Yscr: \"𝒴\",\n Yuml: \"Ÿ\",\n ZHcy: \"Ж\",\n Zacute: \"Ź\",\n Zcaron: \"Ž\",\n Zcy: \"З\",\n Zdot: \"Ż\",\n ZeroWidthSpace: \"\",\n Zeta: \"Ζ\",\n Zfr: \"ℨ\",\n Zopf: \"ℤ\",\n Zscr: \"𝒵\",\n aacute: \"á\",\n abreve: \"ă\",\n ac: \"∾\",\n acE: \"∾̳\",\n acd: \"∿\",\n acirc: \"â\",\n acute: \"´\",\n acy: \"а\",\n aelig: \"æ\",\n af: \"\",\n afr: \"𝔞\",\n agrave: \"à\",\n alefsym: \"ℵ\",\n aleph: \"ℵ\",\n alpha: \"α\",\n amacr: \"ā\",\n amalg: \"⨿\",\n amp: \"&\",\n and: \"∧\",\n andand: \"⩕\",\n andd: \"⩜\",\n andslope: \"⩘\",\n andv: \"⩚\",\n ang: \"∠\",\n ange: \"⦤\",\n angle: \"∠\",\n angmsd: \"∡\",\n angmsdaa: \"⦨\",\n angmsdab: \"⦩\",\n angmsdac: \"⦪\",\n angmsdad: \"⦫\",\n angmsdae: \"⦬\",\n angmsdaf: \"⦭\",\n angmsdag: \"⦮\",\n angmsdah: \"⦯\",\n angrt: \"∟\",\n angrtvb: \"⊾\",\n angrtvbd: \"⦝\",\n angsph: \"∢\",\n angst: \"Å\",\n angzarr: \"⍼\",\n aogon: \"ą\",\n aopf: \"𝕒\",\n ap: \"≈\",\n apE: \"⩰\",\n apacir: \"⩯\",\n ape: \"≊\",\n apid: \"≋\",\n apos: \"'\",\n approx: \"≈\",\n approxeq: \"≊\",\n aring: \"å\",\n ascr: \"𝒶\",\n ast: \"*\",\n asymp: \"≈\",\n asympeq: \"≍\",\n atilde: \"ã\",\n auml: \"ä\",\n awconint: \"∳\",\n awint: \"⨑\",\n bNot: \"⫭\",\n backcong: \"≌\",\n backepsilon: \"϶\",\n backprime: \"‵\",\n backsim: \"∽\",\n backsimeq: \"⋍\",\n barvee: \"⊽\",\n barwed: \"⌅\",\n barwedge: \"⌅\",\n bbrk: \"⎵\",\n bbrktbrk: \"⎶\",\n bcong: \"≌\",\n bcy: \"б\",\n bdquo: \"„\",\n becaus: \"∵\",\n because: \"∵\",\n bemptyv: \"⦰\",\n bepsi: \"϶\",\n bernou: \"ℬ\",\n beta: \"β\",\n beth: \"ℶ\",\n between: \"≬\",\n bfr: \"𝔟\",\n bigcap: \"⋂\",\n bigcirc: \"◯\",\n bigcup: \"⋃\",\n bigodot: \"⨀\",\n bigoplus: \"⨁\",\n bigotimes: \"⨂\",\n bigsqcup: \"⨆\",\n bigstar: \"★\",\n bigtriangledown: \"▽\",\n bigtriangleup: \"△\",\n biguplus: \"⨄\",\n bigvee: \"⋁\",\n bigwedge: \"⋀\",\n bkarow: \"⤍\",\n blacklozenge: \"⧫\",\n blacksquare: \"▪\",\n blacktriangle: \"▴\",\n blacktriangledown: \"▾\",\n blacktriangleleft: \"◂\",\n blacktriangleright: \"▸\",\n blank: \"␣\",\n blk12: \"▒\",\n blk14: \"░\",\n blk34: \"▓\",\n block: \"█\",\n bne: \"=⃥\",\n bnequiv: \"≡⃥\",\n bnot: \"⌐\",\n bopf: \"𝕓\",\n bot: \"⊥\",\n bottom: \"⊥\",\n bowtie: \"⋈\",\n boxDL: \"╗\",\n boxDR: \"╔\",\n boxDl: \"╖\",\n boxDr: \"╓\",\n boxH: \"═\",\n boxHD: \"╦\",\n boxHU: \"╩\",\n boxHd: \"╤\",\n boxHu: \"╧\",\n boxUL: \"╝\",\n boxUR: \"╚\",\n boxUl: \"╜\",\n boxUr: \"╙\",\n boxV: \"║\",\n boxVH: \"╬\",\n boxVL: \"╣\",\n boxVR: \"╠\",\n boxVh: \"╫\",\n boxVl: \"╢\",\n boxVr: \"╟\",\n boxbox: \"⧉\",\n boxdL: \"╕\",\n boxdR: \"╒\",\n boxdl: \"┐\",\n boxdr: \"┌\",\n boxh: \"─\",\n boxhD: \"╥\",\n boxhU: \"╨\",\n boxhd: \"┬\",\n boxhu: \"┴\",\n boxminus: \"⊟\",\n boxplus: \"⊞\",\n boxtimes: \"⊠\",\n boxuL: \"╛\",\n boxuR: \"╘\",\n boxul: \"┘\",\n boxur: \"└\",\n boxv: \"│\",\n boxvH: \"╪\",\n boxvL: \"╡\",\n boxvR: \"╞\",\n boxvh: \"┼\",\n boxvl: \"┤\",\n boxvr: \"├\",\n bprime: \"‵\",\n breve: \"˘\",\n brvbar: \"¦\",\n bscr: \"𝒷\",\n bsemi: \"⁏\",\n bsim: \"∽\",\n bsime: \"⋍\",\n bsol: \"\\\\\",\n bsolb: \"⧅\",\n bsolhsub: \"⟈\",\n bull: \"•\",\n bullet: \"•\",\n bump: \"≎\",\n bumpE: \"⪮\",\n bumpe: \"≏\",\n bumpeq: \"≏\",\n cacute: \"ć\",\n cap: \"∩\",\n capand: \"⩄\",\n capbrcup: \"⩉\",\n capcap: \"⩋\",\n capcup: \"⩇\",\n capdot: \"⩀\",\n caps: \"∩︀\",\n caret: \"⁁\",\n caron: \"ˇ\",\n ccaps: \"⩍\",\n ccaron: \"č\",\n ccedil: \"ç\",\n ccirc: \"ĉ\",\n ccups: \"⩌\",\n ccupssm: \"⩐\",\n cdot: \"ċ\",\n cedil: \"¸\",\n cemptyv: \"⦲\",\n cent: \"¢\",\n centerdot: \"·\",\n cfr: \"𝔠\",\n chcy: \"ч\",\n check: \"✓\",\n checkmark: \"✓\",\n chi: \"χ\",\n cir: \"○\",\n cirE: \"⧃\",\n circ: \"ˆ\",\n circeq: \"≗\",\n circlearrowleft: \"↺\",\n circlearrowright: \"↻\",\n circledR: \"®\",\n circledS: \"Ⓢ\",\n circledast: \"⊛\",\n circledcirc: \"⊚\",\n circleddash: \"⊝\",\n cire: \"≗\",\n cirfnint: \"⨐\",\n cirmid: \"⫯\",\n cirscir: \"⧂\",\n clubs: \"♣\",\n clubsuit: \"♣\",\n colon: \":\",\n colone: \"≔\",\n coloneq: \"≔\",\n comma: \",\",\n commat: \"@\",\n comp: \"∁\",\n compfn: \"∘\",\n complement: \"∁\",\n complexes: \"ℂ\",\n cong: \"≅\",\n congdot: \"⩭\",\n conint: \"∮\",\n copf: \"𝕔\",\n coprod: \"∐\",\n copy: \"©\",\n copysr: \"℗\",\n crarr: \"↵\",\n cross: \"✗\",\n cscr: \"𝒸\",\n csub: \"⫏\",\n csube: \"⫑\",\n csup: \"⫐\",\n csupe: \"⫒\",\n ctdot: \"⋯\",\n cudarrl: \"⤸\",\n cudarrr: \"⤵\",\n cuepr: \"⋞\",\n cuesc: \"⋟\",\n cularr: \"↶\",\n cularrp: \"⤽\",\n cup: \"∪\",\n cupbrcap: \"⩈\",\n cupcap: \"⩆\",\n cupcup: \"⩊\",\n cupdot: \"⊍\",\n cupor: \"⩅\",\n cups: \"∪︀\",\n curarr: \"↷\",\n curarrm: \"⤼\",\n curlyeqprec: \"⋞\",\n curlyeqsucc: \"⋟\",\n curlyvee: \"⋎\",\n curlywedge: \"⋏\",\n curren: \"¤\",\n curvearrowleft: \"↶\",\n curvearrowright: \"↷\",\n cuvee: \"⋎\",\n cuwed: \"⋏\",\n cwconint: \"∲\",\n cwint: \"∱\",\n cylcty: \"⌭\",\n dArr: \"⇓\",\n dHar: \"⥥\",\n dagger: \"†\",\n daleth: \"ℸ\",\n darr: \"↓\",\n dash: \"‐\",\n dashv: \"⊣\",\n dbkarow: \"⤏\",\n dblac: \"˝\",\n dcaron: \"ď\",\n dcy: \"д\",\n dd: \"ⅆ\",\n ddagger: \"‡\",\n ddarr: \"⇊\",\n ddotseq: \"⩷\",\n deg: \"°\",\n delta: \"δ\",\n demptyv: \"⦱\",\n dfisht: \"⥿\",\n dfr: \"𝔡\",\n dharl: \"⇃\",\n dharr: \"⇂\",\n diam: \"⋄\",\n diamond: \"⋄\",\n diamondsuit: \"♦\",\n diams: \"♦\",\n die: \"¨\",\n digamma: \"ϝ\",\n disin: \"⋲\",\n div: \"÷\",\n divide: \"÷\",\n divideontimes: \"⋇\",\n divonx: \"⋇\",\n djcy: \"ђ\",\n dlcorn: \"⌞\",\n dlcrop: \"⌍\",\n dollar: \"$\",\n dopf: \"𝕕\",\n dot: \"˙\",\n doteq: \"≐\",\n doteqdot: \"≑\",\n dotminus: \"∸\",\n dotplus: \"∔\",\n dotsquare: \"⊡\",\n doublebarwedge: \"⌆\",\n downarrow: \"↓\",\n downdownarrows: \"⇊\",\n downharpoonleft: \"⇃\",\n downharpoonright: \"⇂\",\n drbkarow: \"⤐\",\n drcorn: \"⌟\",\n drcrop: \"⌌\",\n dscr: \"𝒹\",\n dscy: \"ѕ\",\n dsol: \"⧶\",\n dstrok: \"đ\",\n dtdot: \"⋱\",\n dtri: \"▿\",\n dtrif: \"▾\",\n duarr: \"⇵\",\n duhar: \"⥯\",\n dwangle: \"⦦\",\n dzcy: \"џ\",\n dzigrarr: \"⟿\",\n eDDot: \"⩷\",\n eDot: \"≑\",\n eacute: \"é\",\n easter: \"⩮\",\n ecaron: \"ě\",\n ecir: \"≖\",\n ecirc: \"ê\",\n ecolon: \"≕\",\n ecy: \"э\",\n edot: \"ė\",\n ee: \"ⅇ\",\n efDot: \"≒\",\n efr: \"𝔢\",\n eg: \"⪚\",\n egrave: \"è\",\n egs: \"⪖\",\n egsdot: \"⪘\",\n el: \"⪙\",\n elinters: \"⏧\",\n ell: \"ℓ\",\n els: \"⪕\",\n elsdot: \"⪗\",\n emacr: \"ē\",\n empty: \"∅\",\n emptyset: \"∅\",\n emptyv: \"∅\",\n emsp: \" \",\n emsp13: \" \",\n emsp14: \" \",\n eng: \"ŋ\",\n ensp: \" \",\n eogon: \"ę\",\n eopf: \"𝕖\",\n epar: \"⋕\",\n eparsl: \"⧣\",\n eplus: \"⩱\",\n epsi: \"ε\",\n epsilon: \"ε\",\n epsiv: \"ϵ\",\n eqcirc: \"≖\",\n eqcolon: \"≕\",\n eqsim: \"≂\",\n eqslantgtr: \"⪖\",\n eqslantless: \"⪕\",\n equals: \"=\",\n equest: \"≟\",\n equiv: \"≡\",\n equivDD: \"⩸\",\n eqvparsl: \"⧥\",\n erDot: \"≓\",\n erarr: \"⥱\",\n escr: \"ℯ\",\n esdot: \"≐\",\n esim: \"≂\",\n eta: \"η\",\n eth: \"ð\",\n euml: \"ë\",\n euro: \"€\",\n excl: \"!\",\n exist: \"∃\",\n expectation: \"ℰ\",\n exponentiale: \"ⅇ\",\n fallingdotseq: \"≒\",\n fcy: \"ф\",\n female: \"♀\",\n ffilig: \"ffi\",\n fflig: \"ff\",\n ffllig: \"ffl\",\n ffr: \"𝔣\",\n filig: \"fi\",\n fjlig: \"fj\",\n flat: \"♭\",\n fllig: \"fl\",\n fltns: \"▱\",\n fnof: \"ƒ\",\n fopf: \"𝕗\",\n forall: \"∀\",\n fork: \"⋔\",\n forkv: \"⫙\",\n fpartint: \"⨍\",\n frac12: \"½\",\n frac13: \"⅓\",\n frac14: \"¼\",\n frac15: \"⅕\",\n frac16: \"⅙\",\n frac18: \"⅛\",\n frac23: \"⅔\",\n frac25: \"⅖\",\n frac34: \"¾\",\n frac35: \"⅗\",\n frac38: \"⅜\",\n frac45: \"⅘\",\n frac56: \"⅚\",\n frac58: \"⅝\",\n frac78: \"⅞\",\n frasl: \"⁄\",\n frown: \"⌢\",\n fscr: \"𝒻\",\n gE: \"≧\",\n gEl: \"⪌\",\n gacute: \"ǵ\",\n gamma: \"γ\",\n gammad: \"ϝ\",\n gap: \"⪆\",\n gbreve: \"ğ\",\n gcirc: \"ĝ\",\n gcy: \"г\",\n gdot: \"ġ\",\n ge: \"≥\",\n gel: \"⋛\",\n geq: \"≥\",\n geqq: \"≧\",\n geqslant: \"⩾\",\n ges: \"⩾\",\n gescc: \"⪩\",\n gesdot: \"⪀\",\n gesdoto: \"⪂\",\n gesdotol: \"⪄\",\n gesl: \"⋛︀\",\n gesles: \"⪔\",\n gfr: \"𝔤\",\n gg: \"≫\",\n ggg: \"⋙\",\n gimel: \"ℷ\",\n gjcy: \"ѓ\",\n gl: \"≷\",\n glE: \"⪒\",\n gla: \"⪥\",\n glj: \"⪤\",\n gnE: \"≩\",\n gnap: \"⪊\",\n gnapprox: \"⪊\",\n gne: \"⪈\",\n gneq: \"⪈\",\n gneqq: \"≩\",\n gnsim: \"⋧\",\n gopf: \"𝕘\",\n grave: \"`\",\n gscr: \"ℊ\",\n gsim: \"≳\",\n gsime: \"⪎\",\n gsiml: \"⪐\",\n gt: \">\",\n gtcc: \"⪧\",\n gtcir: \"⩺\",\n gtdot: \"⋗\",\n gtlPar: \"⦕\",\n gtquest: \"⩼\",\n gtrapprox: \"⪆\",\n gtrarr: \"⥸\",\n gtrdot: \"⋗\",\n gtreqless: \"⋛\",\n gtreqqless: \"⪌\",\n gtrless: \"≷\",\n gtrsim: \"≳\",\n gvertneqq: \"≩︀\",\n gvnE: \"≩︀\",\n hArr: \"⇔\",\n hairsp: \" \",\n half: \"½\",\n hamilt: \"ℋ\",\n hardcy: \"ъ\",\n harr: \"↔\",\n harrcir: \"⥈\",\n harrw: \"↭\",\n hbar: \"ℏ\",\n hcirc: \"ĥ\",\n hearts: \"♥\",\n heartsuit: \"♥\",\n hellip: \"…\",\n hercon: \"⊹\",\n hfr: \"𝔥\",\n hksearow: \"⤥\",\n hkswarow: \"⤦\",\n hoarr: \"⇿\",\n homtht: \"∻\",\n hookleftarrow: \"↩\",\n hookrightarrow: \"↪\",\n hopf: \"𝕙\",\n horbar: \"―\",\n hscr: \"𝒽\",\n hslash: \"ℏ\",\n hstrok: \"ħ\",\n hybull: \"⁃\",\n hyphen: \"‐\",\n iacute: \"í\",\n ic: \"\",\n icirc: \"î\",\n icy: \"и\",\n iecy: \"е\",\n iexcl: \"¡\",\n iff: \"⇔\",\n ifr: \"𝔦\",\n igrave: \"ì\",\n ii: \"ⅈ\",\n iiiint: \"⨌\",\n iiint: \"∭\",\n iinfin: \"⧜\",\n iiota: \"℩\",\n ijlig: \"ij\",\n imacr: \"ī\",\n image: \"ℑ\",\n imagline: \"ℐ\",\n imagpart: \"ℑ\",\n imath: \"ı\",\n imof: \"⊷\",\n imped: \"Ƶ\",\n in: \"∈\",\n incare: \"℅\",\n infin: \"∞\",\n infintie: \"⧝\",\n inodot: \"ı\",\n int: \"∫\",\n intcal: \"⊺\",\n integers: \"ℤ\",\n intercal: \"⊺\",\n intlarhk: \"⨗\",\n intprod: \"⨼\",\n iocy: \"ё\",\n iogon: \"į\",\n iopf: \"𝕚\",\n iota: \"ι\",\n iprod: \"⨼\",\n iquest: \"¿\",\n iscr: \"𝒾\",\n isin: \"∈\",\n isinE: \"⋹\",\n isindot: \"⋵\",\n isins: \"⋴\",\n isinsv: \"⋳\",\n isinv: \"∈\",\n it: \"\",\n itilde: \"ĩ\",\n iukcy: \"і\",\n iuml: \"ï\",\n jcirc: \"ĵ\",\n jcy: \"й\",\n jfr: \"𝔧\",\n jmath: \"ȷ\",\n jopf: \"𝕛\",\n jscr: \"𝒿\",\n jsercy: \"ј\",\n jukcy: \"є\",\n kappa: \"κ\",\n kappav: \"ϰ\",\n kcedil: \"ķ\",\n kcy: \"к\",\n kfr: \"𝔨\",\n kgreen: \"ĸ\",\n khcy: \"х\",\n kjcy: \"ќ\",\n kopf: \"𝕜\",\n kscr: \"𝓀\",\n lAarr: \"⇚\",\n lArr: \"⇐\",\n lAtail: \"⤛\",\n lBarr: \"⤎\",\n lE: \"≦\",\n lEg: \"⪋\",\n lHar: \"⥢\",\n lacute: \"ĺ\",\n laemptyv: \"⦴\",\n lagran: \"ℒ\",\n lambda: \"λ\",\n lang: \"⟨\",\n langd: \"⦑\",\n langle: \"⟨\",\n lap: \"⪅\",\n laquo: \"«\",\n larr: \"←\",\n larrb: \"⇤\",\n larrbfs: \"⤟\",\n larrfs: \"⤝\",\n larrhk: \"↩\",\n larrlp: \"↫\",\n larrpl: \"⤹\",\n larrsim: \"⥳\",\n larrtl: \"↢\",\n lat: \"⪫\",\n latail: \"⤙\",\n late: \"⪭\",\n lates: \"⪭︀\",\n lbarr: \"⤌\",\n lbbrk: \"❲\",\n lbrace: \"{\",\n lbrack: \"[\",\n lbrke: \"⦋\",\n lbrksld: \"⦏\",\n lbrkslu: \"⦍\",\n lcaron: \"ľ\",\n lcedil: \"ļ\",\n lceil: \"⌈\",\n lcub: \"{\",\n lcy: \"л\",\n ldca: \"⤶\",\n ldquo: \"“\",\n ldquor: \"„\",\n ldrdhar: \"⥧\",\n ldrushar: \"⥋\",\n ldsh: \"↲\",\n le: \"≤\",\n leftarrow: \"←\",\n leftarrowtail: \"↢\",\n leftharpoondown: \"↽\",\n leftharpoonup: \"↼\",\n leftleftarrows: \"⇇\",\n leftrightarrow: \"↔\",\n leftrightarrows: \"⇆\",\n leftrightharpoons: \"⇋\",\n leftrightsquigarrow: \"↭\",\n leftthreetimes: \"⋋\",\n leg: \"⋚\",\n leq: \"≤\",\n leqq: \"≦\",\n leqslant: \"⩽\",\n les: \"⩽\",\n lescc: \"⪨\",\n lesdot: \"⩿\",\n lesdoto: \"⪁\",\n lesdotor: \"⪃\",\n lesg: \"⋚︀\",\n lesges: \"⪓\",\n lessapprox: \"⪅\",\n lessdot: \"⋖\",\n lesseqgtr: \"⋚\",\n lesseqqgtr: \"⪋\",\n lessgtr: \"≶\",\n lesssim: \"≲\",\n lfisht: \"⥼\",\n lfloor: \"⌊\",\n lfr: \"𝔩\",\n lg: \"≶\",\n lgE: \"⪑\",\n lhard: \"↽\",\n lharu: \"↼\",\n lharul: \"⥪\",\n lhblk: \"▄\",\n ljcy: \"љ\",\n ll: \"≪\",\n llarr: \"⇇\",\n llcorner: \"⌞\",\n llhard: \"⥫\",\n lltri: \"◺\",\n lmidot: \"ŀ\",\n lmoust: \"⎰\",\n lmoustache: \"⎰\",\n lnE: \"≨\",\n lnap: \"⪉\",\n lnapprox: \"⪉\",\n lne: \"⪇\",\n lneq: \"⪇\",\n lneqq: \"≨\",\n lnsim: \"⋦\",\n loang: \"⟬\",\n loarr: \"⇽\",\n lobrk: \"⟦\",\n longleftarrow: \"⟵\",\n longleftrightarrow: \"⟷\",\n longmapsto: \"⟼\",\n longrightarrow: \"⟶\",\n looparrowleft: \"↫\",\n looparrowright: \"↬\",\n lopar: \"⦅\",\n lopf: \"𝕝\",\n loplus: \"⨭\",\n lotimes: \"⨴\",\n lowast: \"∗\",\n lowbar: \"_\",\n loz: \"◊\",\n lozenge: \"◊\",\n lozf: \"⧫\",\n lpar: \"(\",\n lparlt: \"⦓\",\n lrarr: \"⇆\",\n lrcorner: \"⌟\",\n lrhar: \"⇋\",\n lrhard: \"⥭\",\n lrm: \"\",\n lrtri: \"⊿\",\n lsaquo: \"‹\",\n lscr: \"𝓁\",\n lsh: \"↰\",\n lsim: \"≲\",\n lsime: \"⪍\",\n lsimg: \"⪏\",\n lsqb: \"[\",\n lsquo: \"‘\",\n lsquor: \"‚\",\n lstrok: \"ł\",\n lt: \"<\",\n ltcc: \"⪦\",\n ltcir: \"⩹\",\n ltdot: \"⋖\",\n lthree: \"⋋\",\n ltimes: \"⋉\",\n ltlarr: \"⥶\",\n ltquest: \"⩻\",\n ltrPar: \"⦖\",\n ltri: \"◃\",\n ltrie: \"⊴\",\n ltrif: \"◂\",\n lurdshar: \"⥊\",\n luruhar: \"⥦\",\n lvertneqq: \"≨︀\",\n lvnE: \"≨︀\",\n mDDot: \"∺\",\n macr: \"¯\",\n male: \"♂\",\n malt: \"✠\",\n maltese: \"✠\",\n map: \"↦\",\n mapsto: \"↦\",\n mapstodown: \"↧\",\n mapstoleft: \"↤\",\n mapstoup: \"↥\",\n marker: \"▮\",\n mcomma: \"⨩\",\n mcy: \"м\",\n mdash: \"—\",\n measuredangle: \"∡\",\n mfr: \"𝔪\",\n mho: \"℧\",\n micro: \"µ\",\n mid: \"∣\",\n midast: \"*\",\n midcir: \"⫰\",\n middot: \"·\",\n minus: \"−\",\n minusb: \"⊟\",\n minusd: \"∸\",\n minusdu: \"⨪\",\n mlcp: \"⫛\",\n mldr: \"…\",\n mnplus: \"∓\",\n models: \"⊧\",\n mopf: \"𝕞\",\n mp: \"∓\",\n mscr: \"𝓂\",\n mstpos: \"∾\",\n mu: \"μ\",\n multimap: \"⊸\",\n mumap: \"⊸\",\n nGg: \"⋙̸\",\n nGt: \"≫⃒\",\n nGtv: \"≫̸\",\n nLeftarrow: \"⇍\",\n nLeftrightarrow: \"⇎\",\n nLl: \"⋘̸\",\n nLt: \"≪⃒\",\n nLtv: \"≪̸\",\n nRightarrow: \"⇏\",\n nVDash: \"⊯\",\n nVdash: \"⊮\",\n nabla: \"∇\",\n nacute: \"ń\",\n nang: \"∠⃒\",\n nap: \"≉\",\n napE: \"⩰̸\",\n napid: \"≋̸\",\n napos: \"ʼn\",\n napprox: \"≉\",\n natur: \"♮\",\n natural: \"♮\",\n naturals: \"ℕ\",\n nbsp: \" \",\n nbump: \"≎̸\",\n nbumpe: \"≏̸\",\n ncap: \"⩃\",\n ncaron: \"ň\",\n ncedil: \"ņ\",\n ncong: \"≇\",\n ncongdot: \"⩭̸\",\n ncup: \"⩂\",\n ncy: \"н\",\n ndash: \"–\",\n ne: \"≠\",\n neArr: \"⇗\",\n nearhk: \"⤤\",\n nearr: \"↗\",\n nearrow: \"↗\",\n nedot: \"≐̸\",\n nequiv: \"≢\",\n nesear: \"⤨\",\n nesim: \"≂̸\",\n nexist: \"∄\",\n nexists: \"∄\",\n nfr: \"𝔫\",\n ngE: \"≧̸\",\n nge: \"≱\",\n ngeq: \"≱\",\n ngeqq: \"≧̸\",\n ngeqslant: \"⩾̸\",\n nges: \"⩾̸\",\n ngsim: \"≵\",\n ngt: \"≯\",\n ngtr: \"≯\",\n nhArr: \"⇎\",\n nharr: \"↮\",\n nhpar: \"⫲\",\n ni: \"∋\",\n nis: \"⋼\",\n nisd: \"⋺\",\n niv: \"∋\",\n njcy: \"њ\",\n nlArr: \"⇍\",\n nlE: \"≦̸\",\n nlarr: \"↚\",\n nldr: \"‥\",\n nle: \"≰\",\n nleftarrow: \"↚\",\n nleftrightarrow: \"↮\",\n nleq: \"≰\",\n nleqq: \"≦̸\",\n nleqslant: \"⩽̸\",\n nles: \"⩽̸\",\n nless: \"≮\",\n nlsim: \"≴\",\n nlt: \"≮\",\n nltri: \"⋪\",\n nltrie: \"⋬\",\n nmid: \"∤\",\n nopf: \"𝕟\",\n not: \"¬\",\n notin: \"∉\",\n notinE: \"⋹̸\",\n notindot: \"⋵̸\",\n notinva: \"∉\",\n notinvb: \"⋷\",\n notinvc: \"⋶\",\n notni: \"∌\",\n notniva: \"∌\",\n notnivb: \"⋾\",\n notnivc: \"⋽\",\n npar: \"∦\",\n nparallel: \"∦\",\n nparsl: \"⫽⃥\",\n npart: \"∂̸\",\n npolint: \"⨔\",\n npr: \"⊀\",\n nprcue: \"⋠\",\n npre: \"⪯̸\",\n nprec: \"⊀\",\n npreceq: \"⪯̸\",\n nrArr: \"⇏\",\n nrarr: \"↛\",\n nrarrc: \"⤳̸\",\n nrarrw: \"↝̸\",\n nrightarrow: \"↛\",\n nrtri: \"⋫\",\n nrtrie: \"⋭\",\n nsc: \"⊁\",\n nsccue: \"⋡\",\n nsce: \"⪰̸\",\n nscr: \"𝓃\",\n nshortmid: \"∤\",\n nshortparallel: \"∦\",\n nsim: \"≁\",\n nsime: \"≄\",\n nsimeq: \"≄\",\n nsmid: \"∤\",\n nspar: \"∦\",\n nsqsube: \"⋢\",\n nsqsupe: \"⋣\",\n nsub: \"⊄\",\n nsubE: \"⫅̸\",\n nsube: \"⊈\",\n nsubset: \"⊂⃒\",\n nsubseteq: \"⊈\",\n nsubseteqq: \"⫅̸\",\n nsucc: \"⊁\",\n nsucceq: \"⪰̸\",\n nsup: \"⊅\",\n nsupE: \"⫆̸\",\n nsupe: \"⊉\",\n nsupset: \"⊃⃒\",\n nsupseteq: \"⊉\",\n nsupseteqq: \"⫆̸\",\n ntgl: \"≹\",\n ntilde: \"ñ\",\n ntlg: \"≸\",\n ntriangleleft: \"⋪\",\n ntrianglelefteq: \"⋬\",\n ntriangleright: \"⋫\",\n ntrianglerighteq: \"⋭\",\n nu: \"ν\",\n num: \"#\",\n numero: \"№\",\n numsp: \" \",\n nvDash: \"⊭\",\n nvHarr: \"⤄\",\n nvap: \"≍⃒\",\n nvdash: \"⊬\",\n nvge: \"≥⃒\",\n nvgt: \">⃒\",\n nvinfin: \"⧞\",\n nvlArr: \"⤂\",\n nvle: \"≤⃒\",\n nvlt: \"<⃒\",\n nvltrie: \"⊴⃒\",\n nvrArr: \"⤃\",\n nvrtrie: \"⊵⃒\",\n nvsim: \"∼⃒\",\n nwArr: \"⇖\",\n nwarhk: \"⤣\",\n nwarr: \"↖\",\n nwarrow: \"↖\",\n nwnear: \"⤧\",\n oS: \"Ⓢ\",\n oacute: \"ó\",\n oast: \"⊛\",\n ocir: \"⊚\",\n ocirc: \"ô\",\n ocy: \"о\",\n odash: \"⊝\",\n odblac: \"ő\",\n odiv: \"⨸\",\n odot: \"⊙\",\n odsold: \"⦼\",\n oelig: \"œ\",\n ofcir: \"⦿\",\n ofr: \"𝔬\",\n ogon: \"˛\",\n ograve: \"ò\",\n ogt: \"⧁\",\n ohbar: \"⦵\",\n ohm: \"Ω\",\n oint: \"∮\",\n olarr: \"↺\",\n olcir: \"⦾\",\n olcross: \"⦻\",\n oline: \"‾\",\n olt: \"⧀\",\n omacr: \"ō\",\n omega: \"ω\",\n omicron: \"ο\",\n omid: \"⦶\",\n ominus: \"⊖\",\n oopf: \"𝕠\",\n opar: \"⦷\",\n operp: \"⦹\",\n oplus: \"⊕\",\n or: \"∨\",\n orarr: \"↻\",\n ord: \"⩝\",\n order: \"ℴ\",\n orderof: \"ℴ\",\n ordf: \"ª\",\n ordm: \"º\",\n origof: \"⊶\",\n oror: \"⩖\",\n orslope: \"⩗\",\n orv: \"⩛\",\n oscr: \"ℴ\",\n oslash: \"ø\",\n osol: \"⊘\",\n otilde: \"õ\",\n otimes: \"⊗\",\n otimesas: \"⨶\",\n ouml: \"ö\",\n ovbar: \"⌽\",\n par: \"∥\",\n para: \"¶\",\n parallel: \"∥\",\n parsim: \"⫳\",\n parsl: \"⫽\",\n part: \"∂\",\n pcy: \"п\",\n percnt: \"%\",\n period: \".\",\n permil: \"‰\",\n perp: \"⊥\",\n pertenk: \"‱\",\n pfr: \"𝔭\",\n phi: \"φ\",\n phiv: \"ϕ\",\n phmmat: \"ℳ\",\n phone: \"☎\",\n pi: \"π\",\n pitchfork: \"⋔\",\n piv: \"ϖ\",\n planck: \"ℏ\",\n planckh: \"ℎ\",\n plankv: \"ℏ\",\n plus: \"+\",\n plusacir: \"⨣\",\n plusb: \"⊞\",\n pluscir: \"⨢\",\n plusdo: \"∔\",\n plusdu: \"⨥\",\n pluse: \"⩲\",\n plusmn: \"±\",\n plussim: \"⨦\",\n plustwo: \"⨧\",\n pm: \"±\",\n pointint: \"⨕\",\n popf: \"𝕡\",\n pound: \"£\",\n pr: \"≺\",\n prE: \"⪳\",\n prap: \"⪷\",\n prcue: \"≼\",\n pre: \"⪯\",\n prec: \"≺\",\n precapprox: \"⪷\",\n preccurlyeq: \"≼\",\n preceq: \"⪯\",\n precnapprox: \"⪹\",\n precneqq: \"⪵\",\n precnsim: \"⋨\",\n precsim: \"≾\",\n prime: \"′\",\n primes: \"ℙ\",\n prnE: \"⪵\",\n prnap: \"⪹\",\n prnsim: \"⋨\",\n prod: \"∏\",\n profalar: \"⌮\",\n profline: \"⌒\",\n profsurf: \"⌓\",\n prop: \"∝\",\n propto: \"∝\",\n prsim: \"≾\",\n prurel: \"⊰\",\n pscr: \"𝓅\",\n psi: \"ψ\",\n puncsp: \" \",\n qfr: \"𝔮\",\n qint: \"⨌\",\n qopf: \"𝕢\",\n qprime: \"⁗\",\n qscr: \"𝓆\",\n quaternions: \"ℍ\",\n quatint: \"⨖\",\n quest: \"?\",\n questeq: \"≟\",\n quot: '\"',\n rAarr: \"⇛\",\n rArr: \"⇒\",\n rAtail: \"⤜\",\n rBarr: \"⤏\",\n rHar: \"⥤\",\n race: \"∽̱\",\n racute: \"ŕ\",\n radic: \"√\",\n raemptyv: \"⦳\",\n rang: \"⟩\",\n rangd: \"⦒\",\n range: \"⦥\",\n rangle: \"⟩\",\n raquo: \"»\",\n rarr: \"→\",\n rarrap: \"⥵\",\n rarrb: \"⇥\",\n rarrbfs: \"⤠\",\n rarrc: \"⤳\",\n rarrfs: \"⤞\",\n rarrhk: \"↪\",\n rarrlp: \"↬\",\n rarrpl: \"⥅\",\n rarrsim: \"⥴\",\n rarrtl: \"↣\",\n rarrw: \"↝\",\n ratail: \"⤚\",\n ratio: \"∶\",\n rationals: \"ℚ\",\n rbarr: \"⤍\",\n rbbrk: \"❳\",\n rbrace: \"}\",\n rbrack: \"]\",\n rbrke: \"⦌\",\n rbrksld: \"⦎\",\n rbrkslu: \"⦐\",\n rcaron: \"ř\",\n rcedil: \"ŗ\",\n rceil: \"⌉\",\n rcub: \"}\",\n rcy: \"р\",\n rdca: \"⤷\",\n rdldhar: \"⥩\",\n rdquo: \"”\",\n rdquor: \"”\",\n rdsh: \"↳\",\n real: \"ℜ\",\n realine: \"ℛ\",\n realpart: \"ℜ\",\n reals: \"ℝ\",\n rect: \"▭\",\n reg: \"®\",\n rfisht: \"⥽\",\n rfloor: \"⌋\",\n rfr: \"𝔯\",\n rhard: \"⇁\",\n rharu: \"⇀\",\n rharul: \"⥬\",\n rho: \"ρ\",\n rhov: \"ϱ\",\n rightarrow: \"→\",\n rightarrowtail: \"↣\",\n rightharpoondown: \"⇁\",\n rightharpoonup: \"⇀\",\n rightleftarrows: \"⇄\",\n rightleftharpoons: \"⇌\",\n rightrightarrows: \"⇉\",\n rightsquigarrow: \"↝\",\n rightthreetimes: \"⋌\",\n ring: \"˚\",\n risingdotseq: \"≓\",\n rlarr: \"⇄\",\n rlhar: \"⇌\",\n rlm: \"\",\n rmoust: \"⎱\",\n rmoustache: \"⎱\",\n rnmid: \"⫮\",\n roang: \"⟭\",\n roarr: \"⇾\",\n robrk: \"⟧\",\n ropar: \"⦆\",\n ropf: \"𝕣\",\n roplus: \"⨮\",\n rotimes: \"⨵\",\n rpar: \")\",\n rpargt: \"⦔\",\n rppolint: \"⨒\",\n rrarr: \"⇉\",\n rsaquo: \"›\",\n rscr: \"𝓇\",\n rsh: \"↱\",\n rsqb: \"]\",\n rsquo: \"’\",\n rsquor: \"’\",\n rthree: \"⋌\",\n rtimes: \"⋊\",\n rtri: \"▹\",\n rtrie: \"⊵\",\n rtrif: \"▸\",\n rtriltri: \"⧎\",\n ruluhar: \"⥨\",\n rx: \"℞\",\n sacute: \"ś\",\n sbquo: \"‚\",\n sc: \"≻\",\n scE: \"⪴\",\n scap: \"⪸\",\n scaron: \"š\",\n sccue: \"≽\",\n sce: \"⪰\",\n scedil: \"ş\",\n scirc: \"ŝ\",\n scnE: \"⪶\",\n scnap: \"⪺\",\n scnsim: \"⋩\",\n scpolint: \"⨓\",\n scsim: \"≿\",\n scy: \"с\",\n sdot: \"⋅\",\n sdotb: \"⊡\",\n sdote: \"⩦\",\n seArr: \"⇘\",\n searhk: \"⤥\",\n searr: \"↘\",\n searrow: \"↘\",\n sect: \"§\",\n semi: \";\",\n seswar: \"⤩\",\n setminus: \"∖\",\n setmn: \"∖\",\n sext: \"✶\",\n sfr: \"𝔰\",\n sfrown: \"⌢\",\n sharp: \"♯\",\n shchcy: \"щ\",\n shcy: \"ш\",\n shortmid: \"∣\",\n shortparallel: \"∥\",\n shy: \"\",\n sigma: \"σ\",\n sigmaf: \"ς\",\n sigmav: \"ς\",\n sim: \"∼\",\n simdot: \"⩪\",\n sime: \"≃\",\n simeq: \"≃\",\n simg: \"⪞\",\n simgE: \"⪠\",\n siml: \"⪝\",\n simlE: \"⪟\",\n simne: \"≆\",\n simplus: \"⨤\",\n simrarr: \"⥲\",\n slarr: \"←\",\n smallsetminus: \"∖\",\n smashp: \"⨳\",\n smeparsl: \"⧤\",\n smid: \"∣\",\n smile: \"⌣\",\n smt: \"⪪\",\n smte: \"⪬\",\n smtes: \"⪬︀\",\n softcy: \"ь\",\n sol: \"/\",\n solb: \"⧄\",\n solbar: \"⌿\",\n sopf: \"𝕤\",\n spades: \"♠\",\n spadesuit: \"♠\",\n spar: \"∥\",\n sqcap: \"⊓\",\n sqcaps: \"⊓︀\",\n sqcup: \"⊔\",\n sqcups: \"⊔︀\",\n sqsub: \"⊏\",\n sqsube: \"⊑\",\n sqsubset: \"⊏\",\n sqsubseteq: \"⊑\",\n sqsup: \"⊐\",\n sqsupe: \"⊒\",\n sqsupset: \"⊐\",\n sqsupseteq: \"⊒\",\n squ: \"□\",\n square: \"□\",\n squarf: \"▪\",\n squf: \"▪\",\n srarr: \"→\",\n sscr: \"𝓈\",\n ssetmn: \"∖\",\n ssmile: \"⌣\",\n sstarf: \"⋆\",\n star: \"☆\",\n starf: \"★\",\n straightepsilon: \"ϵ\",\n straightphi: \"ϕ\",\n strns: \"¯\",\n sub: \"⊂\",\n subE: \"⫅\",\n subdot: \"⪽\",\n sube: \"⊆\",\n subedot: \"⫃\",\n submult: \"⫁\",\n subnE: \"⫋\",\n subne: \"⊊\",\n subplus: \"⪿\",\n subrarr: \"⥹\",\n subset: \"⊂\",\n subseteq: \"⊆\",\n subseteqq: \"⫅\",\n subsetneq: \"⊊\",\n subsetneqq: \"⫋\",\n subsim: \"⫇\",\n subsub: \"⫕\",\n subsup: \"⫓\",\n succ: \"≻\",\n succapprox: \"⪸\",\n succcurlyeq: \"≽\",\n succeq: \"⪰\",\n succnapprox: \"⪺\",\n succneqq: \"⪶\",\n succnsim: \"⋩\",\n succsim: \"≿\",\n sum: \"∑\",\n sung: \"♪\",\n sup: \"⊃\",\n sup1: \"¹\",\n sup2: \"²\",\n sup3: \"³\",\n supE: \"⫆\",\n supdot: \"⪾\",\n supdsub: \"⫘\",\n supe: \"⊇\",\n supedot: \"⫄\",\n suphsol: \"⟉\",\n suphsub: \"⫗\",\n suplarr: \"⥻\",\n supmult: \"⫂\",\n supnE: \"⫌\",\n supne: \"⊋\",\n supplus: \"⫀\",\n supset: \"⊃\",\n supseteq: \"⊇\",\n supseteqq: \"⫆\",\n supsetneq: \"⊋\",\n supsetneqq: \"⫌\",\n supsim: \"⫈\",\n supsub: \"⫔\",\n supsup: \"⫖\",\n swArr: \"⇙\",\n swarhk: \"⤦\",\n swarr: \"↙\",\n swarrow: \"↙\",\n swnwar: \"⤪\",\n szlig: \"ß\",\n target: \"⌖\",\n tau: \"τ\",\n tbrk: \"⎴\",\n tcaron: \"ť\",\n tcedil: \"ţ\",\n tcy: \"т\",\n tdot: \"⃛\",\n telrec: \"⌕\",\n tfr: \"𝔱\",\n there4: \"∴\",\n therefore: \"∴\",\n theta: \"θ\",\n thetasym: \"ϑ\",\n thetav: \"ϑ\",\n thickapprox: \"≈\",\n thicksim: \"∼\",\n thinsp: \" \",\n thkap: \"≈\",\n thksim: \"∼\",\n thorn: \"þ\",\n tilde: \"˜\",\n times: \"×\",\n timesb: \"⊠\",\n timesbar: \"⨱\",\n timesd: \"⨰\",\n tint: \"∭\",\n toea: \"⤨\",\n top: \"⊤\",\n topbot: \"⌶\",\n topcir: \"⫱\",\n topf: \"𝕥\",\n topfork: \"⫚\",\n tosa: \"⤩\",\n tprime: \"‴\",\n trade: \"™\",\n triangle: \"▵\",\n triangledown: \"▿\",\n triangleleft: \"◃\",\n trianglelefteq: \"⊴\",\n triangleq: \"≜\",\n triangleright: \"▹\",\n trianglerighteq: \"⊵\",\n tridot: \"◬\",\n trie: \"≜\",\n triminus: \"⨺\",\n triplus: \"⨹\",\n trisb: \"⧍\",\n tritime: \"⨻\",\n trpezium: \"⏢\",\n tscr: \"𝓉\",\n tscy: \"ц\",\n tshcy: \"ћ\",\n tstrok: \"ŧ\",\n twixt: \"≬\",\n twoheadleftarrow: \"↞\",\n twoheadrightarrow: \"↠\",\n uArr: \"⇑\",\n uHar: \"⥣\",\n uacute: \"ú\",\n uarr: \"↑\",\n ubrcy: \"ў\",\n ubreve: \"ŭ\",\n ucirc: \"û\",\n ucy: \"у\",\n udarr: \"⇅\",\n udblac: \"ű\",\n udhar: \"⥮\",\n ufisht: \"⥾\",\n ufr: \"𝔲\",\n ugrave: \"ù\",\n uharl: \"↿\",\n uharr: \"↾\",\n uhblk: \"▀\",\n ulcorn: \"⌜\",\n ulcorner: \"⌜\",\n ulcrop: \"⌏\",\n ultri: \"◸\",\n umacr: \"ū\",\n uml: \"¨\",\n uogon: \"ų\",\n uopf: \"𝕦\",\n uparrow: \"↑\",\n updownarrow: \"↕\",\n upharpoonleft: \"↿\",\n upharpoonright: \"↾\",\n uplus: \"⊎\",\n upsi: \"υ\",\n upsih: \"ϒ\",\n upsilon: \"υ\",\n upuparrows: \"⇈\",\n urcorn: \"⌝\",\n urcorner: \"⌝\",\n urcrop: \"⌎\",\n uring: \"ů\",\n urtri: \"◹\",\n uscr: \"𝓊\",\n utdot: \"⋰\",\n utilde: \"ũ\",\n utri: \"▵\",\n utrif: \"▴\",\n uuarr: \"⇈\",\n uuml: \"ü\",\n uwangle: \"⦧\",\n vArr: \"⇕\",\n vBar: \"⫨\",\n vBarv: \"⫩\",\n vDash: \"⊨\",\n vangrt: \"⦜\",\n varepsilon: \"ϵ\",\n varkappa: \"ϰ\",\n varnothing: \"∅\",\n varphi: \"ϕ\",\n varpi: \"ϖ\",\n varpropto: \"∝\",\n varr: \"↕\",\n varrho: \"ϱ\",\n varsigma: \"ς\",\n varsubsetneq: \"⊊︀\",\n varsubsetneqq: \"⫋︀\",\n varsupsetneq: \"⊋︀\",\n varsupsetneqq: \"⫌︀\",\n vartheta: \"ϑ\",\n vartriangleleft: \"⊲\",\n vartriangleright: \"⊳\",\n vcy: \"в\",\n vdash: \"⊢\",\n vee: \"∨\",\n veebar: \"⊻\",\n veeeq: \"≚\",\n vellip: \"⋮\",\n verbar: \"|\",\n vert: \"|\",\n vfr: \"𝔳\",\n vltri: \"⊲\",\n vnsub: \"⊂⃒\",\n vnsup: \"⊃⃒\",\n vopf: \"𝕧\",\n vprop: \"∝\",\n vrtri: \"⊳\",\n vscr: \"𝓋\",\n vsubnE: \"⫋︀\",\n vsubne: \"⊊︀\",\n vsupnE: \"⫌︀\",\n vsupne: \"⊋︀\",\n vzigzag: \"⦚\",\n wcirc: \"ŵ\",\n wedbar: \"⩟\",\n wedge: \"∧\",\n wedgeq: \"≙\",\n weierp: \"℘\",\n wfr: \"𝔴\",\n wopf: \"𝕨\",\n wp: \"℘\",\n wr: \"≀\",\n wreath: \"≀\",\n wscr: \"𝓌\",\n xcap: \"⋂\",\n xcirc: \"◯\",\n xcup: \"⋃\",\n xdtri: \"▽\",\n xfr: \"𝔵\",\n xhArr: \"⟺\",\n xharr: \"⟷\",\n xi: \"ξ\",\n xlArr: \"⟸\",\n xlarr: \"⟵\",\n xmap: \"⟼\",\n xnis: \"⋻\",\n xodot: \"⨀\",\n xopf: \"𝕩\",\n xoplus: \"⨁\",\n xotime: \"⨂\",\n xrArr: \"⟹\",\n xrarr: \"⟶\",\n xscr: \"𝓍\",\n xsqcup: \"⨆\",\n xuplus: \"⨄\",\n xutri: \"△\",\n xvee: \"⋁\",\n xwedge: \"⋀\",\n yacute: \"ý\",\n yacy: \"я\",\n ycirc: \"ŷ\",\n ycy: \"ы\",\n yen: \"¥\",\n yfr: \"𝔶\",\n yicy: \"ї\",\n yopf: \"𝕪\",\n yscr: \"𝓎\",\n yucy: \"ю\",\n yuml: \"ÿ\",\n zacute: \"ź\",\n zcaron: \"ž\",\n zcy: \"з\",\n zdot: \"ż\",\n zeetrf: \"ℨ\",\n zeta: \"ζ\",\n zfr: \"𝔷\",\n zhcy: \"ж\",\n zigrarr: \"⇝\",\n zopf: \"𝕫\",\n zscr: \"𝓏\",\n zwj: \"\",\n zwnj: \"\",\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/character-reference.d.ts
|
|
2
|
+
export declare function decodeNamedCharacterReference(value: string): string | undefined;
|
|
3
|
+
export declare function decodeNumericCharacterReference(value: string, base: 10 | 16): string;
|
|
4
|
+
export declare function encodeNumericCharacterReference(code: number): string;
|
|
5
|
+
//#endregion
|
|
6
|
+
//# sourceMappingURL=character-reference.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-reference.d.mts","names":[],"sources":["../src/character-reference.ts"],"mappings":";wBAEgB,8BAA8B;wBAM9B,gCAAgC,eAAe;wBAqB/C,gCAAgC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NAMED_CHARACTER_REFERENCES } from "./character-entities.mjs";
|
|
2
|
+
//#region src/character-reference.ts
|
|
3
|
+
function decodeNamedCharacterReference(value) {
|
|
4
|
+
return Object.hasOwn(NAMED_CHARACTER_REFERENCES, value) ? NAMED_CHARACTER_REFERENCES[value] : void 0;
|
|
5
|
+
}
|
|
6
|
+
function decodeNumericCharacterReference(value, base) {
|
|
7
|
+
const code = Number.parseInt(value, base);
|
|
8
|
+
const low = code % 65536;
|
|
9
|
+
if (code < 9 || code === 11 || code > 13 && code < 32 || code > 126 && code < 160 || code > 55295 && code < 57344 || code > 64975 && code < 65008 || low === 65535 || low === 65534 || code > 1114111) return "�";
|
|
10
|
+
return String.fromCodePoint(code);
|
|
11
|
+
}
|
|
12
|
+
function encodeNumericCharacterReference(code) {
|
|
13
|
+
return `&#x${code.toString(16).toUpperCase()};`;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { decodeNamedCharacterReference, decodeNumericCharacterReference, encodeNumericCharacterReference };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=character-reference.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"character-reference.mjs","names":[],"sources":["../src/character-reference.ts"],"sourcesContent":["import { NAMED_CHARACTER_REFERENCES } from \"./character-entities.ts\";\n\nexport function decodeNamedCharacterReference(value: string): string | undefined {\n return Object.hasOwn(NAMED_CHARACTER_REFERENCES, value)\n ? NAMED_CHARACTER_REFERENCES[value]\n : undefined;\n}\n\nexport function decodeNumericCharacterReference(value: string, base: 10 | 16): string {\n const code = Number.parseInt(value, base);\n const low = code % 65_536;\n\n if (\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n (code > 126 && code < 160) ||\n (code > 55_295 && code < 57_344) ||\n (code > 64_975 && code < 65_008) ||\n low === 65_535 ||\n low === 65_534 ||\n code > 1_114_111\n ) {\n return \"\\uFFFD\";\n }\n\n return String.fromCodePoint(code);\n}\n\nexport function encodeNumericCharacterReference(code: number): string {\n return `&#x${code.toString(16).toUpperCase()};`;\n}\n"],"mappings":";;AAEA,SAAgB,8BAA8B,OAAmC;CAC/E,OAAO,OAAO,OAAO,4BAA4B,KAAK,IAClD,2BAA2B,SAC3B,KAAA;AACN;AAEA,SAAgB,gCAAgC,OAAe,MAAuB;CACpF,MAAM,OAAO,OAAO,SAAS,OAAO,IAAI;CACxC,MAAM,MAAM,OAAO;CAEnB,IACE,OAAO,KACP,SAAS,MACR,OAAO,MAAM,OAAO,MACpB,OAAO,OAAO,OAAO,OACrB,OAAO,SAAU,OAAO,SACxB,OAAO,SAAU,OAAO,SACzB,QAAQ,SACR,QAAQ,SACR,OAAO,SAEP,OAAO;CAGT,OAAO,OAAO,cAAc,IAAI;AAClC;AAEA,SAAgB,gCAAgC,MAAsB;CACpE,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE;AAC/C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DocumentNode } from "./model.mjs";
|
|
2
|
+
import { HtmlRootNode } from "./html.mjs";
|
|
3
|
+
import { SourceFile } from "./source.mjs";
|
|
4
|
+
import { CompileOutputFormat } from "./compiler.mjs";
|
|
5
|
+
import { JavaScriptJsxContext } from "./javascript-jsx.mjs";
|
|
6
|
+
import { EmittedEsm } from "./compile-esm.mjs";
|
|
7
|
+
//#region src/compile-analysis.d.ts
|
|
8
|
+
/** JavaScript scope shared by analysis and emission. Analysis records references into it. */
|
|
9
|
+
export interface CompileScope extends JavaScriptJsxContext {
|
|
10
|
+
readonly file: SourceFile | undefined;
|
|
11
|
+
readonly inScope: ReadonlySet<string>;
|
|
12
|
+
readonly missingReferences: Map<string, boolean>;
|
|
13
|
+
readonly referencedComponents: Set<string>;
|
|
14
|
+
}
|
|
15
|
+
export interface CompileAnalysis {
|
|
16
|
+
readonly esm: EmittedEsm;
|
|
17
|
+
readonly intrinsicTags: ReadonlySet<string>;
|
|
18
|
+
readonly scope: CompileScope;
|
|
19
|
+
readonly propsName: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function analyzeDocument(document: DocumentNode, content: HtmlRootNode, options: Readonly<{
|
|
22
|
+
development?: boolean;
|
|
23
|
+
sourceName?: string;
|
|
24
|
+
source?: SourceFile;
|
|
25
|
+
outputFormat?: CompileOutputFormat;
|
|
26
|
+
}>): CompileAnalysis;
|
|
27
|
+
//#endregion
|
|
28
|
+
//# sourceMappingURL=compile-analysis.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-analysis.d.mts","names":[],"sources":["../src/compile-analysis.ts"],"mappings":";;;;;;;;iBAsBiB,qBAAqB;WAC3B,MAAM;WACN,SAAS;WACT,mBAAmB;WACnB,sBAAsB;;iBAGhB;WACN,KAAK;WACL,eAAe;WACf,OAAO;WACP;;wBAGK,gBACd,UAAU,cACV,SAAS,cACT,SAAS;EACP;EACA;EACA,SAAS;EACT,eAAe;KAEhB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { hasJavaScriptToken } from "./javascript.mjs";
|
|
2
|
+
import { recordJsxReference, resolveJsxName } from "./jsx-reference.mjs";
|
|
3
|
+
import { analyzeJavaScriptExpression } from "./javascript-jsx.mjs";
|
|
4
|
+
import { collectEsmBindings, emitEsm, parseEsm } from "./compile-esm.mjs";
|
|
5
|
+
import { CompileNames } from "./compile-names.mjs";
|
|
6
|
+
import { htmlChildren, htmlFallback, pendingFallback } from "./html.mjs";
|
|
7
|
+
import { isString } from "@temelj/value";
|
|
8
|
+
//#region src/compile-analysis.ts
|
|
9
|
+
function analyzeDocument(document, content, options) {
|
|
10
|
+
const inScope = /* @__PURE__ */ new Set();
|
|
11
|
+
const authoredEsm = [];
|
|
12
|
+
const names = new CompileNames();
|
|
13
|
+
for (const child of document.children) if (child.kind === "esm") {
|
|
14
|
+
const parsed = parseEsm(child.code, child.origin);
|
|
15
|
+
collectEsmBindings(parsed.program, inScope);
|
|
16
|
+
names.reserveJavaScript(parsed.program);
|
|
17
|
+
authoredEsm.push(parsed);
|
|
18
|
+
}
|
|
19
|
+
const scope = {
|
|
20
|
+
development: options.development ?? false,
|
|
21
|
+
file: options.source,
|
|
22
|
+
inScope,
|
|
23
|
+
names,
|
|
24
|
+
missingReferences: /* @__PURE__ */ new Map(),
|
|
25
|
+
referencedComponents: /* @__PURE__ */ new Set(),
|
|
26
|
+
sourceName: options.sourceName ?? options.source?.name ?? "source.mdx"
|
|
27
|
+
};
|
|
28
|
+
const intrinsicTags = /* @__PURE__ */ new Set();
|
|
29
|
+
analyzeContent(content, scope, intrinsicTags);
|
|
30
|
+
return {
|
|
31
|
+
esm: emitEsm(authoredEsm, options.outputFormat ?? "functionBody", {
|
|
32
|
+
...scope,
|
|
33
|
+
missingReferences: /* @__PURE__ */ new Map(),
|
|
34
|
+
referencedComponents: /* @__PURE__ */ new Set()
|
|
35
|
+
}, scope.file),
|
|
36
|
+
intrinsicTags,
|
|
37
|
+
scope,
|
|
38
|
+
propsName: inScope.has("props") ? names.get("_props") : "props"
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function analyzeContent(node, scope, intrinsicTags) {
|
|
42
|
+
switch (node.kind) {
|
|
43
|
+
case "element":
|
|
44
|
+
intrinsicTags.add(node.tagName);
|
|
45
|
+
break;
|
|
46
|
+
case "expression":
|
|
47
|
+
if (hasJavaScriptToken(node.code)) analyzeJavaScriptExpression(node.code, scope);
|
|
48
|
+
break;
|
|
49
|
+
case "jsx":
|
|
50
|
+
if (node.name !== void 0) {
|
|
51
|
+
const resolved = resolveJsxName(node.name);
|
|
52
|
+
if (resolved.base !== void 0) scope.names.reserve(resolved.base);
|
|
53
|
+
recordJsxReference(resolved, scope);
|
|
54
|
+
}
|
|
55
|
+
for (const attribute of node.attributes) if (attribute.kind === "jsxSpreadAttribute") analyzeJavaScriptExpression(attribute.code, scope);
|
|
56
|
+
else if (attribute.value !== void 0 && !isString(attribute.value)) analyzeJavaScriptExpression(attribute.value.code, scope);
|
|
57
|
+
break;
|
|
58
|
+
case "codeBlock":
|
|
59
|
+
case "math":
|
|
60
|
+
case "footnoteReference":
|
|
61
|
+
case "footnoteSection":
|
|
62
|
+
analyzeContent(htmlFallback(node), scope, intrinsicTags);
|
|
63
|
+
return;
|
|
64
|
+
case "pending":
|
|
65
|
+
case "unresolvedReference":
|
|
66
|
+
for (const child of pendingFallback(node)) analyzeContent(child, scope, intrinsicTags);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
for (const child of htmlChildren(node)) analyzeContent(child, scope, intrinsicTags);
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
export { analyzeDocument };
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=compile-analysis.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-analysis.mjs","names":[],"sources":["../src/compile-analysis.ts"],"sourcesContent":["import { isString } from \"@temelj/value\";\n\nimport type { CompileOutputFormat } from \"./compiler.ts\";\nimport type { HtmlNode, HtmlRootNode } from \"./html.ts\";\nimport type { JavaScriptJsxContext } from \"./javascript-jsx.ts\";\nimport type { DocumentNode } from \"./model.ts\";\nimport type { SourceFile } from \"./source.ts\";\n\nimport {\n collectEsmBindings,\n emitEsm,\n parseEsm,\n type EmittedEsm,\n type ParsedEsm,\n} from \"./compile-esm.ts\";\nimport { CompileNames } from \"./compile-names.ts\";\nimport { htmlChildren, htmlFallback, pendingFallback } from \"./html.ts\";\nimport { analyzeJavaScriptExpression } from \"./javascript-jsx.ts\";\nimport { hasJavaScriptToken } from \"./javascript.ts\";\nimport { recordJsxReference, resolveJsxName } from \"./jsx-reference.ts\";\n\n/** JavaScript scope shared by analysis and emission. Analysis records references into it. */\nexport interface CompileScope extends JavaScriptJsxContext {\n readonly file: SourceFile | undefined;\n readonly inScope: ReadonlySet<string>;\n readonly missingReferences: Map<string, boolean>;\n readonly referencedComponents: Set<string>;\n}\n\nexport interface CompileAnalysis {\n readonly esm: EmittedEsm;\n readonly intrinsicTags: ReadonlySet<string>;\n readonly scope: CompileScope;\n readonly propsName: string;\n}\n\nexport function analyzeDocument(\n document: DocumentNode,\n content: HtmlRootNode,\n options: Readonly<{\n development?: boolean;\n sourceName?: string;\n source?: SourceFile;\n outputFormat?: CompileOutputFormat;\n }>,\n): CompileAnalysis {\n const inScope = new Set<string>();\n const authoredEsm: ParsedEsm[] = [];\n const names = new CompileNames();\n\n for (const child of document.children) {\n if (child.kind === \"esm\") {\n const parsed = parseEsm(child.code, child.origin);\n collectEsmBindings(parsed.program, inScope);\n names.reserveJavaScript(parsed.program);\n authoredEsm.push(parsed);\n }\n }\n\n const scope: CompileScope = {\n development: options.development ?? false,\n file: options.source,\n inScope,\n names,\n missingReferences: new Map(),\n referencedComponents: new Set(),\n sourceName: options.sourceName ?? options.source?.name ?? \"source.mdx\",\n };\n\n const intrinsicTags = new Set<string>();\n analyzeContent(content, scope, intrinsicTags);\n\n // Name reservation finishes before emission. ESM JSX never requires content components.\n const esm = emitEsm(\n authoredEsm,\n options.outputFormat ?? \"functionBody\",\n { ...scope, missingReferences: new Map(), referencedComponents: new Set() },\n scope.file,\n );\n\n return {\n esm,\n intrinsicTags,\n scope,\n propsName: inScope.has(\"props\") ? names.get(\"_props\") : \"props\",\n };\n}\n\nfunction analyzeContent(node: HtmlNode, scope: CompileScope, intrinsicTags: Set<string>): void {\n switch (node.kind) {\n case \"element\":\n intrinsicTags.add(node.tagName);\n break;\n case \"expression\":\n if (hasJavaScriptToken(node.code)) {\n analyzeJavaScriptExpression(node.code, scope);\n }\n\n break;\n case \"jsx\": {\n if (node.name !== undefined) {\n const resolved = resolveJsxName(node.name);\n\n if (resolved.base !== undefined) {\n scope.names.reserve(resolved.base);\n }\n\n recordJsxReference(resolved, scope);\n }\n\n for (const attribute of node.attributes) {\n if (attribute.kind === \"jsxSpreadAttribute\") {\n analyzeJavaScriptExpression(attribute.code, scope);\n } else if (attribute.value !== undefined && !isString(attribute.value)) {\n analyzeJavaScriptExpression(attribute.value.code, scope);\n }\n }\n\n break;\n }\n\n case \"codeBlock\":\n case \"math\":\n case \"footnoteReference\":\n case \"footnoteSection\":\n // Compiled output renders the same fallback elements as HTML.\n analyzeContent(htmlFallback(node), scope, intrinsicTags);\n\n return;\n case \"pending\":\n case \"unresolvedReference\":\n for (const child of pendingFallback(node)) {\n analyzeContent(child, scope, intrinsicTags);\n }\n\n return;\n default:\n break;\n }\n\n for (const child of htmlChildren(node)) {\n analyzeContent(child, scope, intrinsicTags);\n }\n}\n"],"mappings":";;;;;;;;AAoCA,SAAgB,gBACd,UACA,SACA,SAMiB;CACjB,MAAM,0BAAU,IAAI,IAAY;CAChC,MAAM,cAA2B,CAAC;CAClC,MAAM,QAAQ,IAAI,aAAa;CAE/B,KAAK,MAAM,SAAS,SAAS,UAC3B,IAAI,MAAM,SAAS,OAAO;EACxB,MAAM,SAAS,SAAS,MAAM,MAAM,MAAM,MAAM;EAChD,mBAAmB,OAAO,SAAS,OAAO;EAC1C,MAAM,kBAAkB,OAAO,OAAO;EACtC,YAAY,KAAK,MAAM;CACzB;CAGF,MAAM,QAAsB;EAC1B,aAAa,QAAQ,eAAe;EACpC,MAAM,QAAQ;EACd;EACA;EACA,mCAAmB,IAAI,IAAI;EAC3B,sCAAsB,IAAI,IAAI;EAC9B,YAAY,QAAQ,cAAc,QAAQ,QAAQ,QAAQ;CAC5D;CAEA,MAAM,gCAAgB,IAAI,IAAY;CACtC,eAAe,SAAS,OAAO,aAAa;CAU5C,OAAO;EACL,KARU,QACV,aACA,QAAQ,gBAAgB,gBACxB;GAAE,GAAG;GAAO,mCAAmB,IAAI,IAAI;GAAG,sCAAsB,IAAI,IAAI;EAAE,GAC1E,MAAM,IAIJ;EACF;EACA;EACA,WAAW,QAAQ,IAAI,OAAO,IAAI,MAAM,IAAI,QAAQ,IAAI;CAC1D;AACF;AAEA,SAAS,eAAe,MAAgB,OAAqB,eAAkC;CAC7F,QAAQ,KAAK,MAAb;EACE,KAAK;GACH,cAAc,IAAI,KAAK,OAAO;GAC9B;EACF,KAAK;GACH,IAAI,mBAAmB,KAAK,IAAI,GAC9B,4BAA4B,KAAK,MAAM,KAAK;GAG9C;EACF,KAAK;GACH,IAAI,KAAK,SAAS,KAAA,GAAW;IAC3B,MAAM,WAAW,eAAe,KAAK,IAAI;IAEzC,IAAI,SAAS,SAAS,KAAA,GACpB,MAAM,MAAM,QAAQ,SAAS,IAAI;IAGnC,mBAAmB,UAAU,KAAK;GACpC;GAEA,KAAK,MAAM,aAAa,KAAK,YAC3B,IAAI,UAAU,SAAS,sBACrB,4BAA4B,UAAU,MAAM,KAAK;QAC5C,IAAI,UAAU,UAAU,KAAA,KAAa,CAAC,SAAS,UAAU,KAAK,GACnE,4BAA4B,UAAU,MAAM,MAAM,KAAK;GAI3D;EAGF,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;GAEH,eAAe,aAAa,IAAI,GAAG,OAAO,aAAa;GAEvD;EACF,KAAK;EACL,KAAK;GACH,KAAK,MAAM,SAAS,gBAAgB,IAAI,GACtC,eAAe,OAAO,OAAO,aAAa;GAG5C;CAGJ;CAEA,KAAK,MAAM,SAAS,aAAa,IAAI,GACnC,eAAe,OAAO,OAAO,aAAa;AAE9C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HtmlNode, HtmlRootNode } from "./html.mjs";
|
|
2
|
+
import { CodeWriter } from "./source-map.mjs";
|
|
3
|
+
import { CompileAnalysis } from "./compile-analysis.mjs";
|
|
4
|
+
//#region src/compile-emit.d.ts
|
|
5
|
+
/** Emits the content expression for a lowered document. */
|
|
6
|
+
export declare function emitContent(writer: CodeWriter, content: HtmlRootNode, analysis: CompileAnalysis): void;
|
|
7
|
+
export declare function contentUsesAwait(node: HtmlNode): boolean;
|
|
8
|
+
//#endregion
|
|
9
|
+
//# sourceMappingURL=compile-emit.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-emit.d.mts","names":[],"sources":["../src/compile-emit.ts"],"mappings":";;;;;wBA0CgB,YACd,QAAQ,YACR,SAAS,cACT,UAAU;wBAkBI,iBAAiB,MAAM"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { javascriptPropertyName } from "./javascript-ast.mjs";
|
|
2
|
+
import { hasJavaScriptToken } from "./javascript.mjs";
|
|
3
|
+
import { resolveJsxName } from "./jsx-reference.mjs";
|
|
4
|
+
import { javascriptExpressionUsesAwait, transformJavaScriptExpression } from "./javascript-jsx.mjs";
|
|
5
|
+
import { htmlFallback, isHtmlAttributeList, pendingFallback } from "./html.mjs";
|
|
6
|
+
import { isString } from "@temelj/value";
|
|
7
|
+
//#region src/compile-emit.ts
|
|
8
|
+
/** Containers whose whitespace-only text children are not valid DOM. */
|
|
9
|
+
const tableContainers = /* @__PURE__ */ new Set([
|
|
10
|
+
"colgroup",
|
|
11
|
+
"table",
|
|
12
|
+
"tbody",
|
|
13
|
+
"tfoot",
|
|
14
|
+
"thead",
|
|
15
|
+
"tr"
|
|
16
|
+
]);
|
|
17
|
+
const reactPropertyNames = /* @__PURE__ */ new Map([
|
|
18
|
+
["class", "className"],
|
|
19
|
+
["for", "htmlFor"],
|
|
20
|
+
["tabindex", "tabIndex"]
|
|
21
|
+
]);
|
|
22
|
+
/** Emits the content expression for a lowered document. */
|
|
23
|
+
function emitContent(writer, content, analysis) {
|
|
24
|
+
const children = emittedChildren(content.children, false);
|
|
25
|
+
if (children.length === 1) emitNode(writer, children[0], analysis.scope);
|
|
26
|
+
else emitCall(writer, analysis.scope.names.get("_Fragment"), [], content.origin, analysis.scope, children);
|
|
27
|
+
}
|
|
28
|
+
function contentUsesAwait(node) {
|
|
29
|
+
if (node.kind === "expression") return hasJavaScriptToken(node.code) && javascriptExpressionUsesAwait(node.code);
|
|
30
|
+
if (node.kind === "jsx" && node.attributes.some(attributeUsesAwait)) return true;
|
|
31
|
+
return "children" in node && node.children.some(contentUsesAwait);
|
|
32
|
+
}
|
|
33
|
+
function attributeUsesAwait(attribute) {
|
|
34
|
+
const code = attribute.kind === "jsxSpreadAttribute" ? attribute.code : attribute.value === void 0 || isString(attribute.value) ? void 0 : attribute.value.code;
|
|
35
|
+
return code !== void 0 && javascriptExpressionUsesAwait(code);
|
|
36
|
+
}
|
|
37
|
+
function emitNode(writer, node, scope) {
|
|
38
|
+
switch (node.kind) {
|
|
39
|
+
case "text":
|
|
40
|
+
case "raw":
|
|
41
|
+
writer.write(JSON.stringify(node.value), node.origin);
|
|
42
|
+
return;
|
|
43
|
+
case "expression":
|
|
44
|
+
writer.write(`(${transformJavaScriptExpression(node.code, scope, javascriptOrigin(node.origin, scope, 1))})`, node.origin);
|
|
45
|
+
return;
|
|
46
|
+
case "jsx":
|
|
47
|
+
emitJsx(writer, node, scope);
|
|
48
|
+
return;
|
|
49
|
+
case "element":
|
|
50
|
+
emitElement(writer, node, scope);
|
|
51
|
+
return;
|
|
52
|
+
case "root":
|
|
53
|
+
emitCall(writer, scope.names.get("_Fragment"), [], node.origin, scope, emittedChildren(node.children, false));
|
|
54
|
+
return;
|
|
55
|
+
case "codeBlock":
|
|
56
|
+
emitCodeBlock(writer, node, scope);
|
|
57
|
+
return;
|
|
58
|
+
case "math":
|
|
59
|
+
emitMath(writer, node, scope);
|
|
60
|
+
return;
|
|
61
|
+
case "footnoteReference":
|
|
62
|
+
case "footnoteSection":
|
|
63
|
+
emitElement(writer, {
|
|
64
|
+
...htmlFallback(node),
|
|
65
|
+
origin: node.origin
|
|
66
|
+
}, scope);
|
|
67
|
+
return;
|
|
68
|
+
case "comment":
|
|
69
|
+
case "doctype":
|
|
70
|
+
writer.write("null");
|
|
71
|
+
return;
|
|
72
|
+
case "pending":
|
|
73
|
+
case "unresolvedReference":
|
|
74
|
+
emitCall(writer, scope.names.get("_Fragment"), [], node.origin, scope, emittedChildren(pendingFallback(node), false));
|
|
75
|
+
return;
|
|
76
|
+
default: return node;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function emitElement(writer, node, scope) {
|
|
80
|
+
emitCall(writer, `${scope.names.get("_components")}[${JSON.stringify(node.tagName)}]`, elementProperties(node.attributes), node.origin, scope, emittedChildren(node.children, tableContainers.has(node.tagName)));
|
|
81
|
+
}
|
|
82
|
+
function emitJsx(writer, node, scope) {
|
|
83
|
+
emitCall(writer, node.name === void 0 ? scope.names.get("_Fragment") : resolveJsxName(node.name).expression, jsxProperties(node.attributes, scope), node.origin, scope, emittedChildren(node.children, false));
|
|
84
|
+
}
|
|
85
|
+
function emitCodeBlock(writer, node, scope) {
|
|
86
|
+
const descriptor = JSON.stringify({
|
|
87
|
+
kind: "codeBlock",
|
|
88
|
+
code: node.code,
|
|
89
|
+
language: node.language,
|
|
90
|
+
meta: node.meta,
|
|
91
|
+
origin: node.origin
|
|
92
|
+
});
|
|
93
|
+
const component = `${scope.names.get("_components")}.codeBlock`;
|
|
94
|
+
writer.write(`(${component} ? `);
|
|
95
|
+
emitCall(writer, component, [
|
|
96
|
+
["code", JSON.stringify(node.code)],
|
|
97
|
+
["language", JSON.stringify(node.language)],
|
|
98
|
+
...node.meta === void 0 ? [] : [["meta", JSON.stringify(node.meta)]],
|
|
99
|
+
["node", descriptor],
|
|
100
|
+
["status", JSON.stringify("complete")]
|
|
101
|
+
], node.origin, scope, []);
|
|
102
|
+
writer.write(" : ");
|
|
103
|
+
emitElement(writer, {
|
|
104
|
+
...htmlFallback(node),
|
|
105
|
+
origin: node.origin
|
|
106
|
+
}, scope);
|
|
107
|
+
writer.write(")");
|
|
108
|
+
}
|
|
109
|
+
function emitMath(writer, node, scope) {
|
|
110
|
+
const component = `${scope.names.get("_components")}.mathFormula`;
|
|
111
|
+
writer.write(`(${component} ? `);
|
|
112
|
+
emitCall(writer, component, [
|
|
113
|
+
["source", JSON.stringify(node.source)],
|
|
114
|
+
["style", JSON.stringify(node.style)],
|
|
115
|
+
...node.meta === void 0 ? [] : [["meta", JSON.stringify(node.meta)]]
|
|
116
|
+
], node.origin, scope, []);
|
|
117
|
+
writer.write(" : ");
|
|
118
|
+
emitElement(writer, {
|
|
119
|
+
...htmlFallback(node),
|
|
120
|
+
origin: node.origin
|
|
121
|
+
}, scope);
|
|
122
|
+
writer.write(")");
|
|
123
|
+
}
|
|
124
|
+
function emitCall(writer, tag, properties, origin, scope, children) {
|
|
125
|
+
const multiple = children.length > 1;
|
|
126
|
+
writer.write(`${scope.names.get(scope.development ? "_jsxDEV" : multiple ? "_jsxs" : "_jsx")}(`, origin);
|
|
127
|
+
writer.write(`${tag}, {`);
|
|
128
|
+
properties.forEach(([name, value], index) => {
|
|
129
|
+
writer.write(index > 0 ? ", " : "");
|
|
130
|
+
writer.write(name === "..." ? `...${value}` : `${javascriptPropertyName(name)}:${value}`);
|
|
131
|
+
});
|
|
132
|
+
if (children.length > 0) {
|
|
133
|
+
writer.write(properties.length > 0 ? ", children:" : "children:");
|
|
134
|
+
if (multiple) writer.write("[");
|
|
135
|
+
children.forEach((child, index) => {
|
|
136
|
+
writer.write(index > 0 ? ", " : "");
|
|
137
|
+
emitNode(writer, child, scope);
|
|
138
|
+
});
|
|
139
|
+
if (multiple) writer.write("]");
|
|
140
|
+
}
|
|
141
|
+
writer.write("}");
|
|
142
|
+
if (scope.development) writer.write(`, undefined, ${multiple}, ${developmentSource(origin, scope)}, undefined`);
|
|
143
|
+
writer.write(")");
|
|
144
|
+
}
|
|
145
|
+
/** Drops nodes that render nothing, and whitespace where the DOM forbids text. */
|
|
146
|
+
function emittedChildren(children, dropWhitespace) {
|
|
147
|
+
return children.filter((child) => {
|
|
148
|
+
switch (child.kind) {
|
|
149
|
+
case "comment":
|
|
150
|
+
case "doctype": return false;
|
|
151
|
+
case "expression": return hasJavaScriptToken(child.code);
|
|
152
|
+
case "text": return !dropWhitespace || child.value.trim() !== "";
|
|
153
|
+
default: return true;
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
function elementProperties(attributes) {
|
|
158
|
+
return Object.entries(attributes).flatMap(([name, value]) => value === false ? [] : [[reactPropertyName(name), attributeValue(value)]]);
|
|
159
|
+
}
|
|
160
|
+
function reactPropertyName(name) {
|
|
161
|
+
return name.startsWith("data-") || name.startsWith("aria-") ? name : reactPropertyNames.get(name) ?? name;
|
|
162
|
+
}
|
|
163
|
+
function attributeValue(value) {
|
|
164
|
+
return JSON.stringify(isHtmlAttributeList(value) ? value.join(" ") : value);
|
|
165
|
+
}
|
|
166
|
+
function jsxProperties(attributes, scope) {
|
|
167
|
+
return attributes.map((attribute) => {
|
|
168
|
+
if (attribute.kind === "jsxSpreadAttribute") return ["...", `(${transformJavaScriptExpression(attribute.code, scope, javascriptOrigin(attribute.origin, scope, 4))})`];
|
|
169
|
+
const value = attribute.value;
|
|
170
|
+
return [attribute.name, value === void 0 ? "true" : isString(value) ? JSON.stringify(value) : `(${transformJavaScriptExpression(value.code, scope, javascriptOrigin(value.origin, scope, 1))})`];
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
function javascriptOrigin(origin, scope, relativeOffset) {
|
|
174
|
+
return origin === void 0 || scope.file === void 0 ? void 0 : {
|
|
175
|
+
file: scope.file,
|
|
176
|
+
offset: origin.start + relativeOffset
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
function developmentSource(origin, scope) {
|
|
180
|
+
if (origin === void 0 || scope.file === void 0) return "undefined";
|
|
181
|
+
const location = scope.file.location(origin.start);
|
|
182
|
+
return `{fileName:${JSON.stringify(scope.sourceName)},lineNumber:${location.line},columnNumber:${location.column}}`;
|
|
183
|
+
}
|
|
184
|
+
//#endregion
|
|
185
|
+
export { contentUsesAwait, emitContent };
|
|
186
|
+
|
|
187
|
+
//# sourceMappingURL=compile-emit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-emit.mjs","names":["exhaustive"],"sources":["../src/compile-emit.ts"],"sourcesContent":["import { isString } from \"@temelj/value\";\n\nimport type { CompileAnalysis, CompileScope } from \"./compile-analysis.ts\";\nimport type {\n HtmlAttributes,\n HtmlAttributeValue,\n HtmlCodeBlockNode,\n HtmlElementNode,\n HtmlJsxNode,\n HtmlMathNode,\n HtmlNode,\n HtmlRootNode,\n} from \"./html.ts\";\nimport type { JsxAttributeLike } from \"./model.ts\";\nimport type { SourceRange } from \"./ranges.ts\";\nimport type { CodeWriter } from \"./source-map.ts\";\n\nimport { htmlFallback, isHtmlAttributeList, pendingFallback } from \"./html.ts\";\nimport { javascriptPropertyName } from \"./javascript-ast.ts\";\nimport { javascriptExpressionUsesAwait, transformJavaScriptExpression } from \"./javascript-jsx.ts\";\nimport { hasJavaScriptToken } from \"./javascript.ts\";\nimport { resolveJsxName } from \"./jsx-reference.ts\";\n\ntype Property = readonly [name: string, value: string];\n\n/** Containers whose whitespace-only text children are not valid DOM. */\nconst tableContainers: ReadonlySet<string> = new Set([\n \"colgroup\",\n \"table\",\n \"tbody\",\n \"tfoot\",\n \"thead\",\n \"tr\",\n]);\n\nconst reactPropertyNames: ReadonlyMap<string, string> = new Map([\n [\"class\", \"className\"],\n [\"for\", \"htmlFor\"],\n [\"tabindex\", \"tabIndex\"],\n]);\n\n/** Emits the content expression for a lowered document. */\nexport function emitContent(\n writer: CodeWriter,\n content: HtmlRootNode,\n analysis: CompileAnalysis,\n): void {\n const children = emittedChildren(content.children, false);\n\n if (children.length === 1) {\n emitNode(writer, children[0], analysis.scope);\n } else {\n emitCall(\n writer,\n analysis.scope.names.get(\"_Fragment\"),\n [],\n content.origin,\n analysis.scope,\n children,\n );\n }\n}\n\nexport function contentUsesAwait(node: HtmlNode): boolean {\n if (node.kind === \"expression\") {\n return hasJavaScriptToken(node.code) && javascriptExpressionUsesAwait(node.code);\n }\n\n if (node.kind === \"jsx\" && node.attributes.some(attributeUsesAwait)) {\n return true;\n }\n\n return \"children\" in node && node.children.some(contentUsesAwait);\n}\n\nfunction attributeUsesAwait(attribute: JsxAttributeLike): boolean {\n const code =\n attribute.kind === \"jsxSpreadAttribute\"\n ? attribute.code\n : attribute.value === undefined || isString(attribute.value)\n ? undefined\n : attribute.value.code;\n\n return code !== undefined && javascriptExpressionUsesAwait(code);\n}\n\nfunction emitNode(writer: CodeWriter, node: HtmlNode, scope: CompileScope): void {\n switch (node.kind) {\n case \"text\":\n case \"raw\":\n writer.write(JSON.stringify(node.value), node.origin);\n\n return;\n case \"expression\":\n writer.write(\n `(${transformJavaScriptExpression(node.code, scope, javascriptOrigin(node.origin, scope, 1))})`,\n node.origin,\n );\n\n return;\n case \"jsx\":\n emitJsx(writer, node, scope);\n\n return;\n case \"element\":\n emitElement(writer, node, scope);\n\n return;\n case \"root\":\n emitCall(\n writer,\n scope.names.get(\"_Fragment\"),\n [],\n node.origin,\n scope,\n emittedChildren(node.children, false),\n );\n\n return;\n case \"codeBlock\":\n emitCodeBlock(writer, node, scope);\n\n return;\n case \"math\":\n emitMath(writer, node, scope);\n\n return;\n case \"footnoteReference\":\n case \"footnoteSection\":\n emitElement(writer, { ...htmlFallback(node), origin: node.origin }, scope);\n\n return;\n case \"comment\":\n case \"doctype\":\n writer.write(\"null\");\n\n return;\n case \"pending\":\n case \"unresolvedReference\":\n emitCall(\n writer,\n scope.names.get(\"_Fragment\"),\n [],\n node.origin,\n scope,\n emittedChildren(pendingFallback(node), false),\n );\n\n return;\n default: {\n const exhaustive: never = node;\n\n return exhaustive;\n }\n }\n}\n\nfunction emitElement(writer: CodeWriter, node: HtmlElementNode, scope: CompileScope): void {\n emitCall(\n writer,\n `${scope.names.get(\"_components\")}[${JSON.stringify(node.tagName)}]`,\n elementProperties(node.attributes),\n node.origin,\n scope,\n emittedChildren(node.children, tableContainers.has(node.tagName)),\n );\n}\n\nfunction emitJsx(writer: CodeWriter, node: HtmlJsxNode, scope: CompileScope): void {\n emitCall(\n writer,\n node.name === undefined ? scope.names.get(\"_Fragment\") : resolveJsxName(node.name).expression,\n jsxProperties(node.attributes, scope),\n node.origin,\n scope,\n emittedChildren(node.children, false),\n );\n}\n\nfunction emitCodeBlock(writer: CodeWriter, node: HtmlCodeBlockNode, scope: CompileScope): void {\n const descriptor = JSON.stringify({\n kind: \"codeBlock\",\n code: node.code,\n language: node.language,\n meta: node.meta,\n origin: node.origin,\n });\n\n const component = `${scope.names.get(\"_components\")}.codeBlock`;\n writer.write(`(${component} ? `);\n emitCall(\n writer,\n component,\n [\n [\"code\", JSON.stringify(node.code)],\n [\"language\", JSON.stringify(node.language)],\n ...(node.meta === undefined ? [] : [[\"meta\", JSON.stringify(node.meta)] as const]),\n [\"node\", descriptor],\n [\"status\", JSON.stringify(\"complete\")],\n ],\n node.origin,\n scope,\n [],\n );\n writer.write(\" : \");\n emitElement(writer, { ...htmlFallback(node), origin: node.origin }, scope);\n writer.write(\")\");\n}\n\nfunction emitMath(writer: CodeWriter, node: HtmlMathNode, scope: CompileScope): void {\n const component = `${scope.names.get(\"_components\")}.mathFormula`;\n writer.write(`(${component} ? `);\n emitCall(\n writer,\n component,\n [\n [\"source\", JSON.stringify(node.source)],\n [\"style\", JSON.stringify(node.style)],\n ...(node.meta === undefined ? [] : [[\"meta\", JSON.stringify(node.meta)] as const]),\n ],\n node.origin,\n scope,\n [],\n );\n writer.write(\" : \");\n emitElement(writer, { ...htmlFallback(node), origin: node.origin }, scope);\n writer.write(\")\");\n}\n\nfunction emitCall(\n writer: CodeWriter,\n tag: string,\n properties: readonly Property[],\n origin: SourceRange | undefined,\n scope: CompileScope,\n children: readonly HtmlNode[],\n): void {\n const multiple = children.length > 1;\n\n writer.write(\n `${scope.names.get(scope.development ? \"_jsxDEV\" : multiple ? \"_jsxs\" : \"_jsx\")}(`,\n origin,\n );\n writer.write(`${tag}, {`);\n\n properties.forEach(([name, value], index) => {\n writer.write(index > 0 ? \", \" : \"\");\n writer.write(name === \"...\" ? `...${value}` : `${javascriptPropertyName(name)}:${value}`);\n });\n\n if (children.length > 0) {\n writer.write(properties.length > 0 ? \", children:\" : \"children:\");\n\n if (multiple) {\n writer.write(\"[\");\n }\n\n children.forEach((child, index) => {\n writer.write(index > 0 ? \", \" : \"\");\n emitNode(writer, child, scope);\n });\n\n if (multiple) {\n writer.write(\"]\");\n }\n }\n\n writer.write(\"}\");\n\n if (scope.development) {\n writer.write(`, undefined, ${multiple}, ${developmentSource(origin, scope)}, undefined`);\n }\n\n writer.write(\")\");\n}\n\n/** Drops nodes that render nothing, and whitespace where the DOM forbids text. */\nfunction emittedChildren(children: readonly HtmlNode[], dropWhitespace: boolean): HtmlNode[] {\n return children.filter((child) => {\n switch (child.kind) {\n case \"comment\":\n case \"doctype\":\n return false;\n case \"expression\":\n return hasJavaScriptToken(child.code);\n case \"text\":\n return !dropWhitespace || child.value.trim() !== \"\";\n default:\n return true;\n }\n });\n}\n\nfunction elementProperties(attributes: HtmlAttributes): Property[] {\n return Object.entries(attributes).flatMap(([name, value]): Property[] =>\n value === false ? [] : [[reactPropertyName(name), attributeValue(value)]],\n );\n}\n\nfunction reactPropertyName(name: string): string {\n return name.startsWith(\"data-\") || name.startsWith(\"aria-\")\n ? name\n : (reactPropertyNames.get(name) ?? name);\n}\n\nfunction attributeValue(value: HtmlAttributeValue): string {\n return JSON.stringify(isHtmlAttributeList(value) ? value.join(\" \") : value);\n}\n\nfunction jsxProperties(attributes: readonly JsxAttributeLike[], scope: CompileScope): Property[] {\n return attributes.map((attribute): Property => {\n if (attribute.kind === \"jsxSpreadAttribute\") {\n return [\n \"...\",\n `(${transformJavaScriptExpression(\n attribute.code,\n scope,\n javascriptOrigin(attribute.origin, scope, \"{...\".length),\n )})`,\n ];\n }\n\n const value = attribute.value;\n\n return [\n attribute.name,\n value === undefined\n ? \"true\"\n : isString(value)\n ? JSON.stringify(value)\n : `(${transformJavaScriptExpression(\n value.code,\n scope,\n javascriptOrigin(value.origin, scope, \"{\".length),\n )})`,\n ];\n });\n}\n\nfunction javascriptOrigin(\n origin: SourceRange | undefined,\n scope: CompileScope,\n relativeOffset: number,\n): { readonly file: NonNullable<CompileScope[\"file\"]>; readonly offset: number } | undefined {\n return origin === undefined || scope.file === undefined\n ? undefined\n : { file: scope.file, offset: origin.start + relativeOffset };\n}\n\nfunction developmentSource(origin: SourceRange | undefined, scope: CompileScope): string {\n if (origin === undefined || scope.file === undefined) {\n return \"undefined\";\n }\n\n const location = scope.file.location(origin.start);\n\n return `{fileName:${JSON.stringify(scope.sourceName)},lineNumber:${location.line},columnNumber:${location.column}}`;\n}\n"],"mappings":"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"}
|