@temelj/mdx 0.13.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 -8
- package/dist/mod.mjs +19 -7
- 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 -5
- package/dist/plugins/mod.mjs +8 -5
- 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 -27
- 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/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
package/dist/compiler.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.mjs","names":["compileMdxJs"],"sources":["../src/compiler.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { Pluggable, PluggableList, Plugin } from \"unified\";\n\nimport { compile as compileMdxJs, type CompileOptions as MdxJsCompileOptions } from \"@mdx-js/mdx\";\nimport { validateStandardSchema } from \"@temelj/standard-schema\";\nimport remarkFrontmatterPlugin from \"remark-frontmatter\";\nimport remarkGfmPlugin from \"remark-gfm\";\nimport { VFile } from \"vfile\";\nimport { matter } from \"vfile-matter\";\n\nimport type { HastNode } from \"./types\";\n\nexport { remarkFrontmatterPlugin, remarkGfmPlugin };\n\n/**\n * Represents the source content for an MDX document.\n */\nexport type MdxSource = string | Uint8Array;\n\n/**\n * Options for compiling an MDX document.\n */\nexport interface MdxCompileOptions {\n frontmatterOnly?: boolean | undefined;\n mdxOptions?: MdxJsCompileOptions;\n}\n\nexport interface MdxMessagePoint {\n line?: number | undefined;\n column?: number | undefined;\n offset?: number | undefined;\n}\n\nexport interface MdxMessagePlace {\n start?: MdxMessagePoint | undefined;\n end?: MdxMessagePoint | undefined;\n}\n\nexport interface MdxMessage {\n message: string;\n reason: string;\n source?: string | undefined;\n ruleId?: string | undefined;\n fatal?: boolean | undefined;\n line?: number | undefined;\n column?: number | undefined;\n place?: MdxMessagePlace | undefined;\n sourceLine?: string | undefined;\n snippet?: string | undefined;\n sourcePointer?: string | undefined;\n hint?: string | undefined;\n cause?: {\n name?: string | undefined;\n message: string;\n };\n}\n\ntype VFileLikeMessage = VFile[\"messages\"][number];\n\ninterface MdxDiagnosticSourceContext {\n originalSourceText: string;\n lineOffset: number;\n}\n\n/**\n * The result of compiling an MDX document.\n * Compiled content is optional, because sometimes we only need the frontmatter.\n */\nexport interface MdxArtifact<TFrontmatter = Record<string, unknown>> {\n compiled?: string | undefined;\n frontmatter: TFrontmatter;\n messages: MdxMessage[];\n}\n\nexport class MdxCompileError extends Error {\n public readonly reason: string;\n public readonly source?: string | undefined;\n public readonly ruleId?: string | undefined;\n public readonly line?: number | undefined;\n public readonly column?: number | undefined;\n public readonly place?: MdxMessagePlace | undefined;\n public readonly sourceLine?: string | undefined;\n public readonly snippet?: string | undefined;\n public readonly sourcePointer?: string | undefined;\n public readonly hint?: string | undefined;\n public readonly diagnostics: MdxMessage[];\n\n public constructor(\n reason: string,\n options: {\n source?: string | undefined;\n ruleId?: string | undefined;\n line?: number | undefined;\n column?: number | undefined;\n place?: MdxMessagePlace | undefined;\n sourceLine?: string | undefined;\n snippet?: string | undefined;\n sourcePointer?: string | undefined;\n hint?: string | undefined;\n causeMessage?: string | undefined;\n diagnostics?: MdxMessage[] | undefined;\n cause?: unknown;\n } = {},\n context?: Function,\n ) {\n super(\n formatDiagnosticMessage(reason, {\n source: options.source,\n ruleId: options.ruleId,\n line: options.line,\n column: options.column,\n sourceLine: options.sourceLine,\n snippet: options.snippet,\n sourcePointer: options.sourcePointer,\n hint: options.hint,\n causeMessage: options.causeMessage,\n }),\n options.cause === undefined ? undefined : { cause: options.cause },\n );\n\n this.name = \"MdxCompileError\";\n this.reason = reason;\n this.source = options.source;\n this.ruleId = options.ruleId;\n this.line = options.line;\n this.column = options.column;\n this.place = options.place;\n this.sourceLine = options.sourceLine;\n this.snippet = options.snippet;\n this.sourcePointer = options.sourcePointer;\n this.hint = options.hint;\n this.diagnostics = options.diagnostics ?? [];\n\n if (Error.captureStackTrace !== undefined) {\n Error.captureStackTrace(this, context ?? this.constructor);\n }\n }\n\n static create(\n this: void,\n reason: string,\n options: ConstructorParameters<typeof MdxCompileError>[1] = {},\n ): MdxCompileError {\n return new MdxCompileError(reason, options, MdxCompileError.create);\n }\n}\n\n/**\n * A reusable compiler for compiling MDX.\n */\nexport class MdxCompiler {\n private readonly mdxOptions: MdxJsCompileOptions;\n private readonly remarkPlugins: PluggableList;\n private readonly rehypePlugins: PluggableList;\n\n public constructor(mdxOptions: MdxJsCompileOptions = {}) {\n this.mdxOptions = mdxOptions;\n this.remarkPlugins = [remarkFrontmatterPlugin, remarkGfmPlugin];\n this.rehypePlugins = [];\n }\n\n public withRemarkPlugin<TOptions>(\n plugin: Plugin<[TOptions?], HastNode, HastNode>,\n options?: TOptions,\n ): MdxCompiler {\n if (options === undefined) {\n this.remarkPlugins.push(plugin as Pluggable);\n } else {\n this.remarkPlugins.push([plugin, options] as Pluggable);\n }\n return this;\n }\n\n public withRehypePlugin<TOptions>(\n plugin: Plugin<[TOptions?], HastNode, HastNode>,\n options?: TOptions,\n ): MdxCompiler {\n if (options === undefined) {\n this.rehypePlugins.push(plugin as Pluggable);\n } else {\n this.rehypePlugins.push([plugin, options] as Pluggable);\n }\n return this;\n }\n\n public async compile(\n source: MdxSource,\n options?: MdxCompileOptions,\n ): Promise<MdxArtifact<Record<string, unknown>>>;\n public async compile<TFrontmatterSchema extends StandardSchemaV1>(\n source: MdxSource,\n options: MdxCompileOptions | undefined,\n frontmatterSchema: TFrontmatterSchema,\n ): Promise<MdxArtifact<StandardSchemaV1.InferOutput<TFrontmatterSchema>>>;\n public async compile<TFrontmatterSchema extends StandardSchemaV1>(\n source: MdxSource,\n { frontmatterOnly = false, mdxOptions }: MdxCompileOptions = {},\n frontmatterSchema?: TFrontmatterSchema,\n ): Promise<\n MdxArtifact<\n TFrontmatterSchema extends StandardSchemaV1\n ? StandardSchemaV1.InferOutput<TFrontmatterSchema>\n : Record<string, unknown>\n >\n > {\n const sourceText = toSourceText(source);\n const vfile = new VFile({\n value: source,\n // Needed so vfile doesn't need to access fs.\n cwd: \"/\",\n path: \"/source.mdx\",\n });\n matter(vfile, { strip: true });\n const compileSourceText = toSourceText(vfile.value as MdxSource);\n const sourceContext = createDiagnosticSourceContext(sourceText, compileSourceText);\n\n const remarkPlugins = [\n ...this.remarkPlugins,\n ...(this.mdxOptions?.remarkPlugins ?? []),\n ...(mdxOptions?.remarkPlugins ?? []),\n ];\n const rehypePlugins = [\n ...this.rehypePlugins,\n ...(this.mdxOptions?.rehypePlugins ?? []),\n ...(mdxOptions?.rehypePlugins ?? []),\n ];\n\n let compiled: string | undefined;\n if (!frontmatterOnly) {\n try {\n const compiledFile = await compileMdxJs(vfile, {\n outputFormat: \"function-body\",\n ...this.mdxOptions,\n ...mdxOptions,\n remarkPlugins,\n rehypePlugins,\n });\n compiled = compiledFile.value.toString();\n } catch (error) {\n throw toMdxCompileError(error, sourceContext, vfile.messages);\n }\n }\n\n const frontmatter =\n frontmatterSchema === undefined\n ? (vfile.data.matter ?? {})\n : await validateStandardSchema(\n frontmatterSchema,\n vfile.data.matter ?? {},\n \"Frontmatter validation failed\",\n );\n\n return {\n compiled,\n frontmatter: frontmatter as TFrontmatterSchema extends StandardSchemaV1\n ? StandardSchemaV1.InferOutput<TFrontmatterSchema>\n : Record<string, unknown>,\n messages: normalizeMessages(vfile.messages, sourceContext),\n };\n }\n}\n\nfunction toMdxCompileError(\n error: unknown,\n sourceContext: MdxDiagnosticSourceContext,\n diagnostics: readonly VFileLikeMessage[],\n): MdxCompileError {\n const details = getDiagnosticDetails(sourceContext, getErrorPlace(error), error);\n const cause = getErrorCause(error);\n\n return MdxCompileError.create(getErrorReason(error), {\n source: getErrorField(error, \"source\"),\n ruleId: getErrorField(error, \"ruleId\"),\n line: details.line,\n column: details.column,\n place: details.place,\n sourceLine: details.sourceLine,\n snippet: details.snippet,\n sourcePointer: details.sourcePointer,\n hint: details.hint,\n causeMessage: cause?.message,\n diagnostics: normalizeMessages(diagnostics, sourceContext),\n cause: error,\n });\n}\n\nfunction normalizeMessages(\n messages: readonly VFileLikeMessage[],\n sourceContext: MdxDiagnosticSourceContext,\n): MdxMessage[] {\n return messages.map((message) => {\n const details = getDiagnosticDetails(sourceContext, toMessagePlace(message), message);\n const reason = getErrorReason(message);\n const source = getErrorField(message, \"source\");\n const ruleId = getErrorField(message, \"ruleId\");\n const cause = getErrorCause(message);\n\n return {\n message: formatDiagnosticMessage(reason, {\n source,\n ruleId,\n line: details.line,\n column: details.column,\n sourceLine: details.sourceLine,\n snippet: details.snippet,\n sourcePointer: details.sourcePointer,\n hint: details.hint,\n causeMessage: cause?.message,\n }),\n reason,\n source,\n ruleId,\n fatal: typeof message.fatal === \"boolean\" ? message.fatal : undefined,\n line: details.line,\n column: details.column,\n place: details.place,\n sourceLine: details.sourceLine,\n snippet: details.snippet,\n sourcePointer: details.sourcePointer,\n hint: details.hint,\n cause,\n };\n });\n}\n\nfunction formatDiagnosticMessage(\n reason: string,\n options: {\n source?: string | undefined;\n ruleId?: string | undefined;\n line?: number | undefined;\n column?: number | undefined;\n sourceLine?: string | undefined;\n snippet?: string | undefined;\n sourcePointer?: string | undefined;\n hint?: string | undefined;\n causeMessage?: string | undefined;\n },\n): string {\n const origin =\n options.source === undefined\n ? undefined\n : options.ruleId === undefined\n ? options.source\n : `${options.source}:${options.ruleId}`;\n const location =\n options.line === undefined\n ? undefined\n : options.column === undefined\n ? `at ${options.line}`\n : `at ${options.line}:${options.column}`;\n\n const lines = [[reason, origin, location].filter(Boolean).join(\" \")];\n\n if (options.snippet !== undefined) {\n lines.push(`Source: ${options.snippet}`);\n }\n if (options.sourceLine !== undefined && options.sourceLine !== options.snippet) {\n lines.push(`Line: ${options.sourceLine}`);\n if (options.sourcePointer !== undefined) {\n lines.push(` ${options.sourcePointer}`);\n }\n }\n if (\n options.causeMessage !== undefined &&\n options.causeMessage !== \"\" &&\n options.causeMessage !== reason\n ) {\n lines.push(`Cause: ${options.causeMessage}`);\n }\n if (options.hint !== undefined) {\n lines.push(`Hint: ${options.hint}`);\n }\n\n return lines.join(\"\\n\");\n}\n\nfunction getDiagnosticDetails(\n sourceContext: MdxDiagnosticSourceContext,\n place: MdxMessagePlace | undefined,\n error: unknown,\n): {\n line?: number | undefined;\n column?: number | undefined;\n place?: MdxMessagePlace | undefined;\n sourceLine?: string | undefined;\n snippet?: string | undefined;\n sourcePointer?: string | undefined;\n hint?: string | undefined;\n} {\n const compileLine = place?.start?.line ?? getErrorNumberField(error, \"line\");\n let line = compileLine === undefined ? undefined : compileLine + sourceContext.lineOffset;\n let column = place?.start?.column ?? getErrorNumberField(error, \"column\");\n let normalizedPlace = mapPlaceToOriginalSource(\n place === undefined && compileLine === undefined && column === undefined\n ? undefined\n : {\n start: {\n line: compileLine,\n column,\n offset: place?.start?.offset,\n },\n end:\n place?.end === undefined\n ? undefined\n : {\n line: place.end.line,\n column: place.end.column,\n offset: place.end.offset,\n },\n },\n sourceContext.lineOffset,\n );\n let sourceLine = getSourceLine(sourceContext.originalSourceText, line);\n let snippet = getSourceSnippet(sourceContext.originalSourceText, normalizedPlace);\n let sourcePointer = getSourcePointer(column);\n let hint: string | undefined;\n\n const refinedExpressionContext = getMdxExpressionContext(sourceContext.originalSourceText, {\n line,\n column,\n sourceLine,\n snippet,\n error,\n });\n\n if (refinedExpressionContext !== undefined) {\n line = refinedExpressionContext.line;\n column = refinedExpressionContext.column;\n sourceLine = refinedExpressionContext.sourceLine;\n snippet = refinedExpressionContext.snippet;\n sourcePointer = refinedExpressionContext.sourcePointer;\n hint = refinedExpressionContext.hint;\n normalizedPlace = {\n start: {\n line,\n column,\n offset: undefined,\n },\n end: undefined,\n };\n }\n\n return {\n line,\n column,\n place: normalizedPlace,\n sourceLine,\n snippet,\n sourcePointer,\n hint,\n };\n}\n\nfunction getMdxExpressionContext(\n sourceText: string,\n options: {\n line?: number | undefined;\n column?: number | undefined;\n sourceLine?: string | undefined;\n snippet?: string | undefined;\n error: unknown;\n },\n):\n | {\n line: number;\n column: number;\n sourceLine: string;\n snippet: string;\n sourcePointer: string;\n hint?: string | undefined;\n }\n | undefined {\n if (!shouldRefineMdxExpressionContext(options)) {\n return undefined;\n }\n\n const candidate = findSuspiciousBraceExpression(sourceText, options.line, options.column);\n if (candidate === undefined) {\n return undefined;\n }\n\n return {\n line: candidate.line,\n column: candidate.column,\n sourceLine: candidate.sourceLine,\n snippet: candidate.snippet,\n sourcePointer: getSourcePointer(candidate.column) ?? \"^\",\n hint:\n getErrorCause(options.error)?.message === \"Unexpected content after expression\"\n ? \"MDX treats `{...}` as JavaScript. If you meant literal braces in text, escape them or wrap the text in code.\"\n : undefined,\n };\n}\n\nfunction shouldRefineMdxExpressionContext(options: {\n sourceLine?: string | undefined;\n snippet?: string | undefined;\n error: unknown;\n}): boolean {\n const trimmedSourceLine = options.sourceLine?.trim();\n\n return (\n isMdxExpressionError(options.error) &&\n getErrorCause(options.error)?.message === \"Unexpected content after expression\" &&\n (options.sourceLine === undefined ||\n options.sourceLine.trim() === \"\" ||\n options.snippet === undefined) &&\n !(trimmedSourceLine?.startsWith(\"{\") && trimmedSourceLine.endsWith(\"}\"))\n );\n}\n\nfunction getSourceLine(sourceText: string, line: number | undefined): string | undefined {\n if (line === undefined || line < 1) {\n return undefined;\n }\n return sourceText.split(/\\r?\\n/u)[line - 1];\n}\n\nfunction getSourceSnippet(\n sourceText: string,\n place: MdxMessagePlace | undefined,\n): string | undefined {\n if (place?.start?.offset !== undefined && place.end?.offset !== undefined) {\n return sourceText.slice(place.start.offset, place.end.offset) || undefined;\n }\n\n if (place?.start?.line === undefined || place.start.column === undefined) {\n return undefined;\n }\n\n if (place.end === undefined) {\n const lines = sourceText.split(/\\r?\\n/u);\n const line = lines[place.start.line - 1];\n if (line === undefined) {\n return undefined;\n }\n\n const character = line.at(place.start.column - 1);\n return character === undefined || character.trim() === \"\" ? undefined : character;\n }\n\n const lines = sourceText.split(/\\r?\\n/u);\n const startLineIndex = place.start.line - 1;\n const endLineIndex = (place.end?.line ?? place.start.line) - 1;\n\n if (startLineIndex < 0 || startLineIndex >= lines.length) {\n return undefined;\n }\n\n const selectedLines = lines.slice(startLineIndex, endLineIndex + 1);\n if (selectedLines.length === 0) {\n return undefined;\n }\n\n selectedLines[0] = selectedLines[0].slice(place.start.column - 1);\n\n const endColumn = place.end?.column;\n if (endColumn !== undefined) {\n const lastIndex = selectedLines.length - 1;\n selectedLines[lastIndex] = selectedLines[lastIndex].slice(0, endColumn - 1);\n }\n\n return selectedLines.join(\"\\n\") || undefined;\n}\n\nfunction getSourcePointer(column: number | undefined): string | undefined {\n if (column === undefined || column < 1) {\n return undefined;\n }\n\n return `${\" \".repeat(column - 1)}^`;\n}\n\nfunction mapPlaceToOriginalSource(\n place: MdxMessagePlace | undefined,\n lineOffset: number,\n): MdxMessagePlace | undefined {\n if (place === undefined) {\n return undefined;\n }\n\n return {\n start: mapPointToOriginalSource(place.start, lineOffset),\n end: mapPointToOriginalSource(place.end, lineOffset),\n };\n}\n\nfunction mapPointToOriginalSource(\n point: MdxMessagePoint | undefined,\n lineOffset: number,\n): MdxMessagePoint | undefined {\n if (point === undefined) {\n return undefined;\n }\n\n return {\n line: point.line === undefined ? undefined : point.line + lineOffset,\n column: point.column,\n offset: lineOffset === 0 ? point.offset : undefined,\n };\n}\n\nfunction findSuspiciousBraceExpression(\n sourceText: string,\n line: number | undefined,\n column: number | undefined,\n):\n | {\n line: number;\n column: number;\n sourceLine: string;\n snippet: string;\n }\n | undefined {\n const lines = sourceText.split(/\\r?\\n/u);\n const searchLines = getNearbyLineNumbers(line, lines.length, 2);\n let bestMatch:\n | {\n line: number;\n column: number;\n sourceLine: string;\n snippet: string;\n score: number;\n }\n | undefined;\n\n for (const lineNumber of searchLines) {\n const sourceLine = lines[lineNumber - 1];\n if (sourceLine === undefined || sourceLine.trim() === \"\") {\n continue;\n }\n\n const expression = findLineBraceExpression(sourceLine, lineNumber, column);\n if (expression === undefined) {\n continue;\n }\n\n const lineDistance = line === undefined ? 0 : Math.abs(lineNumber - line);\n const score = lineDistance * 10 + expression.distance;\n\n if (bestMatch === undefined || score < bestMatch.score) {\n bestMatch = {\n ...expression,\n score,\n };\n }\n }\n\n return bestMatch;\n}\n\nfunction getNearbyLineNumbers(\n line: number | undefined,\n totalLines: number,\n radius: number,\n): number[] {\n if (line === undefined) {\n return Array.from({ length: totalLines }, (_, index) => index + 1);\n }\n\n const lineNumbers: number[] = [];\n for (let distance = 0; distance <= radius; distance++) {\n const before = line - distance;\n if (before >= 1) {\n lineNumbers.push(before);\n }\n\n if (distance === 0) {\n continue;\n }\n\n const after = line + distance;\n if (after <= totalLines) {\n lineNumbers.push(after);\n }\n }\n\n return lineNumbers;\n}\n\nfunction findLineBraceExpression(\n sourceLine: string,\n line: number,\n column: number | undefined,\n):\n | {\n line: number;\n column: number;\n sourceLine: string;\n snippet: string;\n distance: number;\n }\n | undefined {\n let bestMatch:\n | {\n line: number;\n column: number;\n sourceLine: string;\n snippet: string;\n distance: number;\n }\n | undefined;\n\n for (const match of sourceLine.matchAll(/\\{[^{}\\n]+\\}/gu)) {\n const braceStart = match.index;\n if (braceStart === undefined) {\n continue;\n }\n\n const expanded = expandBraceExpression(sourceLine, braceStart);\n if (expanded === undefined) {\n continue;\n }\n\n const distance = column === undefined ? 0 : Math.abs(braceStart + 1 - column);\n if (bestMatch === undefined || distance < bestMatch.distance) {\n bestMatch = {\n line,\n column: braceStart + 1,\n sourceLine,\n snippet: expanded,\n distance,\n };\n }\n }\n\n return bestMatch;\n}\n\nfunction expandBraceExpression(sourceLine: string, braceStart: number): string | undefined {\n const braceEnd = sourceLine.indexOf(\"}\", braceStart);\n if (braceEnd === -1) {\n return undefined;\n }\n\n let start = braceStart;\n while (start > 0 && /[A-Za-z0-9_]/u.test(sourceLine[start - 1])) {\n start--;\n }\n\n let end = braceEnd + 1;\n while (end < sourceLine.length) {\n while (end < sourceLine.length && /[A-Za-z0-9_]/u.test(sourceLine[end])) {\n end++;\n }\n\n if (sourceLine[end] !== \"{\") {\n break;\n }\n\n const chainedEnd = sourceLine.indexOf(\"}\", end);\n if (chainedEnd === -1) {\n break;\n }\n end = chainedEnd + 1;\n }\n\n return sourceLine.slice(start, end) || undefined;\n}\n\nfunction isMdxExpressionError(error: unknown): boolean {\n return (\n getErrorField(error, \"source\") === \"micromark-extension-mdx-expression\" &&\n getErrorField(error, \"ruleId\") === \"acorn\"\n );\n}\n\nfunction createDiagnosticSourceContext(\n originalSourceText: string,\n compileSourceText: string,\n): MdxDiagnosticSourceContext {\n return {\n originalSourceText,\n lineOffset: getSourceLineOffset(originalSourceText, compileSourceText),\n };\n}\n\nfunction getSourceLineOffset(originalSourceText: string, compileSourceText: string): number {\n const originalLines = originalSourceText.split(/\\r?\\n/u);\n const compileLines = compileSourceText.split(/\\r?\\n/u);\n const maxOffset = originalLines.length - compileLines.length;\n\n for (let offset = 0; offset <= maxOffset; offset++) {\n let isMatch = true;\n for (let index = 0; index < compileLines.length; index++) {\n if (originalLines[offset + index] !== compileLines[index]) {\n isMatch = false;\n break;\n }\n }\n\n if (isMatch) {\n return offset;\n }\n }\n\n return maxOffset > 0 ? maxOffset : 0;\n}\n\nfunction getErrorPlace(error: unknown): MdxMessagePlace | undefined {\n if (typeof error !== \"object\" || error === null) {\n return undefined;\n }\n\n const candidate = error as {\n place?: unknown;\n position?: unknown;\n };\n\n return toPlace(candidate.place) ?? toPlace(candidate.position);\n}\n\nfunction toMessagePlace(message: VFileLikeMessage): MdxMessagePlace | undefined {\n return toPlace(message.place);\n}\n\nfunction toPlace(value: unknown): MdxMessagePlace | undefined {\n if (typeof value !== \"object\" || value === null) {\n return undefined;\n }\n\n const candidate = value as {\n start?: unknown;\n end?: unknown;\n line?: unknown;\n column?: unknown;\n offset?: unknown;\n };\n\n if (candidate.start !== undefined || candidate.end !== undefined) {\n return {\n start: toPoint(candidate.start),\n end: toPoint(candidate.end),\n };\n }\n\n const point = toPoint(candidate);\n return point === undefined ? undefined : { start: point };\n}\n\nfunction toPoint(value: unknown): MdxMessagePoint | undefined {\n if (typeof value !== \"object\" || value === null) {\n return undefined;\n }\n\n const candidate = value as {\n line?: unknown;\n column?: unknown;\n offset?: unknown;\n };\n const line = typeof candidate.line === \"number\" ? candidate.line : undefined;\n const column = typeof candidate.column === \"number\" ? candidate.column : undefined;\n const offset = typeof candidate.offset === \"number\" ? candidate.offset : undefined;\n\n if (line === undefined && column === undefined && offset === undefined) {\n return undefined;\n }\n\n return { line, column, offset };\n}\n\nfunction getErrorReason(error: unknown): string {\n if (error instanceof Error && error.message !== \"\") {\n return error.message;\n }\n\n const reason = getErrorField(error, \"reason\");\n if (reason !== undefined && reason !== \"\") {\n return reason;\n }\n\n return String(error);\n}\n\nfunction getErrorCause(error: unknown): { name?: string | undefined; message: string } | undefined {\n if (typeof error !== \"object\" || error === null || !(\"cause\" in error)) {\n return undefined;\n }\n\n const cause = (error as { cause?: unknown }).cause;\n if (cause instanceof Error) {\n return {\n name: cause.name,\n message: cause.message,\n };\n }\n if (typeof cause === \"string\" && cause !== \"\") {\n return {\n message: cause,\n };\n }\n\n return undefined;\n}\n\nfunction getErrorField(error: unknown, field: \"source\" | \"ruleId\" | \"reason\"): string | undefined {\n if (typeof error !== \"object\" || error === null || !(field in error)) {\n return undefined;\n }\n\n const value = (error as Record<string, unknown>)[field];\n return typeof value === \"string\" && value !== \"\" ? value : undefined;\n}\n\nfunction getErrorNumberField(error: unknown, field: \"line\" | \"column\"): number | undefined {\n if (typeof error !== \"object\" || error === null || !(field in error)) {\n return undefined;\n }\n\n const value = (error as Record<string, unknown>)[field];\n return typeof value === \"number\" ? value : undefined;\n}\n\nfunction toSourceText(source: MdxSource): string {\n return typeof source === \"string\" ? source : new TextDecoder().decode(source);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compiler.mjs","names":[],"sources":["../src/compiler.ts"],"sourcesContent":["import type { Schema, SchemaIssue, SchemaOutput } from \"@temelj/standard-schema\";\n\nimport { isObject, isBoolean, isNumber, isBigInt, isString } from \"@temelj/value\";\n\nimport type { HtmlRenderOptions } from \"./html-lower.ts\";\nimport type { HtmlRootNode } from \"./html.ts\";\nimport type { DocumentNode, FrontmatterObject } from \"./model.ts\";\nimport type { ParseResult } from \"./parser.ts\";\nimport type { SourceRange } from \"./ranges.ts\";\nimport type { SourceFile } from \"./source.ts\";\n\nimport { analyzeDocument, type CompileAnalysis } from \"./compile-analysis.ts\";\nimport { contentUsesAwait, emitContent } from \"./compile-emit.ts\";\nimport { createDiagnostic } from \"./diagnostics.ts\";\nimport {\n CompileError,\n ConfigurationError,\n FrontmatterError,\n LimitError,\n MdxError,\n} from \"./errors.ts\";\nimport { lowerHtml } from \"./html-lower.ts\";\nimport { javascriptPropertyName } from \"./javascript-ast.ts\";\nimport { parseJavaScriptProgram } from \"./javascript.ts\";\nimport { documentFrontmatter } from \"./model.ts\";\nimport { CodeWriter, type SourceMap } from \"./source-map.ts\";\n\nconst DEFAULT_MAXIMUM_GENERATED_CODE_BYTES = 10 * 1024 * 1024;\n\nconst DEFAULT_MAXIMUM_SOURCE_MAP_BYTES = 5 * 1024 * 1024;\n\n/** Compiled content renders the same elements as `lowerHtml` with these options. */\nexport interface CompileOptions extends HtmlRenderOptions {\n /** Emit `jsxDEV` calls with authored source locations. */\n readonly development?: boolean;\n /** Package providing `jsx-runtime`. */\n readonly jsxImportSource?: string;\n /** Maximum UTF-8 size of generated JavaScript. */\n readonly maximumGeneratedCodeBytes?: number;\n /** Maximum UTF-8 size of the serialized source map. */\n readonly maximumSourceMapBytes?: number;\n /** Optional generated filename written into the source map. */\n readonly outputName?: string;\n /** Optional package providing a `useMDXComponents` export. */\n readonly providerImportSource?: string;\n /** Original MDX filename written into the source map. */\n readonly sourceName?: string;\n /** JavaScript shape emitted by the compiler. */\n readonly outputFormat?: CompileOutputFormat;\n}\n\nexport type CompileOutputFormat = \"functionBody\" | \"program\";\n\n/**\n * The components compiled content reads from `props.components`: element\n * overrides by tag name, authored JSX components by name, and three reserved\n * entries whose names cannot collide with either.\n */\nexport interface CompiledComponents<TComponent = unknown> {\n readonly [name: string]: TComponent | undefined;\n /** Receives `code`, `language`, `meta`, `node`, and `status`. Defaults to `<pre><code>`. */\n readonly codeBlock?: TComponent;\n /** Receives `source`, `style`, and `meta`. Defaults to a readable code fallback. */\n readonly mathFormula?: TComponent;\n /** Wraps the whole document and receives its props plus `children`. */\n readonly wrapper?: TComponent;\n}\n\nexport type MdxTransportValue =\n | null\n | boolean\n | number\n | bigint\n | string\n | readonly MdxTransportValue[]\n | Readonly<{ [key: string]: MdxTransportValue }>;\n\ninterface CompileArtifactBase {\n readonly code: string;\n readonly frontmatter: MdxTransportValue;\n readonly map: SourceMap;\n}\n\nexport interface ProgramCompileArtifact extends CompileArtifactBase {\n readonly format: \"program\";\n}\n\nexport interface FunctionBodyCompileArtifact extends CompileArtifactBase {\n readonly format: \"functionBody\";\n readonly imports: readonly string[];\n}\n\nexport type CompileArtifact = ProgramCompileArtifact | FunctionBodyCompileArtifact;\n\nexport interface CompileSchemaOptions<TSchema extends Schema> extends CompileOptions {\n /** Standard Schema validation for decoded frontmatter. */\n readonly frontmatterSchema: TSchema;\n}\n\nexport interface CompileResult<\n TFrontmatter = FrontmatterObject,\n TFormat extends CompileOutputFormat = CompileOutputFormat,\n> extends ParseResult {\n readonly artifact: Extract<CompileArtifact, { readonly format: TFormat }>;\n readonly frontmatter: TFrontmatter;\n}\n\n/** Emits JavaScript for a strict document. Throws for configuration errors and compiler limits. */\nfunction emitArtifact(\n document: DocumentNode,\n options: Readonly<CompileOptions & { readonly source: SourceFile }>,\n frontmatter: MdxTransportValue,\n): CompileArtifact {\n try {\n if (\n options.maximumGeneratedCodeBytes !== undefined &&\n (!Number.isSafeInteger(options.maximumGeneratedCodeBytes) ||\n options.maximumGeneratedCodeBytes < 0)\n ) {\n throw ConfigurationError.invalidCompilerLimit(\n \"maximumGeneratedCodeBytes\",\n options.maximumGeneratedCodeBytes,\n );\n }\n\n if (\n options.maximumSourceMapBytes !== undefined &&\n (!Number.isSafeInteger(options.maximumSourceMapBytes) || options.maximumSourceMapBytes < 0)\n ) {\n throw ConfigurationError.invalidCompilerLimit(\n \"maximumSourceMapBytes\",\n options.maximumSourceMapBytes,\n );\n }\n\n const content = lowerHtml(document, options);\n const analysis = analyzeDocument(document, content, options);\n const usesAwait = contentUsesAwait(content);\n\n const format = options.outputFormat ?? \"functionBody\";\n const writer = new CodeWriter(options.source);\n emitModulePreamble(writer, analysis, options, format);\n emitContentFunction(writer, content, analysis, options, usesAwait);\n emitPublicComponent(writer, analysis, options, usesAwait, format);\n\n if (analysis.scope.missingReferences.size > 0) {\n emitMissingReferenceHelper(writer, analysis);\n }\n\n if (format === \"functionBody\") {\n writer.write(\n `return {${[...analysis.esm.exports, `default: ${analysis.scope.names.get(\"Content\")}`].join(\", \")}};\\n}\\n`,\n );\n }\n\n const code = writer.toString();\n enforceGeneratedCodeLimit(options.source, code, options.maximumGeneratedCodeBytes);\n\n try {\n // The output is valid by construction; parsing it once guards that invariant.\n parseJavaScriptProgram(\n format === \"program\" ? code : `async function __evaluateMdx(){\\n${code}\\n}`,\n );\n } catch (cause) {\n throw CompileError.generatedProgramInvalid(cause);\n }\n\n const map = writer.sourceMap(analysis.scope.sourceName, options.outputName);\n enforceSourceMapLimit(options.source, map, options.maximumSourceMapBytes);\n\n return format === \"program\"\n ? Object.freeze({ format, code, map, frontmatter })\n : Object.freeze({\n format,\n code,\n map,\n imports: Object.freeze(\n options.providerImportSource === undefined ||\n analysis.esm.imports.includes(options.providerImportSource)\n ? [...analysis.esm.imports]\n : [...analysis.esm.imports, options.providerImportSource],\n ),\n frontmatter,\n });\n } catch (cause) {\n if (cause instanceof MdxError) {\n throw cause;\n }\n\n throw CompileError.generationFailed(cause);\n }\n}\n\n/**\n * Validates frontmatter and compiles a parsed or transformed document without executing it.\n * @throws {FrontmatterError} Invalid schema output or unsupported transport data.\n * @throws {LimitError} Generated code or its source map exceeds a configured limit.\n * @throws {CompileError} JavaScript generation fails.\n * @throws {ConfigurationError} Invalid compiler options.\n */\nexport function compile<\n TSchema extends Schema,\n TFormat extends CompileOutputFormat = \"functionBody\",\n>(\n input: ParseResult,\n options: Readonly<CompileSchemaOptions<TSchema> & { readonly outputFormat?: TFormat }>,\n): Promise<CompileResult<SchemaOutput<TSchema>, TFormat>>;\nexport function compile<TFormat extends CompileOutputFormat = \"functionBody\">(\n input: ParseResult,\n options?: Readonly<CompileOptions & { readonly outputFormat?: TFormat }>,\n): Promise<CompileResult<FrontmatterObject, TFormat>>;\nexport async function compile(\n input: ParseResult,\n options: Readonly<CompileOptions & { readonly frontmatterSchema?: Schema }> = {},\n): Promise<CompileResult<unknown>> {\n const frontmatterNode = documentFrontmatter(input.document);\n let frontmatter: unknown = frontmatterNode?.data ?? Object.freeze({});\n\n if (options.frontmatterSchema !== undefined) {\n const validated = await options.frontmatterSchema[\"~standard\"].validate(frontmatter);\n\n if (validated.issues !== undefined) {\n const diagnostics = validated.issues.map((issue) =>\n createDiagnostic({\n severity: \"error\",\n code: \"mdx.frontmatter.schema\",\n message: formatSchemaIssue(issue),\n span: fileSpan(input.file, frontmatterNode?.origin),\n }),\n );\n\n throw FrontmatterError.schemaValidationFailed(input.file, diagnostics, validated.issues);\n }\n\n frontmatter = validated.value;\n }\n\n const transported = copyTransportValue(frontmatter, \"frontmatter\", {\n file: input.file,\n origin: frontmatterNode?.origin,\n ancestors: new WeakSet(),\n });\n\n const artifact = emitArtifact(input.document, { ...options, source: input.file }, transported);\n\n return Object.freeze({\n file: input.file,\n document: input.document,\n diagnostics: input.diagnostics,\n artifact,\n frontmatter,\n });\n}\n\nfunction formatSchemaIssue(issue: SchemaIssue): string {\n const path = issue.path?.map((part) => String(isObject(part) ? part.key : part)).join(\".\");\n\n return path === undefined || path.length === 0 ? issue.message : `${path}: ${issue.message}`;\n}\n\ninterface FrontmatterTransportContext {\n readonly file: SourceFile;\n readonly origin: SourceRange | undefined;\n readonly ancestors: WeakSet<object>;\n}\n\nfunction copyTransportValue(\n // oxlint-disable-next-line anti-slop/no-unknown-parameters -- Recursively validates external schema output against the MDX transport contract.\n value: unknown,\n path: string,\n context: FrontmatterTransportContext,\n): MdxTransportValue {\n const { ancestors } = context;\n\n if (value === null || isBoolean(value) || isNumber(value) || isBigInt(value) || isString(value)) {\n return value;\n }\n\n if (!isObject(value)) {\n throw FrontmatterError.nonTransportableValue(\n context.file,\n context.origin,\n `${path} contains unsupported ${Object.prototype.toString.call(value)}`,\n );\n }\n\n if (ancestors.has(value)) {\n throw FrontmatterError.nonTransportableValue(\n context.file,\n context.origin,\n `${path} contains a cycle`,\n );\n }\n\n ancestors.add(value);\n\n if (Array.isArray(value)) {\n const output: MdxTransportValue[] = [];\n\n for (let index = 0; index < value.length; index++) {\n const item = copyTransportValue(value[index], `${path}[${index}]`, context);\n\n output.push(item);\n }\n\n ancestors.delete(value);\n\n return Object.freeze(output);\n }\n\n const prototype: unknown = Object.getPrototypeOf(value);\n\n if (prototype !== Object.prototype && prototype !== null) {\n throw FrontmatterError.nonTransportableValue(\n context.file,\n context.origin,\n `${path} contains a non-plain object`,\n );\n }\n\n if (Object.getOwnPropertySymbols(value).length > 0) {\n throw FrontmatterError.nonTransportableValue(\n context.file,\n context.origin,\n `${path} contains a symbol property`,\n );\n }\n\n const output: Record<string, MdxTransportValue> = {};\n\n for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(value))) {\n if (!descriptor.enumerable) {\n continue;\n }\n\n if (!(\"value\" in descriptor)) {\n throw FrontmatterError.nonTransportableValue(\n context.file,\n context.origin,\n `${path}.${key} is an accessor property`,\n );\n }\n\n const item = copyTransportValue(descriptor.value, `${path}.${key}`, context);\n\n Object.defineProperty(output, key, {\n enumerable: true,\n value: item,\n });\n }\n\n ancestors.delete(value);\n\n return Object.freeze(output);\n}\n\nfunction fileSpan(\n file: SourceFile,\n range: SourceRange | undefined,\n): Readonly<{ file: SourceFile; start: number; end: number }> | undefined {\n return range === undefined ? undefined : { file, start: range.start, end: range.end };\n}\n\n/**\n * Authored ESM, the JSX runtime, and the optional provider. A function body\n * receives the runtime as `__mdxRuntime` and resolves imports through\n * `__resolveMdxImport` instead of importing.\n */\nfunction emitModulePreamble(\n writer: CodeWriter,\n analysis: CompileAnalysis,\n options: Readonly<CompileOptions>,\n format: CompileOutputFormat,\n): void {\n const names = analysis.scope.names;\n\n const runtime = analysis.scope.development\n ? `{Fragment: ${names.get(\"_Fragment\")}, jsxDEV: ${names.get(\"_jsxDEV\")}}`\n : `{Fragment: ${names.get(\"_Fragment\")}, jsx: ${names.get(\"_jsx\")}, jsxs: ${names.get(\"_jsxs\")}}`;\n\n const importSource = `${options.jsxImportSource ?? \"react\"}/${\n analysis.scope.development ? \"jsx-dev-runtime\" : \"jsx-runtime\"\n }`;\n\n writer.write(\n format === \"program\"\n ? `import ${runtime.replaceAll(\": \", \" as \")} from ${JSON.stringify(importSource)};\\n`\n : `const ${runtime} = __mdxRuntime;\\n`,\n );\n\n if (format === \"functionBody\") {\n if (analysis.esm.imports.length > 0 || options.providerImportSource !== undefined) {\n writer.write(`const ${names.get(\"_resolveMdxImport\")} = __resolveMdxImport;\\n`);\n }\n\n // Authored lexical bindings may use the evaluator's parameter names.\n writer.write(\"{\\n\");\n }\n\n for (const entry of analysis.esm.blocks) {\n writer.write(`${entry.code.trimEnd()}\\n`, entry.origin);\n }\n\n if (options.providerImportSource !== undefined) {\n writer.write(\n format === \"program\"\n ? `import {useMDXComponents as ${names.get(\"_provideComponents\")}} from ${JSON.stringify(options.providerImportSource)};\\n`\n : `const {useMDXComponents: ${names.get(\"_provideComponents\")}} = await ${names.get(\"_resolveMdxImport\")}(${JSON.stringify(options.providerImportSource)});\\n`,\n );\n }\n}\n\nfunction emitContentFunction(\n writer: CodeWriter,\n content: HtmlRootNode,\n analysis: CompileAnalysis,\n options: Readonly<CompileOptions>,\n usesAwait: boolean,\n): void {\n const names = analysis.scope.names;\n const props = analysis.propsName;\n const componentsName = names.get(\"_components\");\n writer.write(`${usesAwait ? \"async \" : \"\"}function ${names.get(\"_createContent\")}(${props}) {\\n`);\n writer.write(` const ${componentsName} = {`);\n const tags = [...analysis.intrinsicTags].sort();\n tags.forEach((tag, index) => {\n if (index > 0) {\n writer.write(\", \");\n }\n\n writer.write(`${javascriptPropertyName(tag)}:${JSON.stringify(tag)}`);\n });\n\n if (options.providerImportSource !== undefined) {\n writer.write(`${tags.length === 0 ? \"\" : \", \"}...${names.get(\"_provideComponents\")}()`);\n }\n\n writer.write(\n `${tags.length === 0 && options.providerImportSource === undefined ? \"\" : \", \"}...${props}.components};\\n`,\n );\n\n const components = [...analysis.scope.referencedComponents].sort();\n\n for (const component of components) {\n writer.write(` const ${component} = ${componentsName}[${JSON.stringify(component)}];\\n`);\n }\n\n for (const [reference, component] of analysis.scope.missingReferences) {\n writer.write(\n ` if (!${reference}) ${names.get(\"_missingReference\")}(${JSON.stringify(reference)}, ${component});\\n`,\n );\n }\n\n writer.write(\" return \");\n emitContent(writer, content, analysis);\n writer.write(\";\\n}\\n\");\n}\n\nfunction emitPublicComponent(\n writer: CodeWriter,\n analysis: CompileAnalysis,\n options: Readonly<CompileOptions>,\n usesAwait: boolean,\n format: CompileOutputFormat,\n): void {\n const names = analysis.scope.names;\n const props = analysis.propsName;\n const layout = names.get(\"Layout\");\n writer.write(\n `${format === \"program\" ? \"export default \" : \"\"}${usesAwait ? \"async \" : \"\"}function ${names.get(\"Content\")}(${props} = {}) {\\n`,\n );\n const content = `${usesAwait ? \"await \" : \"\"}${names.get(\"_createContent\")}(${props})`;\n\n if (analysis.esm.hasLayout) {\n writer.write(\n ` return ${runtimeCall(analysis, layout, `{...${props}, children: ${content}}`)};\\n`,\n );\n } else {\n writer.write(` const {wrapper: ${layout}} = {`);\n\n if (options.providerImportSource !== undefined) {\n writer.write(`...${names.get(\"_provideComponents\")}(), `);\n }\n\n writer.write(`...${props}.components};\\n`);\n writer.write(\n ` return ${layout} ? ${runtimeCall(analysis, layout, `{...${props}, children: ${content}}`)} : ${content};\\n`,\n );\n }\n\n writer.write(\"}\\n\");\n}\n\nfunction emitMissingReferenceHelper(writer: CodeWriter, analysis: CompileAnalysis): void {\n const names = analysis.scope.names;\n writer.write(\n `class ${names.get(\"ReferenceError\")} extends Error {\\n` +\n \" constructor(id, component) {\\n\" +\n ' super(`Expected ${component ? \"component\" : \"object\"} ${id} to be defined: you likely forgot to import, pass, or provide it.`);\\n' +\n ' this.name = \"ReferenceError\";\\n' +\n \" }\\n\" +\n \"}\\n\" +\n `function ${names.get(\"_missingReference\")}(id, component) {\\n` +\n ` throw new ${names.get(\"ReferenceError\")}(id, component);\\n` +\n \"}\\n\",\n );\n}\n\nfunction enforceGeneratedCodeLimit(\n file: SourceFile,\n code: string,\n configuredMaximum: number | undefined,\n): void {\n const maximum = configuredMaximum ?? DEFAULT_MAXIMUM_GENERATED_CODE_BYTES;\n const actual = new TextEncoder().encode(code).byteLength;\n\n if (actual > maximum) {\n throw LimitError.exceeded(file, \"maximumGeneratedCodeBytes\", maximum, undefined, actual);\n }\n}\n\nfunction enforceSourceMapLimit(\n file: SourceFile,\n map: SourceMap,\n configuredMaximum: number | undefined,\n): void {\n const maximum = configuredMaximum ?? DEFAULT_MAXIMUM_SOURCE_MAP_BYTES;\n const actual = new TextEncoder().encode(JSON.stringify(map)).byteLength;\n\n if (actual > maximum) {\n throw LimitError.exceeded(file, \"maximumSourceMapBytes\", maximum, undefined, actual);\n }\n}\n\nfunction runtimeCall(analysis: CompileAnalysis, tag: string, properties: string): string {\n return analysis.scope.development\n ? `${analysis.scope.names.get(\"_jsxDEV\")}(${tag}, ${properties}, undefined, false, undefined, undefined)`\n : `${analysis.scope.names.get(\"_jsx\")}(${tag}, ${properties})`;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { SourceSpan } from "./source.mjs";
|
|
2
|
+
//#region src/diagnostics.d.ts
|
|
3
|
+
export type DiagnosticSeverity = "info" | "warning" | "error";
|
|
4
|
+
export interface RelatedInformation {
|
|
5
|
+
readonly message: string;
|
|
6
|
+
readonly span: SourceSpan;
|
|
7
|
+
}
|
|
8
|
+
export interface Diagnostic {
|
|
9
|
+
readonly severity: DiagnosticSeverity;
|
|
10
|
+
readonly code: string;
|
|
11
|
+
readonly message: string;
|
|
12
|
+
readonly span?: SourceSpan;
|
|
13
|
+
readonly notes?: readonly string[];
|
|
14
|
+
readonly related?: readonly RelatedInformation[];
|
|
15
|
+
}
|
|
16
|
+
export interface DiagnosticFormatOptions {
|
|
17
|
+
readonly includeCode?: boolean;
|
|
18
|
+
readonly includeNotes?: boolean;
|
|
19
|
+
readonly includeRelated?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface DiagnosticReporter {
|
|
22
|
+
add(diagnostic: Diagnostic): void;
|
|
23
|
+
}
|
|
24
|
+
export declare class DiagnosticBag implements DiagnosticReporter {
|
|
25
|
+
private readonly values;
|
|
26
|
+
get size(): number;
|
|
27
|
+
constructor(initial?: readonly Diagnostic[]);
|
|
28
|
+
add(diagnostic: Diagnostic): void;
|
|
29
|
+
extend(diagnostics: readonly Diagnostic[]): void;
|
|
30
|
+
snapshot(): readonly Diagnostic[];
|
|
31
|
+
hasErrorsSince(index: number): boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare function formatDiagnostic(diagnostic: Diagnostic, options?: DiagnosticFormatOptions): string;
|
|
34
|
+
export declare function hasErrorDiagnostics(diagnostics: readonly Diagnostic[]): boolean;
|
|
35
|
+
export declare function createDiagnostic(diagnostic: Diagnostic): Diagnostic;
|
|
36
|
+
//#endregion
|
|
37
|
+
//# sourceMappingURL=diagnostics.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.mts","names":[],"sources":["../src/diagnostics.ts"],"mappings":";;YAEY;iBAEK;WACN;WACA,MAAM;;iBAGA;WACN,UAAU;WACV;WACA;WACA,OAAO;WACP;WACA,mBAAmB;;iBAGb;WACN;WACA;WACA;;iBAGM;EACf,IAAI,YAAY;;qBAGL,yBAAyB;mBACnB;MAEN;EAIX,YAAmB,mBAAkB;EAI9B,IAAI,YAAY;EAIhB,OAAO,sBAAsB;EAM7B,qBAAqB;EAIrB,eAAe;;wBAWR,iBACd,YAAY,YACZ,UAAS;wBAqBK,oBAAoB,sBAAsB;wBAM1C,iBAAiB,YAAY,aAAa"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
//#region src/diagnostics.ts
|
|
2
|
+
var DiagnosticBag = class {
|
|
3
|
+
values = [];
|
|
4
|
+
get size() {
|
|
5
|
+
return this.values.length;
|
|
6
|
+
}
|
|
7
|
+
constructor(initial = []) {
|
|
8
|
+
this.extend(initial);
|
|
9
|
+
}
|
|
10
|
+
add(diagnostic) {
|
|
11
|
+
this.values.push(createDiagnostic(diagnostic));
|
|
12
|
+
}
|
|
13
|
+
extend(diagnostics) {
|
|
14
|
+
for (const diagnostic of diagnostics) this.add(diagnostic);
|
|
15
|
+
}
|
|
16
|
+
snapshot() {
|
|
17
|
+
return Object.freeze([...this.values]);
|
|
18
|
+
}
|
|
19
|
+
hasErrorsSince(index) {
|
|
20
|
+
for (let current = index; current < this.values.length; current++) if (this.values[current].severity === "error") return true;
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
function formatDiagnostic(diagnostic, options = {}) {
|
|
25
|
+
const location = diagnostic.span === void 0 ? "" : formatSpan(diagnostic.span);
|
|
26
|
+
const code = options.includeCode === false ? "" : ` [${diagnostic.code}]`;
|
|
27
|
+
const lines = [`${location}${diagnostic.severity}${code}: ${diagnostic.message}`];
|
|
28
|
+
if (options.includeNotes !== false) for (const note of diagnostic.notes ?? []) lines.push(`note: ${note}`);
|
|
29
|
+
if (options.includeRelated !== false) for (const related of diagnostic.related ?? []) lines.push(`related ${formatSpan(related.span)}${related.message}`);
|
|
30
|
+
return lines.join("\n");
|
|
31
|
+
}
|
|
32
|
+
function hasErrorDiagnostics(diagnostics) {
|
|
33
|
+
return diagnostics.some((diagnostic) => diagnostic.severity === "error");
|
|
34
|
+
}
|
|
35
|
+
function createDiagnostic(diagnostic) {
|
|
36
|
+
const result = {
|
|
37
|
+
severity: diagnostic.severity,
|
|
38
|
+
code: diagnostic.code,
|
|
39
|
+
message: diagnostic.message,
|
|
40
|
+
span: diagnostic.span === void 0 ? void 0 : Object.freeze({ ...diagnostic.span }),
|
|
41
|
+
notes: diagnostic.notes === void 0 ? void 0 : Object.freeze([...diagnostic.notes])
|
|
42
|
+
};
|
|
43
|
+
if (diagnostic.related !== void 0) result.related = Object.freeze(diagnostic.related.map((item) => Object.freeze({
|
|
44
|
+
message: item.message,
|
|
45
|
+
span: Object.freeze({ ...item.span })
|
|
46
|
+
})));
|
|
47
|
+
return Object.freeze(result);
|
|
48
|
+
}
|
|
49
|
+
function formatSpan(span) {
|
|
50
|
+
const start = span.file.location(span.start);
|
|
51
|
+
const end = span.file.location(span.end);
|
|
52
|
+
return `${start.line}:${start.column}-${end.line}:${end.column} `;
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { DiagnosticBag, createDiagnostic, formatDiagnostic, hasErrorDiagnostics };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=diagnostics.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.mjs","names":[],"sources":["../src/diagnostics.ts"],"sourcesContent":["import type { SourceSpan } from \"./source.ts\";\n\nexport type DiagnosticSeverity = \"info\" | \"warning\" | \"error\";\n\nexport interface RelatedInformation {\n readonly message: string;\n readonly span: SourceSpan;\n}\n\nexport interface Diagnostic {\n readonly severity: DiagnosticSeverity;\n readonly code: string;\n readonly message: string;\n readonly span?: SourceSpan;\n readonly notes?: readonly string[];\n readonly related?: readonly RelatedInformation[];\n}\n\nexport interface DiagnosticFormatOptions {\n readonly includeCode?: boolean;\n readonly includeNotes?: boolean;\n readonly includeRelated?: boolean;\n}\n\nexport interface DiagnosticReporter {\n add(diagnostic: Diagnostic): void;\n}\n\nexport class DiagnosticBag implements DiagnosticReporter {\n private readonly values: Diagnostic[] = [];\n\n public get size(): number {\n return this.values.length;\n }\n\n public constructor(initial: readonly Diagnostic[] = []) {\n this.extend(initial);\n }\n\n public add(diagnostic: Diagnostic): void {\n this.values.push(createDiagnostic(diagnostic));\n }\n\n public extend(diagnostics: readonly Diagnostic[]): void {\n for (const diagnostic of diagnostics) {\n this.add(diagnostic);\n }\n }\n\n public snapshot(): readonly Diagnostic[] {\n return Object.freeze([...this.values]);\n }\n\n public hasErrorsSince(index: number): boolean {\n for (let current = index; current < this.values.length; current++) {\n if (this.values[current].severity === \"error\") {\n return true;\n }\n }\n\n return false;\n }\n}\n\nexport function formatDiagnostic(\n diagnostic: Diagnostic,\n options: DiagnosticFormatOptions = {},\n): string {\n const location = diagnostic.span === undefined ? \"\" : formatSpan(diagnostic.span);\n const code = options.includeCode === false ? \"\" : ` [${diagnostic.code}]`;\n const lines = [`${location}${diagnostic.severity}${code}: ${diagnostic.message}`];\n\n if (options.includeNotes !== false) {\n for (const note of diagnostic.notes ?? []) {\n lines.push(`note: ${note}`);\n }\n }\n\n if (options.includeRelated !== false) {\n for (const related of diagnostic.related ?? []) {\n lines.push(`related ${formatSpan(related.span)}${related.message}`);\n }\n }\n\n return lines.join(\"\\n\");\n}\n\nexport function hasErrorDiagnostics(diagnostics: readonly Diagnostic[]): boolean {\n return diagnostics.some((diagnostic) => diagnostic.severity === \"error\");\n}\n\ntype MutableDiagnostic = { -readonly [K in keyof Diagnostic]: Diagnostic[K] };\n\nexport function createDiagnostic(diagnostic: Diagnostic): Diagnostic {\n const result: MutableDiagnostic = {\n severity: diagnostic.severity,\n code: diagnostic.code,\n message: diagnostic.message,\n span: diagnostic.span === undefined ? undefined : Object.freeze({ ...diagnostic.span }),\n notes: diagnostic.notes === undefined ? undefined : Object.freeze([...diagnostic.notes]),\n };\n\n if (diagnostic.related !== undefined) {\n result.related = Object.freeze(\n diagnostic.related.map((item) =>\n Object.freeze({ message: item.message, span: Object.freeze({ ...item.span }) }),\n ),\n );\n }\n\n return Object.freeze(result);\n}\n\nfunction formatSpan(span: SourceSpan): string {\n const start = span.file.location(span.start);\n const end = span.file.location(span.end);\n\n return `${start.line}:${start.column}-${end.line}:${end.column} `;\n}\n"],"mappings":";AA4BA,IAAa,gBAAb,MAAyD;CACvD,SAAwC,CAAC;CAEzC,IAAW,OAAe;EACxB,OAAO,KAAK,OAAO;CACrB;CAEA,YAAmB,UAAiC,CAAC,GAAG;EACtD,KAAK,OAAO,OAAO;CACrB;CAEA,IAAW,YAA8B;EACvC,KAAK,OAAO,KAAK,iBAAiB,UAAU,CAAC;CAC/C;CAEA,OAAc,aAA0C;EACtD,KAAK,MAAM,cAAc,aACvB,KAAK,IAAI,UAAU;CAEvB;CAEA,WAAyC;EACvC,OAAO,OAAO,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC;CACvC;CAEA,eAAsB,OAAwB;EAC5C,KAAK,IAAI,UAAU,OAAO,UAAU,KAAK,OAAO,QAAQ,WACtD,IAAI,KAAK,OAAO,QAAQ,CAAC,aAAa,SACpC,OAAO;EAIX,OAAO;CACT;AACF;AAEA,SAAgB,iBACd,YACA,UAAmC,CAAC,GAC5B;CACR,MAAM,WAAW,WAAW,SAAS,KAAA,IAAY,KAAK,WAAW,WAAW,IAAI;CAChF,MAAM,OAAO,QAAQ,gBAAgB,QAAQ,KAAK,KAAK,WAAW,KAAK;CACvE,MAAM,QAAQ,CAAC,GAAG,WAAW,WAAW,WAAW,KAAK,IAAI,WAAW,SAAS;CAEhF,IAAI,QAAQ,iBAAiB,OAC3B,KAAK,MAAM,QAAQ,WAAW,SAAS,CAAC,GACtC,MAAM,KAAK,SAAS,MAAM;CAI9B,IAAI,QAAQ,mBAAmB,OAC7B,KAAK,MAAM,WAAW,WAAW,WAAW,CAAC,GAC3C,MAAM,KAAK,WAAW,WAAW,QAAQ,IAAI,IAAI,QAAQ,SAAS;CAItE,OAAO,MAAM,KAAK,IAAI;AACxB;AAEA,SAAgB,oBAAoB,aAA6C;CAC/E,OAAO,YAAY,MAAM,eAAe,WAAW,aAAa,OAAO;AACzE;AAIA,SAAgB,iBAAiB,YAAoC;CACnE,MAAM,SAA4B;EAChC,UAAU,WAAW;EACrB,MAAM,WAAW;EACjB,SAAS,WAAW;EACpB,MAAM,WAAW,SAAS,KAAA,IAAY,KAAA,IAAY,OAAO,OAAO,EAAE,GAAG,WAAW,KAAK,CAAC;EACtF,OAAO,WAAW,UAAU,KAAA,IAAY,KAAA,IAAY,OAAO,OAAO,CAAC,GAAG,WAAW,KAAK,CAAC;CACzF;CAEA,IAAI,WAAW,YAAY,KAAA,GACzB,OAAO,UAAU,OAAO,OACtB,WAAW,QAAQ,KAAK,SACtB,OAAO,OAAO;EAAE,SAAS,KAAK;EAAS,MAAM,OAAO,OAAO,EAAE,GAAG,KAAK,KAAK,CAAC;CAAE,CAAC,CAChF,CACF;CAGF,OAAO,OAAO,OAAO,MAAM;AAC7B;AAEA,SAAS,WAAW,MAA0B;CAC5C,MAAM,QAAQ,KAAK,KAAK,SAAS,KAAK,KAAK;CAC3C,MAAM,MAAM,KAAK,KAAK,SAAS,KAAK,GAAG;CAEvC,OAAO,GAAG,MAAM,KAAK,GAAG,MAAM,OAAO,GAAG,IAAI,KAAK,GAAG,IAAI,OAAO;AACjE"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { SourceRange } from "./ranges.mjs";
|
|
2
|
+
import { SourceFile } from "./source.mjs";
|
|
3
|
+
import { Diagnostic } from "./diagnostics.mjs";
|
|
4
|
+
import { ParserLimit } from "./parser/config.mjs";
|
|
5
|
+
import { SchemaIssue } from "@temelj/standard-schema";
|
|
6
|
+
//#region src/errors.d.ts
|
|
7
|
+
export declare abstract class MdxError extends Error {
|
|
8
|
+
protected constructor(name: string, message: string, options?: ErrorOptions, context?: Function);
|
|
9
|
+
}
|
|
10
|
+
export type InputIssue = Readonly<{
|
|
11
|
+
kind: "htmlTagName";
|
|
12
|
+
name: string;
|
|
13
|
+
}> | Readonly<{
|
|
14
|
+
kind: "mathDelimiterCollision";
|
|
15
|
+
format: "tex";
|
|
16
|
+
nodeKind: "inlineMath" | "displayMath";
|
|
17
|
+
delimiter: "\\)" | "\\]";
|
|
18
|
+
}> | Readonly<{
|
|
19
|
+
kind: "mathMetadata";
|
|
20
|
+
format: "tex";
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
kind: "replacementRange";
|
|
23
|
+
start: number;
|
|
24
|
+
end: number;
|
|
25
|
+
sourceLength: number;
|
|
26
|
+
}> | Readonly<{
|
|
27
|
+
kind: "sourceOffset";
|
|
28
|
+
offset: number;
|
|
29
|
+
sourceLength: number;
|
|
30
|
+
}> | Readonly<{
|
|
31
|
+
kind: "streamCompleted";
|
|
32
|
+
}>;
|
|
33
|
+
export declare class InputError extends MdxError {
|
|
34
|
+
readonly issue: InputIssue;
|
|
35
|
+
private constructor();
|
|
36
|
+
static mathDelimiterCollision(this: void, nodeKind: "inlineMath" | "displayMath", delimiter: "\\)" | "\\]"): InputError;
|
|
37
|
+
static mathMetadataUnsupported(this: void): InputError;
|
|
38
|
+
static invalidHtmlTagName(this: void, name: string): InputError;
|
|
39
|
+
static replacementRangeOutsideSource(this: void, start: number, end: number, sourceLength: number): InputError;
|
|
40
|
+
static sourceOffsetOutsideFile(this: void, offset: number, sourceLength: number): InputError;
|
|
41
|
+
static streamCompleted(this: void): InputError;
|
|
42
|
+
}
|
|
43
|
+
export type ConfigurationIssue = Readonly<{
|
|
44
|
+
kind: "asynchronousPluginInSynchronousProcessor";
|
|
45
|
+
}> | Readonly<{
|
|
46
|
+
kind: "cacheCapacity";
|
|
47
|
+
pluginName: string;
|
|
48
|
+
capacity: number;
|
|
49
|
+
}> | Readonly<{
|
|
50
|
+
kind: "compilerLimit";
|
|
51
|
+
option: string;
|
|
52
|
+
value: number;
|
|
53
|
+
}> | Readonly<{
|
|
54
|
+
kind: "parserLimit";
|
|
55
|
+
option: string;
|
|
56
|
+
value: number;
|
|
57
|
+
minimum: number;
|
|
58
|
+
}> | Readonly<{
|
|
59
|
+
kind: "pluginIntegerOption";
|
|
60
|
+
pluginName: string;
|
|
61
|
+
option: string;
|
|
62
|
+
value: number;
|
|
63
|
+
minimum: number;
|
|
64
|
+
}> | Readonly<{
|
|
65
|
+
kind: "streamLimit";
|
|
66
|
+
option: string;
|
|
67
|
+
value: number;
|
|
68
|
+
minimum: number;
|
|
69
|
+
}> | Readonly<{
|
|
70
|
+
kind: "unifiedPlugin";
|
|
71
|
+
}>;
|
|
72
|
+
export declare class ConfigurationError extends MdxError {
|
|
73
|
+
readonly issue: ConfigurationIssue;
|
|
74
|
+
private constructor();
|
|
75
|
+
static asynchronousPluginInSynchronousProcessor(this: void): ConfigurationError;
|
|
76
|
+
static unsupportedUnifiedPlugin(this: void): ConfigurationError;
|
|
77
|
+
static invalidCacheCapacity(this: void, pluginName: string, capacity: number): ConfigurationError;
|
|
78
|
+
static invalidCompilerLimit(this: void, option: string, value: number): ConfigurationError;
|
|
79
|
+
static invalidStreamLimit(this: void, option: string, value: number, minimum: number): ConfigurationError;
|
|
80
|
+
static invalidParserLimit(this: void, option: string, value: number, minimum: number): ConfigurationError;
|
|
81
|
+
static invalidPluginIntegerOption(this: void, pluginName: string, option: string, value: number, minimum: number): ConfigurationError;
|
|
82
|
+
}
|
|
83
|
+
export type TransformTarget = "document" | "html";
|
|
84
|
+
export interface TransformIssue {
|
|
85
|
+
readonly kind: "threw" | "reported";
|
|
86
|
+
readonly target: TransformTarget;
|
|
87
|
+
readonly pluginName: string;
|
|
88
|
+
}
|
|
89
|
+
export declare class TransformError extends MdxError {
|
|
90
|
+
readonly issue: TransformIssue;
|
|
91
|
+
readonly file: SourceFile;
|
|
92
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
93
|
+
private constructor();
|
|
94
|
+
static pluginTransformFailed(this: void, target: TransformTarget, pluginName: string, file: SourceFile, diagnostics: readonly Diagnostic[], cause: unknown): TransformError;
|
|
95
|
+
static pluginReportedErrors(this: void, target: TransformTarget, pluginName: string, file: SourceFile, diagnostics: readonly Diagnostic[]): TransformError;
|
|
96
|
+
}
|
|
97
|
+
export type CompilationInvariant = "defaultExportBindingMissing" | "jsxAttributeExpressionEmpty" | "jsxAttributeNameMissing" | "jsxElementNameMissing" | "jsxElementOpeningMissing" | "jsxIdentifierNameMissing" | "jsxMemberExpressionIncomplete" | "jsxNamespaceIncomplete" | "jsxSpreadArgumentMissing" | "multipleDefaultExports" | "unsupportedJsxName";
|
|
98
|
+
export type CompilationIssue = Readonly<{
|
|
99
|
+
kind: "generation";
|
|
100
|
+
}> | Readonly<{
|
|
101
|
+
kind: "generatedProgram";
|
|
102
|
+
}> | Readonly<{
|
|
103
|
+
kind: "invalidDocument";
|
|
104
|
+
invariant: CompilationInvariant;
|
|
105
|
+
detail?: string;
|
|
106
|
+
}>;
|
|
107
|
+
export declare class CompileError extends MdxError {
|
|
108
|
+
readonly issue: CompilationIssue;
|
|
109
|
+
private constructor();
|
|
110
|
+
static generationFailed(this: void, cause: unknown): CompileError;
|
|
111
|
+
static multipleDefaultExports(this: void): CompileError;
|
|
112
|
+
static defaultExportBindingMissing(this: void): CompileError;
|
|
113
|
+
static jsxElementOpeningMissing(this: void): CompileError;
|
|
114
|
+
static jsxElementNameMissing(this: void): CompileError;
|
|
115
|
+
static jsxSpreadArgumentMissing(this: void): CompileError;
|
|
116
|
+
static jsxAttributeNameMissing(this: void): CompileError;
|
|
117
|
+
static jsxAttributeExpressionEmpty(this: void): CompileError;
|
|
118
|
+
static jsxIdentifierNameMissing(this: void): CompileError;
|
|
119
|
+
static jsxMemberExpressionIncomplete(this: void): CompileError;
|
|
120
|
+
static jsxNamespaceIncomplete(this: void): CompileError;
|
|
121
|
+
static unsupportedJsxName(this: void, nodeType: string): CompileError;
|
|
122
|
+
static generatedProgramInvalid(this: void, cause: unknown): CompileError;
|
|
123
|
+
private static invalidDocument;
|
|
124
|
+
}
|
|
125
|
+
export declare class ParseError extends MdxError {
|
|
126
|
+
readonly file: SourceFile;
|
|
127
|
+
readonly diagnostics: readonly [Diagnostic, ...Diagnostic[]];
|
|
128
|
+
private constructor();
|
|
129
|
+
static invalidSyntax(this: void, file: SourceFile, diagnostics: readonly [Diagnostic, ...Diagnostic[]]): ParseError;
|
|
130
|
+
}
|
|
131
|
+
export type CompileLimit = "maximumGeneratedCodeBytes" | "maximumSourceMapBytes";
|
|
132
|
+
export declare class LimitError extends MdxError {
|
|
133
|
+
readonly file: SourceFile;
|
|
134
|
+
readonly diagnostics: readonly [Diagnostic];
|
|
135
|
+
readonly limit: ParserLimit | CompileLimit;
|
|
136
|
+
readonly maximum: number;
|
|
137
|
+
readonly actual: number | undefined;
|
|
138
|
+
private constructor();
|
|
139
|
+
static exceeded(this: void, file: SourceFile, limit: ParserLimit | CompileLimit, maximum: number, range?: SourceRange, actual?: number): LimitError;
|
|
140
|
+
}
|
|
141
|
+
export type FrontmatterIssue = Readonly<{
|
|
142
|
+
kind: "schema";
|
|
143
|
+
issues: readonly SchemaIssue[];
|
|
144
|
+
}> | Readonly<{
|
|
145
|
+
kind: "transport";
|
|
146
|
+
reason: string;
|
|
147
|
+
}>;
|
|
148
|
+
export declare class FrontmatterError extends MdxError {
|
|
149
|
+
readonly file: SourceFile;
|
|
150
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
151
|
+
readonly issue: FrontmatterIssue;
|
|
152
|
+
private constructor();
|
|
153
|
+
static schemaValidationFailed(this: void, file: SourceFile, diagnostics: readonly Diagnostic[], issues: readonly SchemaIssue[]): FrontmatterError;
|
|
154
|
+
static nonTransportableValue(this: void, file: SourceFile, origin: SourceRange | undefined, reason: string): FrontmatterError;
|
|
155
|
+
}
|
|
156
|
+
//#endregion
|
|
157
|
+
//# sourceMappingURL=errors.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.mts","names":[],"sources":["../src/errors.ts"],"mappings":";;;;;;8BASsB,iBAAiB;YAC5B,YACP,cACA,iBACA,UAAS,cACT,UAAU;;YAWF,aACR;EAAW;EAAqB;KAChC;EACE;EACA;EACA;EACA;KAEF;EAAW;EAAsB;KACjC;EAAW;EAA0B;EAAe;EAAa;KACjE;EAAW;EAAsB;EAAgB;KACjD;EAAW;;qBAEF,mBAAmB;WACd,OAAO;UAEhB;SAKO,uBACZ,YACA,wCACA,2BACC;SAQW,wBAAwB,aAAa;SAQrC,mBAAmB,YAAY,eAAe;SAQ9C,8BACZ,YACA,eACA,aACA,uBACC;SAQW,wBACZ,YACA,gBACA,uBACC;SAQW,gBAAgB,aAAa;;YASjC,qBACR;EAAW;KACX;EAAW;EAAuB;EAAoB;KACtD;EAAW;EAAuB;EAAgB;KAClD;EAAW;EAAqB;EAAgB;EAAe;KAC/D;EACE;EACA;EACA;EACA;EACA;KAEF;EAAW;EAAqB;EAAgB;EAAe;KAC/D;EAAW;;qBAEF,2BAA2B;WACtB,OAAO;UAEhB;SAKO,yCAAyC,aAAa;SAQtD,yBAAyB,aAAa;SAQtC,qBACZ,YACA,oBACA,mBACC;SAQW,qBACZ,YACA,gBACA,gBACC;SAQW,mBACZ,YACA,gBACA,eACA,kBACC;SAQW,mBACZ,YACA,gBACA,eACA,kBACC;SAQW,2BACZ,YACA,oBACA,gBACA,eACA,kBACC;;YASO;iBAEK;WACN;WACA,QAAQ;WACR;;qBAGE,uBAAuB;WAClB,OAAO;WACP,MAAM;WACN,sBAAsB;UAE/B;SAkBO,sBACZ,YACA,QAAQ,iBACR,oBACA,MAAM,YACN,sBAAsB,cACtB,iBACC;SAUW,qBACZ,YACA,QAAQ,iBACR,oBACA,MAAM,YACN,sBAAsB,eACrB;;YAWO;YAaA,mBACR;EAAW;KACX;EAAW;KACX;EAAW;EAAyB,WAAW;EAAsB;;qBAE5D,qBAAqB;WAChB,OAAO;UAEhB;SAUO,iBAAiB,YAAY,iBAAiB;SAS9C,uBAAuB,aAAa;SASpC,4BAA4B,aAAa;SASzC,yBAAyB,aAAa;SAStC,sBAAsB,aAAa;SASnC,yBAAyB,aAAa;SAStC,wBAAwB,aAAa;SASrC,4BAA4B,aAAa;SASzC,yBAAyB,aAAa;SAStC,8BAA8B,aAAa;SAS3C,uBAAuB,aAAa;SASpC,mBAAmB,YAAY,mBAAmB;SASlD,wBAAwB,YAAY,iBAAiB;iBASpD;;qBAmBJ,mBAAmB;WACd,MAAM;WACN,uBAAuB,eAAe;UAE/C;SAMO,cACZ,YACA,MAAM,YACN,uBAAuB,eAAe,gBACrC;;YAKO;qBAEC,mBAAmB;WACd,MAAM;WACN,uBAAuB;WACvB,OAAO,cAAc;WACrB;WACA;UAET;SAuBO,SACZ,YACA,MAAM,YACN,OAAO,cAAc,cACrB,iBACA,QAAO,aACP,kBACC;;YAKO,mBACR;EAAW;EAAgB,iBAAiB;KAC5C;EAAW;EAAmB;;qBAErB,yBAAyB;WACpB,MAAM;WACN,sBAAsB;WACtB,OAAO;UAEhB;SAiBO,uBACZ,YACA,MAAM,YACN,sBAAsB,cACtB,iBAAiB,gBAChB;SASW,sBACZ,YACA,MAAM,YACN,QAAQ,yBACR,iBACC"}
|