safe-mdx 0.1.0 → 0.3.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 CHANGED
@@ -10,9 +10,10 @@
10
10
 
11
11
  ## Features
12
12
 
13
- - Render MDX without `eval` on the server, so you can render MDX in Cloudflare Workers and Vercel Edge
14
- - Works with React Server Components
15
- - Supports custom MDX components
13
+ - Render MDX without `eval` on the server, so you can render MDX in Cloudflare Workers and Vercel Edge
14
+ - Works with React Server Components
15
+ - Supports custom MDX components
16
+ - Support for rendering streaming MDX, by using `completeJsxTags`
16
17
 
17
18
  ## Why
18
19
 
@@ -22,9 +23,9 @@ For example in an hypothetical platform similar to Notion, where users can write
22
23
 
23
24
  Some use cases for this package are:
24
25
 
25
- - Render MDX in Cloudflare Workers and Vercel Edge
26
- - Safely render dynamically generated MDX code, like inside a ChatGPT like interface
27
- - Render user generated MDX, like in a multi-tenant SaaS app
26
+ - Render MDX in Cloudflare Workers and Vercel Edge
27
+ - Safely render dynamically generated MDX code, like inside a ChatGPT like interface
28
+ - Render user generated MDX, like in a multi-tenant SaaS app
28
29
 
29
30
  <br>
30
31
 
@@ -78,8 +79,8 @@ If you want to use custom MDX plugins, you can pass your own MDX processed ast.
78
79
 
79
80
  By default `safe-mdx` already has support for
80
81
 
81
- - frontmatter
82
- - gfm
82
+ - frontmatter
83
+ - gfm
83
84
 
84
85
  ```tsx
85
86
  import { SafeMdxRenderer } from 'safe-mdx'
@@ -190,6 +191,28 @@ export function Page() {
190
191
  }
191
192
  ```
192
193
 
194
+ ## Rendering streaming MDX from an LLM
195
+
196
+ Use `completeJsxTags` to make streaming invalid MDX render, this function will add missing closing tags
197
+
198
+ ```tsx
199
+ import { SafeMdxRenderer } from 'safe-mdx'
200
+
201
+ export function Page() {
202
+ const { messages } = useChat()
203
+ return (
204
+ <>
205
+ {messages.map((message, i) => (
206
+ <SafeMdxRenderer
207
+ key={i}
208
+ code={completeJsxTags(message.content)}
209
+ />
210
+ ))}
211
+ </>
212
+ )
213
+ }
214
+ ```
215
+
193
216
  ## Security
194
217
 
195
218
  safe-mdx is designed to avoid server-side evaluation of untrusted MDX input.
@@ -202,7 +225,7 @@ This is ok if you render your MDX in isolation from each tenant, for example on
202
225
 
203
226
  These features are not supported yet:
204
227
 
205
- - expressions or values defined with `export`
206
- - importing components or data from other files
228
+ - expressions or values defined with `export`
229
+ - importing components or data from other files
207
230
 
208
231
  To overcome these limitations you can define custom logic in your components and pass them to `SafeMdxRenderer` `components` prop. This will also make your MDX files cleaner and easier to read.
@@ -0,0 +1,12 @@
1
+ import { Root } from 'mdast';
2
+ /**
3
+ * https://github.com/mdx-js/mdx/blob/b3351fadcb6f78833a72757b7135dcfb8ab646fe/packages/mdx/lib/plugin/remark-mark-and-unravel.js
4
+ * A tiny plugin that unravels `<p><h1>x</h1></p>` but also
5
+ * `<p><Component /></p>` (so it has no knowledge of "HTML").
6
+ *
7
+ * It also marks JSX as being explicitly JSX, so when a user passes a `h1`
8
+ * component, it is used for `# heading` but not for `<h1>heading</h1>`.
9
+ *
10
+ */
11
+ export declare function remarkMarkAndUnravel(): (tree: Root) => void;
12
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,OAAO,CAAA;AAKzC;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,WACT,IAAI,UAuE9B"}
@@ -0,0 +1,68 @@
1
+ import { collapseWhiteSpace } from 'collapse-white-space';
2
+ import { visit } from 'unist-util-visit';
3
+ /**
4
+ * https://github.com/mdx-js/mdx/blob/b3351fadcb6f78833a72757b7135dcfb8ab646fe/packages/mdx/lib/plugin/remark-mark-and-unravel.js
5
+ * A tiny plugin that unravels `<p><h1>x</h1></p>` but also
6
+ * `<p><Component /></p>` (so it has no knowledge of "HTML").
7
+ *
8
+ * It also marks JSX as being explicitly JSX, so when a user passes a `h1`
9
+ * component, it is used for `# heading` but not for `<h1>heading</h1>`.
10
+ *
11
+ */
12
+ export function remarkMarkAndUnravel() {
13
+ return function (tree) {
14
+ visit(tree, function (node, index, parent) {
15
+ let offset = -1;
16
+ let all = true;
17
+ let oneOrMore = false;
18
+ if (parent &&
19
+ typeof index === 'number' &&
20
+ node.type === 'paragraph') {
21
+ const children = node.children;
22
+ while (++offset < children.length) {
23
+ const child = children[offset];
24
+ if (child.type === 'mdxJsxTextElement' ||
25
+ child.type === 'mdxTextExpression') {
26
+ oneOrMore = true;
27
+ }
28
+ else if (child.type === 'text' &&
29
+ collapseWhiteSpace(child.value, {
30
+ style: 'html',
31
+ trim: true,
32
+ }) === '') {
33
+ // Empty.
34
+ }
35
+ else {
36
+ all = false;
37
+ break;
38
+ }
39
+ }
40
+ if (all && oneOrMore) {
41
+ offset = -1;
42
+ const newChildren = [];
43
+ while (++offset < children.length) {
44
+ const child = children[offset];
45
+ if (child.type === 'mdxJsxTextElement') {
46
+ // @ts-expect-error: mutate because it is faster; content model is fine.
47
+ child.type = 'mdxJsxFlowElement';
48
+ }
49
+ if (child.type === 'mdxTextExpression') {
50
+ // @ts-expect-error: mutate because it is faster; content model is fine.
51
+ child.type = 'mdxFlowExpression';
52
+ }
53
+ if (child.type === 'text' &&
54
+ /^[\t\r\n ]+$/.test(String(child.value))) {
55
+ // Empty.
56
+ }
57
+ else {
58
+ newChildren.push(child);
59
+ }
60
+ }
61
+ parent.children.splice(index, 1, ...newChildren);
62
+ return index;
63
+ }
64
+ }
65
+ });
66
+ };
67
+ }
68
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAGxC;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB;IAChC,OAAO,UAAU,IAAU;QAEvB,KAAK,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,KAAK,EAAE,MAAM;YACrC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAA;YACf,IAAI,GAAG,GAAG,IAAI,CAAA;YACd,IAAI,SAAS,GAAG,KAAK,CAAA;YAGrB,IACI,MAAM;gBACN,OAAO,KAAK,KAAK,QAAQ;gBACzB,IAAI,CAAC,IAAI,KAAK,WAAW,EAC3B;gBACE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;gBAE9B,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;oBAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;oBAE9B,IACI,KAAK,CAAC,IAAI,KAAK,mBAAmB;wBAClC,KAAK,CAAC,IAAI,KAAK,mBAAmB,EACpC;wBACE,SAAS,GAAG,IAAI,CAAA;qBACnB;yBAAM,IACH,KAAK,CAAC,IAAI,KAAK,MAAM;wBACrB,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE;4BAC5B,KAAK,EAAE,MAAM;4BACb,IAAI,EAAE,IAAI;yBACb,CAAC,KAAK,EAAE,EACX;wBACE,SAAS;qBACZ;yBAAM;wBACH,GAAG,GAAG,KAAK,CAAA;wBACX,MAAK;qBACR;iBACJ;gBAED,IAAI,GAAG,IAAI,SAAS,EAAE;oBAClB,MAAM,GAAG,CAAC,CAAC,CAAA;oBAEX,MAAM,WAAW,GAAkB,EAAE,CAAA;oBAErC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;wBAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;wBAE9B,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;4BACpC,wEAAwE;4BACxE,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAA;yBACnC;wBAED,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;4BACpC,wEAAwE;4BACxE,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAA;yBACnC;wBAED,IACI,KAAK,CAAC,IAAI,KAAK,MAAM;4BACrB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAC1C;4BACE,SAAS;yBACZ;6BAAM;4BACH,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;yBAC1B;qBACJ;oBAED,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAA;oBAChD,OAAO,KAAK,CAAA;iBACf;aACJ;QACL,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;AACL,CAAC"}
@@ -1,7 +1,9 @@
1
+ import React from 'react';
1
2
  import { Node, Parent, RootContent } from 'mdast';
2
3
  import { Root } from 'mdast';
3
4
  import { MdxJsxFlowElement, MdxJsxTextElement } from 'mdast-util-mdx-jsx';
4
5
  import { ReactNode } from 'react';
6
+ import { completeJsxTags } from './streaming.js';
5
7
  type MyRootContent = RootContent | Root;
6
8
  export declare function mdxParse(code: string): Root;
7
9
  declare module 'mdast' {
@@ -12,12 +14,12 @@ declare module 'mdast' {
12
14
  }
13
15
  }
14
16
  export type CustomTransformer = (node: MyRootContent, transform: (node: MyRootContent) => ReactNode) => ReactNode | undefined;
15
- export declare function SafeMdxRenderer({ components, code, mdast, customTransformer, }: {
17
+ export declare const SafeMdxRenderer: React.NamedExoticComponent<{
16
18
  components?: ComponentsMap;
17
19
  code?: string;
18
20
  mdast?: MyRootContent;
19
21
  customTransformer?: CustomTransformer;
20
- }): any;
22
+ }>;
21
23
  export declare class MdastToJsx {
22
24
  mdast: MyRootContent;
23
25
  str: string;
@@ -59,5 +61,5 @@ type ComponentsMap = {
59
61
  *
60
62
  */
61
63
  export declare function remarkMarkAndUnravel(): (tree: Root) => void;
62
- export {};
64
+ export { completeJsxTags };
63
65
  //# sourceMappingURL=safe-mdx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-mdx.d.ts","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAMjD,OAAO,EAAE,IAAI,EAAQ,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAKzE,OAAO,EAAY,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C,KAAK,aAAa,GAAG,WAAW,GAAG,IAAI,CAAA;AAEvC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAET,IAAI,CAC/B;AAED,OAAO,QAAQ,OAAO,CAAC;IACnB,UAAiB,IAAI;QACjB,WAAW,CAAC,EAAE;YACV,EAAE,CAAC,EAAE,MAAM,CAAA;SACd,CAAA;KACJ;CACJ;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC5B,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS,KAC5C,SAAS,GAAG,SAAS,CAAA;AAE1B,wBAAgB,eAAe,CAAC,EAC5B,UAAU,EACV,IAAS,EACT,KAAmB,EACnB,iBAAiB,GACpB,EAAE;IACC,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACxC,OASA;AAED,qBAAa,UAAU;IACnB,KAAK,EAAE,aAAa,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAK;IACnB,CAAC,EAAE,aAAa,CAAA;IAChB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAK;IAClC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;gBAEzB,EACR,IAAS,EACT,KAAwB,EACxB,UAAgC,EAChC,iBAAiB,GACpB,EAAE;QACC,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,aAAa,CAAA;QACrB,UAAU,CAAC,EAAE,aAAa,CAAA;QAC1B,iBAAiB,CAAC,EAAE,CAChB,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS,KAC5C,SAAS,GAAG,SAAS,CAAA;KAC7B;IAcD,gBAAgB,CAAC,IAAI,EAAE,GAAG;IAiB1B,cAAc,CAAC,IAAI,EAAE,GAAG;IAiBxB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;IAsC9C,GAAG;IAQH,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;CAiTnD;AAED,wBAAgB,WAAW,CACvB,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,EAC3C,OAAO,GAAE,CAAC,GAAG,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,IAAoB,mBAmE9D;AAcD,wBAAgB,QAAQ,CACpB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,KAAK,GAAG,SAiBpC;AAUD,QAAA,MAAM,UAAU,+eA6DN,CAAA;AA2RV,KAAK,aAAa,GAAG;KAAG,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG;CAAE,GAAG;IAChE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,KACf,MAAM,IAAI,UAqE9B"}
1
+ {"version":3,"file":"safe-mdx.d.ts","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAMjD,OAAO,EAAE,IAAI,EAAQ,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAKzE,OAAO,EAAY,SAAS,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,KAAK,aAAa,GAAG,WAAW,GAAG,IAAI,CAAA;AAEvC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,QAGpC;AAED,OAAO,QAAQ,OAAO,CAAC;IACnB,UAAiB,IAAI;QACjB,WAAW,CAAC,EAAE;YACV,EAAE,CAAC,EAAE,MAAM,CAAA;SACd,CAAA;KACJ;CACJ;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC5B,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS,KAC5C,SAAS,GAAG,SAAS,CAAA;AAE1B,eAAO,MAAM,eAAe;iBAMX,aAAa;WACnB,MAAM;YACL,aAAa;wBACD,iBAAiB;EAUvC,CAAA;AAEF,qBAAa,UAAU;IACnB,KAAK,EAAE,aAAa,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAK;IACnB,CAAC,EAAE,aAAa,CAAA;IAChB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAK;IAClC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;gBAEzB,EACR,IAAS,EACT,KAAwB,EACxB,UAAgC,EAChC,iBAAiB,GACpB,EAAE;QACC,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,aAAa,CAAA;QACrB,UAAU,CAAC,EAAE,aAAa,CAAA;QAC1B,iBAAiB,CAAC,EAAE,CAChB,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS,KAC5C,SAAS,GAAG,SAAS,CAAA;KAC7B;IAcD,gBAAgB,CAAC,IAAI,EAAE,GAAG;IAiB1B,cAAc,CAAC,IAAI,EAAE,GAAG;IAiBxB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;IAsC9C,GAAG;IAQH,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;CA2TnD;AAED,wBAAgB,WAAW,CACvB,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,EAC3C,OAAO,GAAE,CAAC,GAAG,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,IAAoB,mBAmE9D;AAcD,wBAAgB,QAAQ,CACpB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,KAAK,GAAG,SAiBpC;AAUD,QAAA,MAAM,UAAU,+eA6DN,CAAA;AA2RV,KAAK,aAAa,GAAG;KAAG,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG;CAAE,GAAG;IAChE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,WACT,IAAI,UAqE9B;AAaD,OAAO,EAAE,eAAe,EAAE,CAAA"}
package/dist/safe-mdx.js CHANGED
@@ -8,11 +8,12 @@ import { remark } from 'remark';
8
8
  import remarkGfm from 'remark-gfm';
9
9
  import remarkMdx from 'remark-mdx';
10
10
  import { Fragment } from 'react';
11
+ import { completeJsxTags } from './streaming.js';
11
12
  export function mdxParse(code) {
12
13
  const file = mdxProcessor.processSync(code);
13
14
  return file.data.ast;
14
15
  }
15
- export function SafeMdxRenderer({ components, code = '', mdast = null, customTransformer, }) {
16
+ export const SafeMdxRenderer = React.memo(function SafeMdxRenderer({ components, code = '', mdast = null, customTransformer, }) {
16
17
  const visitor = new MdastToJsx({
17
18
  code,
18
19
  mdast,
@@ -21,7 +22,7 @@ export function SafeMdxRenderer({ components, code = '', mdast = null, customTra
21
22
  });
22
23
  const result = visitor.run();
23
24
  return result;
24
- }
25
+ });
25
26
  export class MdastToJsx {
26
27
  mdast;
27
28
  str;
@@ -172,7 +173,7 @@ export class MdastToJsx {
172
173
  return (_jsx(this.c.blockquote, { ...node.data?.hProperties, children: this.mapMdastChildren(node) }));
173
174
  }
174
175
  case 'thematicBreak': {
175
- return _jsx(this.c.hr, {});
176
+ return _jsx(this.c.hr, { ...node.data?.hProperties });
176
177
  }
177
178
  case 'code': {
178
179
  if (!node.value) {
@@ -211,6 +212,9 @@ export class MdastToJsx {
211
212
  if (!node.value) {
212
213
  return [];
213
214
  }
215
+ if (node.data?.hProperties) {
216
+ return (_jsx(this.c.span, { ...node.data.hProperties, children: node.value }));
217
+ }
214
218
  return node.value;
215
219
  }
216
220
  case 'image': {
@@ -240,9 +244,12 @@ export class MdastToJsx {
240
244
  return (_jsx(this.c.code, { ...node.data?.hProperties, children: node.value }));
241
245
  }
242
246
  case 'break': {
243
- return _jsx(this.c.br, {});
247
+ return _jsx(this.c.br, { ...node.data?.hProperties });
244
248
  }
245
249
  case 'root': {
250
+ if (node.data?.hProperties) {
251
+ return _jsx(this.c.div, { ...node.data.hProperties, children: this.mapMdastChildren(node) });
252
+ }
246
253
  return _jsx(Fragment, { children: this.mapMdastChildren(node) });
247
254
  }
248
255
  case 'table': {
@@ -826,4 +833,5 @@ const mdxProcessor = remark()
826
833
  file.data.ast = tree;
827
834
  };
828
835
  });
836
+ export { completeJsxTags };
829
837
  //# sourceMappingURL=safe-mdx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-mdx.js","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-mdx.js","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ const components = {
9
9
  Heading({ level, children }) {
10
10
  return _jsx("h1", { children: children });
11
11
  },
12
+ Cards({ level, children }) {
13
+ return _jsx("div", { children: children });
14
+ },
12
15
  };
13
16
  function render(code) {
14
17
  const visitor = new MdastToJsx({ code, components });
@@ -18,6 +21,7 @@ function render(code) {
18
21
  return { result, errors: visitor.errors || [], html };
19
22
  }
20
23
  import { htmlToJsx } from 'html-to-jsx-transform';
24
+ import { completeJsxTags } from './streaming.js';
21
25
  test('htmlToJsx', () => {
22
26
  expect(htmlToJsx('<p x="y">')).toMatchInlineSnapshot(`"<p x="y" />"`);
23
27
  expect(htmlToJsx('<p>text</p>')).toMatchInlineSnapshot(`"<p>text</p>"`);
@@ -68,6 +72,36 @@ test('markdown inside jsx', () => {
68
72
  }
69
73
  `);
70
74
  });
75
+ test('can complete jsx code with completeJsxTags', () => {
76
+ const code = dedent `
77
+ # Hello
78
+
79
+ <Cards>
80
+ <Heading prop="value">
81
+ some value
82
+
83
+ Component *children*
84
+
85
+
86
+
87
+ `;
88
+ expect(render(completeJsxTags(code))).toMatchInlineSnapshot(`
89
+ {
90
+ "errors": [],
91
+ "html": "<h1>Hello</h1><div><h1></h1></div>",
92
+ "result": <React.Fragment>
93
+ <h1>
94
+ Hello
95
+ </h1>
96
+ <Cards>
97
+ <Heading
98
+ prop="value"
99
+ />
100
+ </Cards>
101
+ </React.Fragment>,
102
+ }
103
+ `);
104
+ });
71
105
  test('remark and jsx does not wrap in p', () => {
72
106
  const code = dedent `
73
107
  ---
@@ -1 +1 @@
1
- {"version":3,"file":"safe-mdx.test.js","sourceRoot":"","sources":["../src/safe-mdx.test.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2ZZ,CAAC,CACL,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+mCvB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAA;CACtB,CAAA;IACG,MAAM,CACF,MAAM,CAAC,MAAM,CAAA;;;;;;;;KAQhB,CAAC,CACD,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;KAuBvB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;IAClC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDd,CAAA;IACC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoFxC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"safe-mdx.test.js","sourceRoot":"","sources":["../src/safe-mdx.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function completeJsxTags(code: string): string;
2
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.tsx"],"names":[],"mappings":"AAgCA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,UA2B3C"}
@@ -0,0 +1,50 @@
1
+ // taken from https://www.prompt-kit.com/docs/jsx-preview
2
+ function matchJsxTag(code) {
3
+ if (code.trim() === '') {
4
+ return null;
5
+ }
6
+ const tagRegex = /<\/?([a-zA-Z][a-zA-Z0-9]*)\s*([^>]*?)(\/)?>/;
7
+ const match = code.match(tagRegex);
8
+ if (!match || typeof match.index === 'undefined') {
9
+ return null;
10
+ }
11
+ const [fullMatch, tagName, attributes, selfClosing] = match;
12
+ const type = selfClosing
13
+ ? 'self-closing'
14
+ : fullMatch.startsWith('</')
15
+ ? 'closing'
16
+ : 'opening';
17
+ return {
18
+ tag: fullMatch,
19
+ tagName,
20
+ type,
21
+ attributes: attributes.trim(),
22
+ startIndex: match.index,
23
+ endIndex: match.index + fullMatch.length,
24
+ };
25
+ }
26
+ export function completeJsxTags(code) {
27
+ const stack = [];
28
+ let result = '';
29
+ let currentPosition = 0;
30
+ while (currentPosition < code.length) {
31
+ const match = matchJsxTag(code.slice(currentPosition));
32
+ if (!match)
33
+ break;
34
+ const { tagName, type, endIndex } = match;
35
+ if (type === 'opening') {
36
+ stack.push(tagName);
37
+ }
38
+ else if (type === 'closing') {
39
+ stack.pop();
40
+ }
41
+ result += code.slice(currentPosition, currentPosition + endIndex);
42
+ currentPosition += endIndex;
43
+ }
44
+ return (result +
45
+ stack
46
+ .reverse()
47
+ .map((tag) => `</${tag}>`)
48
+ .join(''));
49
+ }
50
+ //# sourceMappingURL=streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.tsx"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,SAAS,WAAW,CAAC,IAAY;IAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,OAAO,IAAI,CAAA;KACd;IAED,MAAM,QAAQ,GAAG,6CAA6C,CAAA;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAElC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE;QAC9C,OAAO,IAAI,CAAA;KACd;IAED,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,KAAK,CAAA;IAE3D,MAAM,IAAI,GAAG,WAAW;QACpB,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO;QACH,GAAG,EAAE,SAAS;QACd,OAAO;QACP,IAAI;QACJ,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE;QAC7B,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM;KAC3C,CAAA;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,eAAe,GAAG,CAAC,CAAA;IAEvB,OAAO,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE;QAClC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK;YAAE,MAAK;QACjB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;QAEzC,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACtB;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE;YAC3B,KAAK,CAAC,GAAG,EAAE,CAAA;SACd;QAED,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,GAAG,QAAQ,CAAC,CAAA;QACjE,eAAe,IAAI,QAAQ,CAAA;KAC9B;IAED,OAAO,CACH,MAAM;QACN,KAAK;aACA,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC;aACzB,IAAI,CAAC,EAAE,CAAC,CAChB,CAAA;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "safe-mdx",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "private": false,
5
5
  "description": "Render MDX in React without eval",
6
6
  "repository": "https://github.com/holocron-hq/safe-mdx",
@@ -11,6 +11,9 @@ const components = {
11
11
  Heading({ level, children }) {
12
12
  return <h1>{children}</h1>
13
13
  },
14
+ Cards({ level, children }) {
15
+ return <div>{children}</div>
16
+ },
14
17
  }
15
18
 
16
19
  function render(code) {
@@ -21,11 +24,14 @@ function render(code) {
21
24
  return { result, errors: visitor.errors || [], html }
22
25
  }
23
26
  import { htmlToJsx } from 'html-to-jsx-transform'
27
+ import { completeJsxTags } from './streaming.js'
24
28
 
25
29
  test('htmlToJsx', () => {
26
30
  expect(htmlToJsx('<p x="y">')).toMatchInlineSnapshot(`"<p x="y" />"`)
27
31
  expect(htmlToJsx('<p>text</p>')).toMatchInlineSnapshot(`"<p>text</p>"`)
28
- expect(htmlToJsx('before <p>text</p>')).toMatchInlineSnapshot(`"<>before <p>text</p></>"`)
32
+ expect(htmlToJsx('before <p>text</p>')).toMatchInlineSnapshot(
33
+ `"<>before <p>text</p></>"`,
34
+ )
29
35
  expect(htmlToJsx('<nonexisting>text</nonexisting>')).toMatchInlineSnapshot(
30
36
  `"<nonexisting>text</nonexisting>"`,
31
37
  )
@@ -77,6 +83,38 @@ test('markdown inside jsx', () => {
77
83
  `)
78
84
  })
79
85
 
86
+ test('can complete jsx code with completeJsxTags', () => {
87
+ const code = dedent`
88
+ # Hello
89
+
90
+ <Cards>
91
+ <Heading prop="value">
92
+ some value
93
+
94
+ Component *children*
95
+
96
+
97
+
98
+ `
99
+
100
+ expect(render(completeJsxTags(code))).toMatchInlineSnapshot(`
101
+ {
102
+ "errors": [],
103
+ "html": "<h1>Hello</h1><div><h1></h1></div>",
104
+ "result": <React.Fragment>
105
+ <h1>
106
+ Hello
107
+ </h1>
108
+ <Cards>
109
+ <Heading
110
+ prop="value"
111
+ />
112
+ </Cards>
113
+ </React.Fragment>,
114
+ }
115
+ `)
116
+ })
117
+
80
118
  test('remark and jsx does not wrap in p', () => {
81
119
  const code = dedent`
82
120
  ---
package/src/safe-mdx.tsx CHANGED
@@ -13,6 +13,7 @@ import remarkGfm from 'remark-gfm'
13
13
  import remarkMdx from 'remark-mdx'
14
14
 
15
15
  import { Fragment, ReactNode } from 'react'
16
+ import { completeJsxTags } from './streaming.js'
16
17
 
17
18
  type MyRootContent = RootContent | Root
18
19
 
@@ -34,7 +35,7 @@ export type CustomTransformer = (
34
35
  transform: (node: MyRootContent) => ReactNode,
35
36
  ) => ReactNode | undefined
36
37
 
37
- export function SafeMdxRenderer({
38
+ export const SafeMdxRenderer = React.memo(function SafeMdxRenderer({
38
39
  components,
39
40
  code = '',
40
41
  mdast = null as any,
@@ -53,7 +54,7 @@ export function SafeMdxRenderer({
53
54
  })
54
55
  const result = visitor.run()
55
56
  return result
56
- }
57
+ })
57
58
 
58
59
  export class MdastToJsx {
59
60
  mdast: MyRootContent
@@ -251,7 +252,7 @@ export class MdastToJsx {
251
252
  )
252
253
  }
253
254
  case 'thematicBreak': {
254
- return <this.c.hr />
255
+ return <this.c.hr {...node.data?.hProperties} />
255
256
  }
256
257
  case 'code': {
257
258
  if (!node.value) {
@@ -321,6 +322,13 @@ export class MdastToJsx {
321
322
  if (!node.value) {
322
323
  return []
323
324
  }
325
+ if (node.data?.hProperties) {
326
+ return (
327
+ <this.c.span {...node.data.hProperties}>
328
+ {node.value}
329
+ </this.c.span>
330
+ )
331
+ }
324
332
  return node.value
325
333
  }
326
334
  case 'image': {
@@ -377,9 +385,12 @@ export class MdastToJsx {
377
385
  )
378
386
  }
379
387
  case 'break': {
380
- return <this.c.br />
388
+ return <this.c.br {...node.data?.hProperties} />
381
389
  }
382
390
  case 'root': {
391
+ if (node.data?.hProperties) {
392
+ return <this.c.div {...node.data.hProperties}>{this.mapMdastChildren(node)}</this.c.div>
393
+ }
383
394
  return <Fragment>{this.mapMdastChildren(node)}</Fragment>
384
395
  }
385
396
  case 'table': {
@@ -1028,3 +1039,5 @@ const mdxProcessor = remark()
1028
1039
  file.data.ast = tree
1029
1040
  }
1030
1041
  })
1042
+
1043
+ export { completeJsxTags }
@@ -0,0 +1,60 @@
1
+ // taken from https://www.prompt-kit.com/docs/jsx-preview
2
+
3
+ function matchJsxTag(code: string) {
4
+ if (code.trim() === '') {
5
+ return null
6
+ }
7
+
8
+ const tagRegex = /<\/?([a-zA-Z][a-zA-Z0-9]*)\s*([^>]*?)(\/)?>/
9
+ const match = code.match(tagRegex)
10
+
11
+ if (!match || typeof match.index === 'undefined') {
12
+ return null
13
+ }
14
+
15
+ const [fullMatch, tagName, attributes, selfClosing] = match
16
+
17
+ const type = selfClosing
18
+ ? 'self-closing'
19
+ : fullMatch.startsWith('</')
20
+ ? 'closing'
21
+ : 'opening'
22
+
23
+ return {
24
+ tag: fullMatch,
25
+ tagName,
26
+ type,
27
+ attributes: attributes.trim(),
28
+ startIndex: match.index,
29
+ endIndex: match.index + fullMatch.length,
30
+ }
31
+ }
32
+
33
+ export function completeJsxTags(code: string) {
34
+ const stack: string[] = []
35
+ let result = ''
36
+ let currentPosition = 0
37
+
38
+ while (currentPosition < code.length) {
39
+ const match = matchJsxTag(code.slice(currentPosition))
40
+ if (!match) break
41
+ const { tagName, type, endIndex } = match
42
+
43
+ if (type === 'opening') {
44
+ stack.push(tagName)
45
+ } else if (type === 'closing') {
46
+ stack.pop()
47
+ }
48
+
49
+ result += code.slice(currentPosition, currentPosition + endIndex)
50
+ currentPosition += endIndex
51
+ }
52
+
53
+ return (
54
+ result +
55
+ stack
56
+ .reverse()
57
+ .map((tag) => `</${tag}>`)
58
+ .join('')
59
+ )
60
+ }