@ai-matrx/content-ir 0.20.1 → 0.21.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/CHANGELOG.md +17 -0
- package/dist/index.cjs +442 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +419 -1
- package/dist/index.js.map +1 -1
- package/dist/source.cjs +442 -0
- package/dist/source.cjs.map +1 -1
- package/dist/source.d.cts +157 -1
- package/dist/source.d.ts +157 -1
- package/dist/source.js +419 -1
- package/dist/source.js.map +1 -1
- package/package.json +1 -1
package/dist/source.d.cts
CHANGED
|
@@ -739,4 +739,160 @@ declare function findTableStart(lines: readonly string[], from?: number): number
|
|
|
739
739
|
/** Index just past the table whose header is at `start` (header, delimiter, then continuation rows). */
|
|
740
740
|
declare function findTableEnd(lines: readonly string[], start: number): number;
|
|
741
741
|
|
|
742
|
-
|
|
742
|
+
/** Replace every inline code span with its text (`x` → x); fences untouched. */
|
|
743
|
+
declare function unwrapCodeSpans(text: string): string;
|
|
744
|
+
/** Remove every inline code span entirely; fences untouched. */
|
|
745
|
+
declare function removeCodeSpans(text: string): string;
|
|
746
|
+
/**
|
|
747
|
+
* Rewrite every fenced code block. `fn` gets the fence's language ("" when
|
|
748
|
+
* none), its body, and whether it closed; an unclosed fence (a stream still
|
|
749
|
+
* arriving) runs to the end of the text. Code spans and prose are untouched.
|
|
750
|
+
*/
|
|
751
|
+
declare function replaceFences(text: string, fn: (fence: {
|
|
752
|
+
lang: string;
|
|
753
|
+
body: string;
|
|
754
|
+
closed: boolean;
|
|
755
|
+
raw: string;
|
|
756
|
+
}) => string): string;
|
|
757
|
+
/**
|
|
758
|
+
* When the whole (trimmed) text is ONE fenced block — an LLM's ```json … ```
|
|
759
|
+
* payload — its language and body; otherwise null. `allowUnclosed` accepts a
|
|
760
|
+
* fence still streaming (no closer yet).
|
|
761
|
+
*/
|
|
762
|
+
declare function soleFence(text: string, options?: {
|
|
763
|
+
allowUnclosed?: boolean;
|
|
764
|
+
}): {
|
|
765
|
+
lang: string;
|
|
766
|
+
body: string;
|
|
767
|
+
closed: boolean;
|
|
768
|
+
} | null;
|
|
769
|
+
|
|
770
|
+
/**
|
|
771
|
+
* Markdown → plain text, for places that must show WORDS rather than render a
|
|
772
|
+
* document: table cells, tooltips, meta descriptions, chart labels, aria-labels,
|
|
773
|
+
* exported slide text.
|
|
774
|
+
*
|
|
775
|
+
* This is NOT a renderer and never competes with one. When the surface can
|
|
776
|
+
* afford real formatting, render the markdown through the canonical path
|
|
777
|
+
* (`BasicMarkdownContent` / `MarkdownStream`) instead. Reach for this only when
|
|
778
|
+
* a single line of text is the product — where a rendered `<strong>` cannot go
|
|
779
|
+
* and raw `**asterisks**` would otherwise reach a user's eyes.
|
|
780
|
+
*
|
|
781
|
+
* Deliberately conservative: it unwraps the inline emphasis markers people
|
|
782
|
+
* actually hit (bold, italic, inline code, strikethrough, links) and leaves
|
|
783
|
+
* everything else alone. Stray, unpaired `*` and `_` survive untouched, because
|
|
784
|
+
* a lone asterisk in prose is prose — mangling it would be worse than the
|
|
785
|
+
* problem this solves.
|
|
786
|
+
*/
|
|
787
|
+
/** Make one math expression's INNER content readable as words. */
|
|
788
|
+
declare function mathToReadable(expression: string): string;
|
|
789
|
+
/**
|
|
790
|
+
* Strip inline markdown emphasis so the text reads cleanly as prose.
|
|
791
|
+
*
|
|
792
|
+
* Returns "" for nullish input so callers can pass a possibly-absent DB column
|
|
793
|
+
* straight in.
|
|
794
|
+
*/
|
|
795
|
+
declare function markdownToPlainText(value: string | null | undefined): string;
|
|
796
|
+
/**
|
|
797
|
+
* Stored content → the READABLE markdown a person meant, for places that take
|
|
798
|
+
* the text OUT of its home (a flashcard back, a task description, a clipboard
|
|
799
|
+
* "plain text" copy). Kind envelopes are storage plumbing, not words: an
|
|
800
|
+
* `<artifact …>body</artifact>` wrapper (a materialized table, a canvas) is
|
|
801
|
+
* replaced by its body, so a reader never sees the raw tag. Everything else is
|
|
802
|
+
* kept byte for byte — the offset-preserving source tokenizer draws the
|
|
803
|
+
* boundaries, so a code fence that merely MENTIONS `<artifact>` is untouched.
|
|
804
|
+
*/
|
|
805
|
+
declare function unwrapKindEnvelopes(value: string | null | undefined): string;
|
|
806
|
+
|
|
807
|
+
declare const cleanMarkdown: (text: string) => string;
|
|
808
|
+
|
|
809
|
+
/** Where a code block carries its raw fence meta (block.metadata / stream block data). */
|
|
810
|
+
declare const FENCE_META_KEY = "fenceMeta";
|
|
811
|
+
interface FenceInfo {
|
|
812
|
+
/** The language token alone (`ts`), or undefined for a bare fence. */
|
|
813
|
+
language?: string;
|
|
814
|
+
/** Everything after the language, verbatim; undefined when empty. */
|
|
815
|
+
meta?: string;
|
|
816
|
+
}
|
|
817
|
+
interface FenceMeta {
|
|
818
|
+
/** A filename or caption shown in the code block header. */
|
|
819
|
+
title?: string;
|
|
820
|
+
/** 1-based line numbers to highlight, ascending, deduplicated. */
|
|
821
|
+
highlightLines: number[];
|
|
822
|
+
/** Explicit line-number request (`showLineNumbers`). */
|
|
823
|
+
showLineNumbers?: boolean;
|
|
824
|
+
/** First line number when numbering starts somewhere other than 1. */
|
|
825
|
+
startLine?: number;
|
|
826
|
+
}
|
|
827
|
+
/** Split `ts:app.tsx {1,3} title="x"` into the language token and its meta. */
|
|
828
|
+
declare function splitFenceInfo(info: string): FenceInfo;
|
|
829
|
+
/** Parse a fence's meta string (from splitFenceInfo) into render options. */
|
|
830
|
+
declare function parseFenceMeta(meta: string | undefined | null): FenceMeta;
|
|
831
|
+
/** `1,3-5, 9` → [1, 3, 4, 5, 9]. Malformed parts are skipped. */
|
|
832
|
+
declare function parseLineRanges(spec: string): number[];
|
|
833
|
+
|
|
834
|
+
/** A line that opens a container directive: 3+ colons, then a name. */
|
|
835
|
+
declare const DIRECTIVE_CONTAINER_OPEN: RegExp;
|
|
836
|
+
declare class DirectiveContainerTracker {
|
|
837
|
+
private readonly stack;
|
|
838
|
+
private fence;
|
|
839
|
+
constructor(openingLine: string);
|
|
840
|
+
/** Feed the next line (after the opener). True once the outermost container has closed on this line. */
|
|
841
|
+
consume(line: string): boolean;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
declare const TITLED_IMAGE_LINE: RegExp;
|
|
845
|
+
|
|
846
|
+
declare function isInsideInlineCode(line: string, at: number): boolean;
|
|
847
|
+
/** Index of the first `needle` in `line` at or after `from` that is not inside inline code. */
|
|
848
|
+
declare function indexOutsideInlineCode(line: string, needle: string, from?: number): number;
|
|
849
|
+
/**
|
|
850
|
+
* Whether `text` (a line still arriving) holds a backtick run with no closing
|
|
851
|
+
* run of the same length yet — a code span that may still close. A kind
|
|
852
|
+
* after it may be inside that span (quoted source), so a live split waits
|
|
853
|
+
* for the line to end, when the span rule above answers for certain.
|
|
854
|
+
*/
|
|
855
|
+
declare function hasUnclosedBacktickRun(text: string): boolean;
|
|
856
|
+
|
|
857
|
+
interface XmlBalanceState {
|
|
858
|
+
/** Open same-name sections, counting the container itself (starts at 1). */
|
|
859
|
+
depth: number;
|
|
860
|
+
/** The fenced code block we are inside, read by THE one closer (@ai-matrx/content-ir/source). */
|
|
861
|
+
fence: FenceReader | null;
|
|
862
|
+
}
|
|
863
|
+
declare function initialXmlBalance(): XmlBalanceState;
|
|
864
|
+
interface XmlBalanceOptions {
|
|
865
|
+
/** Ignore tags inside ``` / ~~~ fenced code (default true). */
|
|
866
|
+
trackFences?: boolean;
|
|
867
|
+
/** Count nested same-name openers (default true). False = first closer wins. */
|
|
868
|
+
nest?: boolean;
|
|
869
|
+
}
|
|
870
|
+
/**
|
|
871
|
+
* Scan ONE line inside an open `<tagName>` section, in source order.
|
|
872
|
+
*
|
|
873
|
+
* Returns the character index where the container's own closing tag starts
|
|
874
|
+
* (the closer that brings depth to zero), or -1 when the section is still
|
|
875
|
+
* open after this line. Mutates `state` (depth and fence tracking).
|
|
876
|
+
*/
|
|
877
|
+
declare function findBalancedXmlClose(line: string, tagName: string, state: XmlBalanceState, { trackFences, nest }?: XmlBalanceOptions): number;
|
|
878
|
+
|
|
879
|
+
/**
|
|
880
|
+
* Index of the first WHOLE table header at or after `from` (THE rule's
|
|
881
|
+
* `tableStartsAt`: a same-width delimiter row under it, no lazy line, no indented
|
|
882
|
+
* code); -1 when none. `findTableStart` is the streaming-lenient twin (a pipe-led
|
|
883
|
+
* row opens before its delimiter arrives).
|
|
884
|
+
*/
|
|
885
|
+
declare function findWholeTableStart(lines: readonly string[], from?: number): number;
|
|
886
|
+
/** A line that starts like a pipe-led row — even a lone `|` still growing. */
|
|
887
|
+
declare function startsLikeTableRow(line: string): boolean;
|
|
888
|
+
/** A delimiter row still arriving: only pipes, colons, dashes and spaces, with a dash so far. */
|
|
889
|
+
declare function isGrowingDelimiterRow(line: string): boolean;
|
|
890
|
+
/**
|
|
891
|
+
* The trailing lines of a streaming text that belong to a table being written
|
|
892
|
+
* (pipe-led rows, even partial; pipe-less rows once a delimiter follows the
|
|
893
|
+
* header): the start index, or `end` when the tail is not a table. A lone
|
|
894
|
+
* pipe-less line is never claimed — it may be prose.
|
|
895
|
+
*/
|
|
896
|
+
declare function trailingTableStart(lines: readonly string[], end?: number): number;
|
|
897
|
+
|
|
898
|
+
export { AFTER_WINDOW, BacktickRuns, type BlockIslandType, CALLOUT_NAMES, type CodePointIndex, type CodeRange, DIRECTIVE_CONTAINER_OPEN, DirectiveContainerTracker, type DisturbedIsland, FENCE_META_KEY, FENCE_OPENER_WHITESPACE, FENCE_WHITESPACE, type FenceEnd, type FenceInfo, type FenceLineKind, type FenceLines, type FenceMeta, type FenceOpener, FenceReader, type InlineIslandType, type InnerFenceLine, type IslandMeta, type IslandType, type LinkDefinition, type MapOptions, type MappedPosition, type MappedRange, NESTING_FENCE_LANGUAGES, type ReadXmlTag, type SourceBlock, type SourceBlockKind, type SourceChange, type SourceEdit, type SourceIsland, type SourceSpan, SourceSpliceError, type SourceSpliceErrorCode, type SpliceIntegrity, type SpliceOptions, type SpliceResult, TITLED_IMAGE_LINE, type TokenizeOptions, type XmlBalanceOptions, type XmlBalanceState, XmlContainerTracker, blockAt, blockEdit, blockRangeEdit, buildCodePointIndex, classifyInnerFenceLine, cleanMarkdown, closeFence, codeSpanText, collectLinkDefinitions, continuesTable, fenceLineKinds, fenceNestsInnerFences, fenceOpenerOf, fenceParts, findBalancedXmlClose, findCodeRanges, findInlineCodeSpans, findLinkDefinitionLines, findTableEnd, findTableStart, findWholeTableStart, hasUnclosedBacktickRun, indexOutsideInlineCode, initialXmlBalance, isEscapedBracketMath, isGfmDelimiterRow, isGrowingDelimiterRow, isHtmlBlockTagName, isInsideInlineCode, isMathPlaceholder, isPipeLedRow, isSingleDollarMath, islandEdit, joinSource, lineIndent, listIslands, looksLikeDisplayMath, looksLikeOpenInlineMath, mapCodeRanges, mapInlineCodeSpans, mapPosition, mapRange, markdownToPlainText, mathToReadable, normalizeLinkLabel, opensStrippedHtmlBlock, opensTable, pairDisplayMath, parseFenceMeta, parseFenceOpener, parseLineRanges, pendingCodeSpanStart, pendingDisplayMathOpener, readXmlTag, removeCodeSpans, replaceFences, resolveReferenceLinks, rowCells, singleDollarAfter, singleDollarMathEnd, soleFence, spliceSave, splitFenceInfo, splitRowSegments, splitsSurrogatePair, startsHtmlBlock, startsLikeTableRow, startsPipelessTable, tableContainerIndent, tableStartsAt, toCodePointOffset, toUtf16Offset, tokenizeSource, trailingTableStart, trimFenceLine, unescapeCellPipes, unwrapCodeSpans, unwrapKindEnvelopes };
|
package/dist/source.d.ts
CHANGED
|
@@ -739,4 +739,160 @@ declare function findTableStart(lines: readonly string[], from?: number): number
|
|
|
739
739
|
/** Index just past the table whose header is at `start` (header, delimiter, then continuation rows). */
|
|
740
740
|
declare function findTableEnd(lines: readonly string[], start: number): number;
|
|
741
741
|
|
|
742
|
-
|
|
742
|
+
/** Replace every inline code span with its text (`x` → x); fences untouched. */
|
|
743
|
+
declare function unwrapCodeSpans(text: string): string;
|
|
744
|
+
/** Remove every inline code span entirely; fences untouched. */
|
|
745
|
+
declare function removeCodeSpans(text: string): string;
|
|
746
|
+
/**
|
|
747
|
+
* Rewrite every fenced code block. `fn` gets the fence's language ("" when
|
|
748
|
+
* none), its body, and whether it closed; an unclosed fence (a stream still
|
|
749
|
+
* arriving) runs to the end of the text. Code spans and prose are untouched.
|
|
750
|
+
*/
|
|
751
|
+
declare function replaceFences(text: string, fn: (fence: {
|
|
752
|
+
lang: string;
|
|
753
|
+
body: string;
|
|
754
|
+
closed: boolean;
|
|
755
|
+
raw: string;
|
|
756
|
+
}) => string): string;
|
|
757
|
+
/**
|
|
758
|
+
* When the whole (trimmed) text is ONE fenced block — an LLM's ```json … ```
|
|
759
|
+
* payload — its language and body; otherwise null. `allowUnclosed` accepts a
|
|
760
|
+
* fence still streaming (no closer yet).
|
|
761
|
+
*/
|
|
762
|
+
declare function soleFence(text: string, options?: {
|
|
763
|
+
allowUnclosed?: boolean;
|
|
764
|
+
}): {
|
|
765
|
+
lang: string;
|
|
766
|
+
body: string;
|
|
767
|
+
closed: boolean;
|
|
768
|
+
} | null;
|
|
769
|
+
|
|
770
|
+
/**
|
|
771
|
+
* Markdown → plain text, for places that must show WORDS rather than render a
|
|
772
|
+
* document: table cells, tooltips, meta descriptions, chart labels, aria-labels,
|
|
773
|
+
* exported slide text.
|
|
774
|
+
*
|
|
775
|
+
* This is NOT a renderer and never competes with one. When the surface can
|
|
776
|
+
* afford real formatting, render the markdown through the canonical path
|
|
777
|
+
* (`BasicMarkdownContent` / `MarkdownStream`) instead. Reach for this only when
|
|
778
|
+
* a single line of text is the product — where a rendered `<strong>` cannot go
|
|
779
|
+
* and raw `**asterisks**` would otherwise reach a user's eyes.
|
|
780
|
+
*
|
|
781
|
+
* Deliberately conservative: it unwraps the inline emphasis markers people
|
|
782
|
+
* actually hit (bold, italic, inline code, strikethrough, links) and leaves
|
|
783
|
+
* everything else alone. Stray, unpaired `*` and `_` survive untouched, because
|
|
784
|
+
* a lone asterisk in prose is prose — mangling it would be worse than the
|
|
785
|
+
* problem this solves.
|
|
786
|
+
*/
|
|
787
|
+
/** Make one math expression's INNER content readable as words. */
|
|
788
|
+
declare function mathToReadable(expression: string): string;
|
|
789
|
+
/**
|
|
790
|
+
* Strip inline markdown emphasis so the text reads cleanly as prose.
|
|
791
|
+
*
|
|
792
|
+
* Returns "" for nullish input so callers can pass a possibly-absent DB column
|
|
793
|
+
* straight in.
|
|
794
|
+
*/
|
|
795
|
+
declare function markdownToPlainText(value: string | null | undefined): string;
|
|
796
|
+
/**
|
|
797
|
+
* Stored content → the READABLE markdown a person meant, for places that take
|
|
798
|
+
* the text OUT of its home (a flashcard back, a task description, a clipboard
|
|
799
|
+
* "plain text" copy). Kind envelopes are storage plumbing, not words: an
|
|
800
|
+
* `<artifact …>body</artifact>` wrapper (a materialized table, a canvas) is
|
|
801
|
+
* replaced by its body, so a reader never sees the raw tag. Everything else is
|
|
802
|
+
* kept byte for byte — the offset-preserving source tokenizer draws the
|
|
803
|
+
* boundaries, so a code fence that merely MENTIONS `<artifact>` is untouched.
|
|
804
|
+
*/
|
|
805
|
+
declare function unwrapKindEnvelopes(value: string | null | undefined): string;
|
|
806
|
+
|
|
807
|
+
declare const cleanMarkdown: (text: string) => string;
|
|
808
|
+
|
|
809
|
+
/** Where a code block carries its raw fence meta (block.metadata / stream block data). */
|
|
810
|
+
declare const FENCE_META_KEY = "fenceMeta";
|
|
811
|
+
interface FenceInfo {
|
|
812
|
+
/** The language token alone (`ts`), or undefined for a bare fence. */
|
|
813
|
+
language?: string;
|
|
814
|
+
/** Everything after the language, verbatim; undefined when empty. */
|
|
815
|
+
meta?: string;
|
|
816
|
+
}
|
|
817
|
+
interface FenceMeta {
|
|
818
|
+
/** A filename or caption shown in the code block header. */
|
|
819
|
+
title?: string;
|
|
820
|
+
/** 1-based line numbers to highlight, ascending, deduplicated. */
|
|
821
|
+
highlightLines: number[];
|
|
822
|
+
/** Explicit line-number request (`showLineNumbers`). */
|
|
823
|
+
showLineNumbers?: boolean;
|
|
824
|
+
/** First line number when numbering starts somewhere other than 1. */
|
|
825
|
+
startLine?: number;
|
|
826
|
+
}
|
|
827
|
+
/** Split `ts:app.tsx {1,3} title="x"` into the language token and its meta. */
|
|
828
|
+
declare function splitFenceInfo(info: string): FenceInfo;
|
|
829
|
+
/** Parse a fence's meta string (from splitFenceInfo) into render options. */
|
|
830
|
+
declare function parseFenceMeta(meta: string | undefined | null): FenceMeta;
|
|
831
|
+
/** `1,3-5, 9` → [1, 3, 4, 5, 9]. Malformed parts are skipped. */
|
|
832
|
+
declare function parseLineRanges(spec: string): number[];
|
|
833
|
+
|
|
834
|
+
/** A line that opens a container directive: 3+ colons, then a name. */
|
|
835
|
+
declare const DIRECTIVE_CONTAINER_OPEN: RegExp;
|
|
836
|
+
declare class DirectiveContainerTracker {
|
|
837
|
+
private readonly stack;
|
|
838
|
+
private fence;
|
|
839
|
+
constructor(openingLine: string);
|
|
840
|
+
/** Feed the next line (after the opener). True once the outermost container has closed on this line. */
|
|
841
|
+
consume(line: string): boolean;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
declare const TITLED_IMAGE_LINE: RegExp;
|
|
845
|
+
|
|
846
|
+
declare function isInsideInlineCode(line: string, at: number): boolean;
|
|
847
|
+
/** Index of the first `needle` in `line` at or after `from` that is not inside inline code. */
|
|
848
|
+
declare function indexOutsideInlineCode(line: string, needle: string, from?: number): number;
|
|
849
|
+
/**
|
|
850
|
+
* Whether `text` (a line still arriving) holds a backtick run with no closing
|
|
851
|
+
* run of the same length yet — a code span that may still close. A kind
|
|
852
|
+
* after it may be inside that span (quoted source), so a live split waits
|
|
853
|
+
* for the line to end, when the span rule above answers for certain.
|
|
854
|
+
*/
|
|
855
|
+
declare function hasUnclosedBacktickRun(text: string): boolean;
|
|
856
|
+
|
|
857
|
+
interface XmlBalanceState {
|
|
858
|
+
/** Open same-name sections, counting the container itself (starts at 1). */
|
|
859
|
+
depth: number;
|
|
860
|
+
/** The fenced code block we are inside, read by THE one closer (@ai-matrx/content-ir/source). */
|
|
861
|
+
fence: FenceReader | null;
|
|
862
|
+
}
|
|
863
|
+
declare function initialXmlBalance(): XmlBalanceState;
|
|
864
|
+
interface XmlBalanceOptions {
|
|
865
|
+
/** Ignore tags inside ``` / ~~~ fenced code (default true). */
|
|
866
|
+
trackFences?: boolean;
|
|
867
|
+
/** Count nested same-name openers (default true). False = first closer wins. */
|
|
868
|
+
nest?: boolean;
|
|
869
|
+
}
|
|
870
|
+
/**
|
|
871
|
+
* Scan ONE line inside an open `<tagName>` section, in source order.
|
|
872
|
+
*
|
|
873
|
+
* Returns the character index where the container's own closing tag starts
|
|
874
|
+
* (the closer that brings depth to zero), or -1 when the section is still
|
|
875
|
+
* open after this line. Mutates `state` (depth and fence tracking).
|
|
876
|
+
*/
|
|
877
|
+
declare function findBalancedXmlClose(line: string, tagName: string, state: XmlBalanceState, { trackFences, nest }?: XmlBalanceOptions): number;
|
|
878
|
+
|
|
879
|
+
/**
|
|
880
|
+
* Index of the first WHOLE table header at or after `from` (THE rule's
|
|
881
|
+
* `tableStartsAt`: a same-width delimiter row under it, no lazy line, no indented
|
|
882
|
+
* code); -1 when none. `findTableStart` is the streaming-lenient twin (a pipe-led
|
|
883
|
+
* row opens before its delimiter arrives).
|
|
884
|
+
*/
|
|
885
|
+
declare function findWholeTableStart(lines: readonly string[], from?: number): number;
|
|
886
|
+
/** A line that starts like a pipe-led row — even a lone `|` still growing. */
|
|
887
|
+
declare function startsLikeTableRow(line: string): boolean;
|
|
888
|
+
/** A delimiter row still arriving: only pipes, colons, dashes and spaces, with a dash so far. */
|
|
889
|
+
declare function isGrowingDelimiterRow(line: string): boolean;
|
|
890
|
+
/**
|
|
891
|
+
* The trailing lines of a streaming text that belong to a table being written
|
|
892
|
+
* (pipe-led rows, even partial; pipe-less rows once a delimiter follows the
|
|
893
|
+
* header): the start index, or `end` when the tail is not a table. A lone
|
|
894
|
+
* pipe-less line is never claimed — it may be prose.
|
|
895
|
+
*/
|
|
896
|
+
declare function trailingTableStart(lines: readonly string[], end?: number): number;
|
|
897
|
+
|
|
898
|
+
export { AFTER_WINDOW, BacktickRuns, type BlockIslandType, CALLOUT_NAMES, type CodePointIndex, type CodeRange, DIRECTIVE_CONTAINER_OPEN, DirectiveContainerTracker, type DisturbedIsland, FENCE_META_KEY, FENCE_OPENER_WHITESPACE, FENCE_WHITESPACE, type FenceEnd, type FenceInfo, type FenceLineKind, type FenceLines, type FenceMeta, type FenceOpener, FenceReader, type InlineIslandType, type InnerFenceLine, type IslandMeta, type IslandType, type LinkDefinition, type MapOptions, type MappedPosition, type MappedRange, NESTING_FENCE_LANGUAGES, type ReadXmlTag, type SourceBlock, type SourceBlockKind, type SourceChange, type SourceEdit, type SourceIsland, type SourceSpan, SourceSpliceError, type SourceSpliceErrorCode, type SpliceIntegrity, type SpliceOptions, type SpliceResult, TITLED_IMAGE_LINE, type TokenizeOptions, type XmlBalanceOptions, type XmlBalanceState, XmlContainerTracker, blockAt, blockEdit, blockRangeEdit, buildCodePointIndex, classifyInnerFenceLine, cleanMarkdown, closeFence, codeSpanText, collectLinkDefinitions, continuesTable, fenceLineKinds, fenceNestsInnerFences, fenceOpenerOf, fenceParts, findBalancedXmlClose, findCodeRanges, findInlineCodeSpans, findLinkDefinitionLines, findTableEnd, findTableStart, findWholeTableStart, hasUnclosedBacktickRun, indexOutsideInlineCode, initialXmlBalance, isEscapedBracketMath, isGfmDelimiterRow, isGrowingDelimiterRow, isHtmlBlockTagName, isInsideInlineCode, isMathPlaceholder, isPipeLedRow, isSingleDollarMath, islandEdit, joinSource, lineIndent, listIslands, looksLikeDisplayMath, looksLikeOpenInlineMath, mapCodeRanges, mapInlineCodeSpans, mapPosition, mapRange, markdownToPlainText, mathToReadable, normalizeLinkLabel, opensStrippedHtmlBlock, opensTable, pairDisplayMath, parseFenceMeta, parseFenceOpener, parseLineRanges, pendingCodeSpanStart, pendingDisplayMathOpener, readXmlTag, removeCodeSpans, replaceFences, resolveReferenceLinks, rowCells, singleDollarAfter, singleDollarMathEnd, soleFence, spliceSave, splitFenceInfo, splitRowSegments, splitsSurrogatePair, startsHtmlBlock, startsLikeTableRow, startsPipelessTable, tableContainerIndent, tableStartsAt, toCodePointOffset, toUtf16Offset, tokenizeSource, trailingTableStart, trimFenceLine, unescapeCellPipes, unwrapCodeSpans, unwrapKindEnvelopes };
|