safe-mdx 1.6.0 → 1.8.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.
Files changed (43) hide show
  1. package/README.md +78 -12
  2. package/dist/html/html-and-md.test.js +14 -41
  3. package/dist/html/html-and-md.test.js.map +1 -1
  4. package/dist/html/html-to-mdx-ast.d.ts +26 -1
  5. package/dist/html/html-to-mdx-ast.d.ts.map +1 -1
  6. package/dist/html/html-to-mdx-ast.js +40 -0
  7. package/dist/html/html-to-mdx-ast.js.map +1 -1
  8. package/dist/incremental-parse.d.ts +41 -0
  9. package/dist/incremental-parse.d.ts.map +1 -0
  10. package/dist/incremental-parse.js +139 -0
  11. package/dist/incremental-parse.js.map +1 -0
  12. package/dist/incremental-parse.test.d.ts +2 -0
  13. package/dist/incremental-parse.test.d.ts.map +1 -0
  14. package/dist/incremental-parse.test.js +299 -0
  15. package/dist/incremental-parse.test.js.map +1 -0
  16. package/dist/markdown-html.test.d.ts +2 -0
  17. package/dist/markdown-html.test.d.ts.map +1 -0
  18. package/dist/markdown-html.test.js +129 -0
  19. package/dist/markdown-html.test.js.map +1 -0
  20. package/dist/markdown.d.ts +3 -0
  21. package/dist/markdown.d.ts.map +1 -0
  22. package/dist/markdown.js +4 -0
  23. package/dist/markdown.js.map +1 -0
  24. package/dist/parse.d.ts +9 -2
  25. package/dist/parse.d.ts.map +1 -1
  26. package/dist/parse.js +24 -12
  27. package/dist/parse.js.map +1 -1
  28. package/dist/safe-mdx.d.ts +13 -0
  29. package/dist/safe-mdx.d.ts.map +1 -1
  30. package/dist/safe-mdx.js +193 -24
  31. package/dist/safe-mdx.js.map +1 -1
  32. package/dist/safe-mdx.test.js +284 -11
  33. package/dist/safe-mdx.test.js.map +1 -1
  34. package/package.json +9 -1
  35. package/src/html/html-and-md.test.ts +15 -47
  36. package/src/html/html-to-mdx-ast.ts +53 -1
  37. package/src/incremental-parse.test.ts +315 -0
  38. package/src/incremental-parse.ts +219 -0
  39. package/src/markdown-html.test.tsx +144 -0
  40. package/src/markdown.ts +4 -0
  41. package/src/parse.ts +36 -13
  42. package/src/safe-mdx.test.tsx +357 -11
  43. package/src/safe-mdx.tsx +252 -26
package/README.md CHANGED
@@ -80,6 +80,62 @@ export function Page() {
80
80
  }
81
81
  ```
82
82
 
83
+ ## Incremental parsing for streaming markdown
84
+
85
+ Use `safe-mdx/incremental-parse` when markdown is changing rapidly, like during an LLM stream. Stable top-level mdast nodes are reused from a caller-owned cache, while only the live tail is parsed again. Parse errors are returned in `errors` instead of being thrown, so incomplete MDX can keep rendering the stable prefix.
86
+
87
+ ```tsx
88
+ import { useMemo } from 'react'
89
+ import { SafeMdxRenderer } from 'safe-mdx'
90
+ import {
91
+ parseMarkdownIncremental,
92
+ type SegmentCache,
93
+ } from 'safe-mdx/incremental-parse'
94
+
95
+ export function StreamingMdx({ markdown }: { markdown: string }) {
96
+ const cache = useMemo<SegmentCache>(() => new Map(), [])
97
+ const { mdast, errors } = parseMarkdownIncremental({
98
+ markdown,
99
+ cache,
100
+ trailingNodes: 2,
101
+ })
102
+
103
+ return (
104
+ <div>
105
+ {errors.length ? <pre>{errors[0]?.message}</pre> : null}
106
+ {mdast.children.map((block, index) => (
107
+ <SafeMdxRenderer
108
+ key={block.position?.start.offset ?? index}
109
+ markdown={markdown}
110
+ mdast={block}
111
+ />
112
+ ))}
113
+ </div>
114
+ )
115
+ }
116
+ ```
117
+
118
+ Customize the parser with extra remark plugins by creating a processor once and passing it to the incremental parser.
119
+
120
+ ```ts
121
+ import remarkMath from 'remark-math'
122
+ import {
123
+ createMdxProcessor,
124
+ parseMarkdownIncremental,
125
+ } from 'safe-mdx/incremental-parse'
126
+
127
+ const processor = createMdxProcessor({
128
+ remarkPlugins: [remarkMath],
129
+ })
130
+
131
+ const cache = new Map()
132
+ const { mdast, errors } = parseMarkdownIncremental({
133
+ markdown,
134
+ cache,
135
+ processor,
136
+ })
137
+ ```
138
+
83
139
  ## JSX Components in Attributes
84
140
 
85
141
  safe-mdx supports using JSX components inside component attributes, providing a secure alternative to JavaScript evaluation.
@@ -519,19 +575,20 @@ export function Page() {
519
575
 
520
576
  ### Arrow functions and callbacks
521
577
 
522
- By default, scope supports calling functions and accessing variables, but **inline arrow functions** like `.map(item => item.name)` require the `evaluateOptions` prop with a `generate` function from [escodegen](https://github.com/estools/escodegen).
523
-
524
- ```
525
- npm i escodegen
526
- ```
578
+ Arrow functions and callbacks like `.map(item => item.name)` work out of the box when `scope` is provided. safe-mdx includes a built-in safe AST interpreter that evaluates function expressions by walking the syntax tree recursively, without using `new Function()` or `eval()`. This means arrow functions **work in Cloudflare Workers** and other edge runtimes.
527
579
 
528
580
  ```tsx
529
581
  import { SafeMdxRenderer } from 'safe-mdx'
530
582
  import { mdxParse } from 'safe-mdx/parse'
531
- import { generate } from 'escodegen'
532
583
 
533
584
  const code = `
534
585
  {items.map(item => item.name).join(", ")}
586
+
587
+ {users.filter(u => u.role === "admin").map(u => u.name).join(", ")}
588
+
589
+ {nums.reduce((acc, x) => acc + x, 0)}
590
+
591
+ {items.map(item => formatName(item.name)).join(", ")}
535
592
  `
536
593
 
537
594
  export function Page() {
@@ -540,33 +597,42 @@ export function Page() {
540
597
  <SafeMdxRenderer
541
598
  markdown={code}
542
599
  mdast={ast}
543
- scope={{ items: [{ name: 'Alice' }, { name: 'Bob' }] }}
544
- evaluateOptions={{ generate }}
600
+ scope={{
601
+ items: [{ name: 'alice' }, { name: 'bob' }],
602
+ users: [
603
+ { name: 'Alice', role: 'admin' },
604
+ { name: 'Bob', role: 'user' },
605
+ ],
606
+ nums: [1, 2, 3, 4],
607
+ formatName: (s) => s.toUpperCase(),
608
+ }}
545
609
  />
546
610
  )
547
611
  }
548
612
  ```
549
613
 
614
+ Supported patterns include expression bodies (`x => x.name`), block bodies with return (`x => { return x * 2 }`), destructuring (`({ name }) => name`), multiple parameters (`(a, b) => a + b`), nested arrows, calling scope functions inside callbacks (`x => formatName(x)`), and chained calls like `.filter().map().join()`.
615
+
550
616
  The `evaluateOptions` prop accepts the following options:
551
617
 
552
618
  | Option | Type | Default | Description |
553
619
  |---|---|---|---|
554
620
  | `functions` | `boolean` | `false` | Enable function calls in expressions. Automatically set to `true` when `scope` is provided. |
555
- | `generate` | `(ast) => string` | `undefined` | Pass `escodegen.generate` to support inline arrow functions and callbacks like `.map(x => x)`. |
621
+ | `generate` | `(ast) => string` | `undefined` | Pass `escodegen.generate` to use the legacy `new Function()` path instead of the built-in safe interpreter. Not needed in most cases. |
556
622
  | `booleanLogicalOperators` | `boolean` | `undefined` | Force `&&` and `||` to return booleans instead of truthy/falsy values. |
557
623
  | `strict` | `boolean` | `false` | Throw an error when variables referenced in expressions are undefined. |
558
624
 
559
625
  ### Security considerations for scope
560
626
 
561
- Using `scope` and `evaluateOptions` trades some of safe-mdx's sandboxing guarantees for expressiveness. Be aware of these risks:
627
+ Using `scope` trades some of safe-mdx's sandboxing guarantees for expressiveness. Be aware of these risks:
562
628
 
563
629
  - **`scope` with functions**: the MDX author can call any function you put in scope with any arguments. Only expose functions that are safe to call with arbitrary inputs. Never put functions that access the filesystem, database, or network in scope unless you trust the MDX source.
564
630
 
565
- - **`evaluateOptions: { generate }`**: this is the most dangerous option. It uses `new Function()` under the hood to compile arrow functions and function expressions from the MDX source into executable JavaScript. This means **the MDX author can run arbitrary code** within the expression context. Only use `generate` when you fully trust the MDX content (e.g. your own content, not user-generated). This option is essentially equivalent to `eval` for the expression body. It also **does not work in Cloudflare Workers** or other edge runtimes that block `new Function()` and `eval()`, unless you enable the `unsafe-eval` compatibility flag.
631
+ - **`evaluateOptions: { generate }`**: this overrides the built-in safe interpreter with `escodegen.generate`, which uses `new Function()` under the hood. This means **the MDX author can run arbitrary code** within the expression context. Only use `generate` when you fully trust the MDX content. This option **does not work in Cloudflare Workers** or other edge runtimes that block `new Function()` and `eval()`.
566
632
 
567
633
  - **`evaluateOptions: { strict: true }`**: useful for catching typos in scope variable names. Without it, undefined variables silently resolve to `undefined`.
568
634
 
569
- If you are rendering **untrusted MDX** (user-generated content, multi-tenant apps), avoid using `scope` with sensitive functions and never enable `generate`. Instead, define your logic inside custom components passed to the `components` prop, which keeps the MDX author constrained to the component API you define.
635
+ If you are rendering **untrusted MDX** (user-generated content, multi-tenant apps), avoid using `scope` with sensitive functions. Instead, define your logic inside custom components passed to the `components` prop, which keeps the MDX author constrained to the component API you define.
570
636
 
571
637
  ## Security
572
638
 
@@ -1,9 +1,8 @@
1
1
  import { test, expect, describe } from 'vitest';
2
2
  import remarkMdx from 'remark-mdx';
3
3
  import remarkStringify from 'remark-stringify';
4
- import { parseHtmlToMdxAst } from 'safe-mdx/parse';
4
+ import { parseHtmlToMdxAst, remarkHtmlToMdx } from "../markdown.js";
5
5
  import { remark } from 'remark';
6
- import { visit } from 'unist-util-visit';
7
6
  /** Template literal for auto formatting with dedent */
8
7
  function html(strings, ...expressions) {
9
8
  // Join all string parts
@@ -23,47 +22,21 @@ function html(strings, ...expressions) {
23
22
  // Trim leading/trailing newlines
24
23
  return dedented.trim();
25
24
  }
26
- // Helper to convert HTML to MDX string
25
+ // Helper to convert HTML to MDX string using the exported remarkHtmlToMdx plugin
27
26
  async function htmlToMdxString({ markdown, onError, }) {
28
- const remarkHtmlBlocks = function () {
29
- return (tree) => {
30
- visit(tree, (node, index, parent) => {
31
- if (node.type === 'html' &&
32
- parent &&
33
- typeof index === 'number') {
34
- const htmlValue = node.value;
35
- // Parse HTML to MDX AST with processor for markdown parsing
36
- const mdxNodes = parseHtmlToMdxAst({
37
- html: htmlValue,
38
- onError,
39
- textToMdast: ({ text: x }) => {
40
- const processor = remark().use(() => {
41
- return (tree, file) => {
42
- file.data.ast = tree;
43
- };
44
- });
45
- const mdast = processor.parse(x);
46
- processor.runSync(mdast);
47
- return mdast;
48
- },
49
- parentType: parent.type,
50
- });
51
- // Replace the HTML node with the MDX nodes
52
- if (mdxNodes.length === 1) {
53
- parent.children[index] = mdxNodes[0];
54
- }
55
- else if (mdxNodes.length > 1) {
56
- parent.children.splice(index, 1, ...mdxNodes);
57
- }
58
- else {
59
- // Remove the node if no content
60
- parent.children.splice(index, 1);
61
- }
62
- }
63
- });
64
- };
27
+ const textToMdast = ({ text: x }) => {
28
+ const processor = remark().use(() => {
29
+ return (tree, file) => {
30
+ file.data.ast = tree;
31
+ };
32
+ });
33
+ const mdast = processor.parse(x);
34
+ processor.runSync(mdast);
35
+ return mdast;
65
36
  };
66
- const processor = remark().use(remarkHtmlBlocks).use(remarkStringify, {});
37
+ const processor = remark()
38
+ .use(remarkHtmlToMdx, { onError, textToMdast })
39
+ .use(remarkStringify, {});
67
40
  const mdast = processor.parse(markdown);
68
41
  processor.runSync(mdast);
69
42
  return remark().use(remarkMdx).use(remarkStringify, {}).stringify(mdast);
@@ -1 +1 @@
1
- {"version":3,"file":"html-and-md.test.js","sourceRoot":"","sources":["../../src/html/html-and-md.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-and-md.test.js","sourceRoot":"","sources":["../../src/html/html-and-md.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { RootContent } from 'mdast';
1
+ import type { Root, RootContent } from 'mdast';
2
+ import type { Plugin } from 'unified';
2
3
  import { remarkMdxJsxNormalize } from './remark-mdx-jsx-normalize.ts';
3
4
  export { remarkMdxJsxNormalize };
4
5
  export type ConvertTagName = (args: {
@@ -22,4 +23,28 @@ export interface ParseHtmlToMdxAstOptions {
22
23
  }
23
24
  export declare function htmlToMdxAst(options: ParseHtmlToMdxAstOptions): RootContent[];
24
25
  export declare function parseHtmlToMdxAst(options: ParseHtmlToMdxAstOptions): RootContent[];
26
+ export interface RemarkHtmlToMdxOptions {
27
+ convertTagName?: ConvertTagName;
28
+ textToMdast?: TextToMdast;
29
+ convertAttributeValue?: ConvertAttributeValue;
30
+ onError?: (error: unknown, text: string) => void;
31
+ }
32
+ /**
33
+ * Remark plugin that converts `html` AST nodes (produced by plain remark when parsing
34
+ * raw HTML in markdown) into mdxJsx nodes, so they can be rendered by MdastToJsx.
35
+ *
36
+ * Use this as a pre-processing step when rendering plain markdown (not MDX):
37
+ *
38
+ * ```ts
39
+ * import { remark } from 'remark'
40
+ * import { MdastToJsx } from 'safe-mdx'
41
+ * import { remarkHtmlToMdx } from 'safe-mdx/markdown'
42
+ *
43
+ * const processor = remark().use(remarkHtmlToMdx)
44
+ * const mdast = processor.parse(markdown)
45
+ * processor.runSync(mdast)
46
+ * // mdast now has mdxJsx nodes instead of html nodes — safe to pass to MdastToJsx
47
+ * ```
48
+ */
49
+ export declare const remarkHtmlToMdx: Plugin<[RemarkHtmlToMdxOptions?], Root>;
25
50
  //# sourceMappingURL=html-to-mdx-ast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-to-mdx-ast.d.ts","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,WAAW,EAAqB,MAAM,OAAO,CAAA;AAUjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAGrE,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAGhC,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAAA;AAGlE,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE;IAC7B,IAAI,EAAE,MAAM,CAAA;CACf,KAAK,WAAW,GAAG,WAAW,EAAE,CAAA;AAGjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAClB,KAAK,MAAM,CAAA;AAGZ,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;CAChD;AAmQD,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,EAAE,CAsE7E;AAID,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,wBAAwB,GAClC,WAAW,EAAE,CAEf"}
1
+ {"version":3,"file":"html-to-mdx-ast.d.ts","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAqB,MAAM,OAAO,CAAA;AAMjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAKrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAGrE,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAGhC,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAAA;AAGlE,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE;IAC7B,IAAI,EAAE,MAAM,CAAA;CACf,KAAK,WAAW,GAAG,WAAW,EAAE,CAAA;AAGjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAClB,KAAK,MAAM,CAAA;AAGZ,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;CAChD;AAmQD,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,EAAE,CAsE7E;AAID,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,wBAAwB,GAClC,WAAW,EAAE,CAEf;AAGD,MAAM,WAAW,sBAAsB;IACnC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAwB/D,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { unified } from 'unified';
2
+ import { visit } from 'unist-util-visit';
2
3
  import { convertAttributeNameToJSX } from "./convert-attributes.js";
3
4
  import { parseHTML } from "./domparser.js";
4
5
  import { remarkMdxJsxNormalize } from "./remark-mdx-jsx-normalize.js";
@@ -284,4 +285,43 @@ export function htmlToMdxAst(options) {
284
285
  export function parseHtmlToMdxAst(options) {
285
286
  return htmlToMdxAst(options);
286
287
  }
288
+ /**
289
+ * Remark plugin that converts `html` AST nodes (produced by plain remark when parsing
290
+ * raw HTML in markdown) into mdxJsx nodes, so they can be rendered by MdastToJsx.
291
+ *
292
+ * Use this as a pre-processing step when rendering plain markdown (not MDX):
293
+ *
294
+ * ```ts
295
+ * import { remark } from 'remark'
296
+ * import { MdastToJsx } from 'safe-mdx'
297
+ * import { remarkHtmlToMdx } from 'safe-mdx/markdown'
298
+ *
299
+ * const processor = remark().use(remarkHtmlToMdx)
300
+ * const mdast = processor.parse(markdown)
301
+ * processor.runSync(mdast)
302
+ * // mdast now has mdxJsx nodes instead of html nodes — safe to pass to MdastToJsx
303
+ * ```
304
+ */
305
+ export const remarkHtmlToMdx = function (options = {}) {
306
+ return (tree) => {
307
+ visit(tree, 'html', (node, index, parent) => {
308
+ if (!parent || typeof index !== 'number')
309
+ return;
310
+ const mdxNodes = htmlToMdxAst({
311
+ html: node.value,
312
+ parentType: parent.type,
313
+ onError: options.onError,
314
+ convertTagName: options.convertTagName,
315
+ textToMdast: options.textToMdast,
316
+ convertAttributeValue: options.convertAttributeValue,
317
+ });
318
+ if (mdxNodes.length === 0) {
319
+ parent.children.splice(index, 1);
320
+ return index; // re-visit from same position
321
+ }
322
+ parent.children.splice(index, 1, ...mdxNodes);
323
+ return index + mdxNodes.length; // skip past inserted nodes
324
+ });
325
+ };
326
+ };
287
327
  //# sourceMappingURL=html-to-mdx-ast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-to-mdx-ast.js","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-to-mdx-ast.js","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { Root, RootContent } from 'mdast';
2
+ import { createMdxProcessor, type MdxProcessor } from './parse.ts';
3
+ export { createMdxProcessor };
4
+ export interface SegmentEntry {
5
+ len: number;
6
+ hash: number;
7
+ end: number;
8
+ nodes: RootContent[];
9
+ }
10
+ export type SegmentCache = Map<number, SegmentEntry>;
11
+ export interface IncrementalParseError {
12
+ message: string;
13
+ line?: number;
14
+ column?: number;
15
+ offset?: number;
16
+ cause: ParseErrorCause;
17
+ }
18
+ type ParseErrorCause = string | {
19
+ message?: string;
20
+ place?: {
21
+ line?: number;
22
+ column?: number;
23
+ offset?: number;
24
+ };
25
+ };
26
+ export interface IncrementalParseOptions {
27
+ markdown: string;
28
+ cache: SegmentCache;
29
+ /** Number of unstable top-level nodes to keep out of the cache. Defaults to 2. */
30
+ trailingNodes?: number;
31
+ /** Custom unified processor. Use `createMdxProcessor({ remarkPlugins })` for plugin customization. */
32
+ processor?: MdxProcessor;
33
+ /** Fully custom parse hook. Takes precedence over `processor`. */
34
+ parse?: (markdown: string) => Root;
35
+ }
36
+ export interface IncrementalParseResult {
37
+ mdast: Root;
38
+ errors: IncrementalParseError[];
39
+ }
40
+ export declare function parseMarkdownIncremental({ markdown, cache, trailingNodes, processor, parse, }: IncrementalParseOptions): IncrementalParseResult;
41
+ //# sourceMappingURL=incremental-parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental-parse.d.ts","sourceRoot":"","sources":["../src/incremental-parse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAY,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5E,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAEpD,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,eAAe,CAAA;CACzB;AAED,KAAK,eAAe,GAAG,MAAM,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,MAAM,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACJ,CAAA;AAgBD,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;IACnB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sGAAsG;IACtG,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,kEAAkE;IAClE,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,IAAI,CAAA;IACX,MAAM,EAAE,qBAAqB,EAAE,CAAA;CAClC;AAED,wBAAgB,wBAAwB,CAAC,EACrC,QAAQ,EACR,KAAK,EACL,aAAiB,EACjB,SAAS,EACT,KAAK,GACR,EAAE,uBAAuB,GAAG,sBAAsB,CA0DlD"}
@@ -0,0 +1,139 @@
1
+ import { createMdxProcessor, mdxParse } from "./parse.js";
2
+ export { createMdxProcessor };
3
+ export function parseMarkdownIncremental({ markdown, cache, trailingNodes = 2, processor, parse, }) {
4
+ const children = [];
5
+ const errors = [];
6
+ const parseSlice = parse ?? ((code) => parseWithProcessor(code, processor));
7
+ for (let offset = 0; offset < markdown.length;) {
8
+ const entry = cache.get(offset);
9
+ if (entry) {
10
+ const slice = markdown.slice(offset, entry.end);
11
+ if (slice.length === entry.len && quickHash(slice) === entry.hash) {
12
+ children.push(...entry.nodes);
13
+ offset = entry.end;
14
+ continue;
15
+ }
16
+ }
17
+ const rest = markdown.slice(offset);
18
+ if (!rest)
19
+ break;
20
+ const basePoint = pointAtOffset(markdown, offset);
21
+ try {
22
+ const ast = parseSlice(rest);
23
+ children.push(...ast.children.map((node) => adjustNodePositions(node, basePoint)));
24
+ }
25
+ catch (cause) {
26
+ errors.push(parseErrorFromCause(cause, basePoint));
27
+ }
28
+ break;
29
+ }
30
+ const stableChildren = trailingNodes > 0 ? children.slice(0, -trailingNodes) : children;
31
+ let segmentStart = 0;
32
+ for (const node of stableChildren) {
33
+ const end = node.position?.end.offset;
34
+ if (typeof end !== 'number' || end < segmentStart)
35
+ continue;
36
+ const slice = markdown.slice(segmentStart, end);
37
+ cache.set(segmentStart, {
38
+ len: slice.length,
39
+ hash: quickHash(slice),
40
+ end,
41
+ nodes: [node],
42
+ });
43
+ segmentStart = end;
44
+ }
45
+ trimCache(cache);
46
+ return {
47
+ mdast: {
48
+ type: 'root',
49
+ children,
50
+ position: {
51
+ start: { line: 1, column: 1, offset: 0 },
52
+ end: pointAtOffset(markdown, markdown.length),
53
+ },
54
+ },
55
+ errors,
56
+ };
57
+ }
58
+ function parseWithProcessor(markdown, processor) {
59
+ if (!processor)
60
+ return mdxParse(markdown);
61
+ const file = processor.processSync(markdown);
62
+ const ast = file.data.ast;
63
+ const isRoot = (value) => {
64
+ return value?.type === 'root' && Array.isArray(value?.children);
65
+ };
66
+ if (!isRoot(ast)) {
67
+ throw new Error('Processor did not expose mdast at file.data.ast');
68
+ }
69
+ return ast;
70
+ }
71
+ function quickHash(s) {
72
+ let h = 0x811c9dc5;
73
+ for (let i = 0; i < s.length; i++) {
74
+ h ^= s.charCodeAt(i);
75
+ h = (h * 0x01000193) >>> 0;
76
+ }
77
+ return h;
78
+ }
79
+ function pointAtOffset(text, offset) {
80
+ let line = 1;
81
+ let column = 1;
82
+ for (let i = 0; i < offset; i++) {
83
+ if (text[i] === '\n') {
84
+ line++;
85
+ column = 1;
86
+ }
87
+ else {
88
+ column++;
89
+ }
90
+ }
91
+ return { line, column, offset };
92
+ }
93
+ function adjustNodePositions(node, basePoint) {
94
+ const position = node.position;
95
+ if (position) {
96
+ adjustPoint(position.start, basePoint);
97
+ adjustPoint(position.end, basePoint);
98
+ }
99
+ if (Array.isArray(node.children)) {
100
+ node.children = node.children.map((child) => adjustNodePositions(child, basePoint));
101
+ }
102
+ return node;
103
+ }
104
+ function adjustPoint(point, basePoint) {
105
+ if (!point)
106
+ return;
107
+ if (typeof point.offset === 'number') {
108
+ point.offset += basePoint.offset;
109
+ }
110
+ if (typeof point.line === 'number') {
111
+ point.line += basePoint.line - 1;
112
+ }
113
+ if (typeof point.column === 'number' && point.line === basePoint.line) {
114
+ point.column += basePoint.column - 1;
115
+ }
116
+ }
117
+ function parseErrorFromCause(cause, basePoint) {
118
+ const place = typeof cause === 'string' ? undefined : cause.place;
119
+ const point = place ? { ...place } : undefined;
120
+ if (point)
121
+ adjustPoint(point, basePoint);
122
+ return {
123
+ message: typeof cause === 'string' ? cause : cause.message ?? String(cause),
124
+ line: point?.line,
125
+ column: point?.column,
126
+ offset: point?.offset,
127
+ cause,
128
+ };
129
+ }
130
+ function trimCache(cache) {
131
+ const maxCacheSize = 300;
132
+ if (cache.size <= maxCacheSize)
133
+ return;
134
+ const keys = Array.from(cache.keys()).sort((a, b) => a - b);
135
+ for (const key of keys.slice(0, cache.size - maxCacheSize)) {
136
+ cache.delete(key);
137
+ }
138
+ }
139
+ //# sourceMappingURL=incremental-parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental-parse.js","sourceRoot":"","sources":["../src/incremental-parse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAqB,MAAM,YAAY,CAAA;AAE5E,OAAO,EAAE,kBAAkB,EAAE,CAAA;AA0D7B,MAAM,UAAU,wBAAwB,CAAC,EACrC,QAAQ,EACR,KAAK,EACL,aAAa,GAAG,CAAC,EACjB,SAAS,EACT,KAAK,GACiB;IACtB,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAClC,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,MAAM,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;IAEnF,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/B,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;YAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;gBAC7B,MAAM,GAAG,KAAK,CAAC,GAAG,CAAA;gBAClB,SAAQ;YACZ,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,IAAI;YAAE,MAAK;QAChB,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAEjD,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;YAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;QACtD,CAAC;QACD,MAAK;IACT,CAAC;IAED,MAAM,cAAc,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IACvF,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAA;QACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,YAAY;YAAE,SAAQ;QAE3D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QAC/C,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE;YACpB,GAAG,EAAE,KAAK,CAAC,MAAM;YACjB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;YACtB,GAAG;YACH,KAAK,EAAE,CAAC,IAAI,CAAC;SAChB,CAAC,CAAA;QACF,YAAY,GAAG,GAAG,CAAA;IACtB,CAAC;IAED,SAAS,CAAC,KAAK,CAAC,CAAA;IAEhB,OAAO;QACH,KAAK,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,QAAQ;YACR,QAAQ,EAAE;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBACxC,GAAG,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;aAChD;SACJ;QACD,MAAM;KACT,CAAA;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,SAAwB;IAClE,IAAI,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAEzC,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;IACzB,MAAM,MAAM,GAAG,CAAC,KAAU,EAAiB,EAAE;QACzC,OAAO,KAAK,EAAE,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACnE,CAAC,CAAA;IACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACtE,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IACxB,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,CAAC,CAAA;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,MAAc;IAC/C,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,EAAE,CAAA;YACN,MAAM,GAAG,CAAC,CAAA;QACd,CAAC;aAAM,CAAC;YACJ,MAAM,EAAE,CAAA;QACZ,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AACnC,CAAC;AAED,SAAS,mBAAmB,CAA2B,IAAO,EAAE,SAA2D;IACvH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC9B,IAAI,QAAQ,EAAE,CAAC;QACX,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACtC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;IACvF,CAAC;IAED,OAAO,IAAI,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAwB,EAAE,SAA2D;IACtG,IAAI,CAAC,KAAK;QAAE,OAAM;IAElB,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAA;IACpC,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,CAAA;IACpC,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QACpE,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;IACxC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAsB,EAAE,SAA2D;IAC5G,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9C,IAAI,KAAK;QAAE,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAExC,OAAO;QACH,OAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;QAC3E,IAAI,EAAE,KAAK,EAAE,IAAI;QACjB,MAAM,EAAE,KAAK,EAAE,MAAM;QACrB,MAAM,EAAE,KAAK,EAAE,MAAM;QACrB,KAAK;KACR,CAAA;AACL,CAAC;AAED,SAAS,SAAS,CAAC,KAAmB;IAClC,MAAM,YAAY,GAAG,GAAG,CAAA;IACxB,IAAI,KAAK,CAAC,IAAI,IAAI,YAAY;QAAE,OAAM;IAEtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=incremental-parse.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental-parse.test.d.ts","sourceRoot":"","sources":["../src/incremental-parse.test.ts"],"names":[],"mappings":""}