safe-mdx 1.3.10 → 1.5.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.
@@ -452,6 +452,7 @@ test('missing components are ignored', () => {
452
452
  {
453
453
  "line": 1,
454
454
  "message": "Unsupported jsx component MissingComponent",
455
+ "type": "missing-component",
455
456
  },
456
457
  ],
457
458
  "html": "",
@@ -486,10 +487,12 @@ test('props parsing', () => {
486
487
  {
487
488
  "line": 8,
488
489
  "message": "Failed to evaluate expression attribute: expression2={Boolean(1)}. Functions are not supported",
490
+ "type": "expression",
489
491
  },
490
492
  {
491
493
  "line": 8,
492
494
  "message": "Expressions in jsx prop not evaluated: (expression2={Boolean(1)})",
495
+ "type": "expression",
493
496
  },
494
497
  {
495
498
  "line": 9,
@@ -498,10 +501,12 @@ test('props parsing', () => {
498
501
  {
499
502
  "line": 9,
500
503
  "message": "Failed to evaluate expression attribute: jsx={<SomeComponent />}. visitor "JSXElement" is not supported",
504
+ "type": "expression",
501
505
  },
502
506
  {
503
507
  "line": 9,
504
508
  "message": "Expressions in jsx prop not evaluated: (jsx={<SomeComponent />})",
509
+ "type": "expression",
505
510
  },
506
511
  ],
507
512
  "html": "<h1 num="2" doublequote="a &quot; string" quote="a &#x27; string" backTick="some undefined value" expression1="4" someJson="[object Object]"><p>hi</p></h1>",
@@ -2470,16 +2475,19 @@ test('component props schema validation with zod', () => {
2470
2475
  "line": 5,
2471
2476
  "message": "Invalid props for component "Heading" at "level": Too big: expected number to be <=6",
2472
2477
  "schemaPath": "level",
2478
+ "type": "validation",
2473
2479
  },
2474
2480
  {
2475
2481
  "line": 7,
2476
2482
  "message": "Invalid props for component "Cards" at "count": Too small: expected number to be >0",
2477
2483
  "schemaPath": "count",
2484
+ "type": "validation",
2478
2485
  },
2479
2486
  {
2480
2487
  "line": 9,
2481
2488
  "message": "Invalid props for component "Cards" at "count": Invalid input: expected number, received string",
2482
2489
  "schemaPath": "count",
2490
+ "type": "validation",
2483
2491
  },
2484
2492
  ],
2485
2493
  "html": "<h1 title="test">Valid heading</h1><div count="3" variant="outline">Valid cards</div><h1 title="test">Invalid heading - level too high</h1><div count="-1">Invalid cards - negative count</div><div count="not a number">Invalid cards - wrong type</div>",
@@ -2516,6 +2524,64 @@ test('component props schema validation with zod', () => {
2516
2524
  }
2517
2525
  `);
2518
2526
  });
2527
+ test('onError callback is called for each error', () => {
2528
+ const errors = [];
2529
+ const code = dedent `
2530
+ <Missing>should error</Missing>
2531
+
2532
+ <Heading level={10}>invalid level</Heading>
2533
+ `;
2534
+ const componentPropsSchema = {
2535
+ Heading: z.object({
2536
+ level: z.number().min(1).max(6),
2537
+ }),
2538
+ };
2539
+ const mdast = mdxParse(code);
2540
+ const visitor = new MdastToJsx({
2541
+ markdown: code,
2542
+ mdast,
2543
+ components,
2544
+ componentPropsSchema,
2545
+ onError: (err) => errors.push(err),
2546
+ });
2547
+ visitor.run();
2548
+ expect(errors).toMatchInlineSnapshot(`
2549
+ [
2550
+ {
2551
+ "line": 1,
2552
+ "message": "Unsupported jsx component Missing",
2553
+ "type": "missing-component",
2554
+ },
2555
+ {
2556
+ "line": 3,
2557
+ "message": "Invalid props for component "Heading" at "level": Too big: expected number to be <=6",
2558
+ "schemaPath": "level",
2559
+ "type": "validation",
2560
+ },
2561
+ ]
2562
+ `);
2563
+ // errors array and onError callback should have the same errors
2564
+ expect(visitor.errors).toEqual(errors);
2565
+ });
2566
+ test('onError callback can throw to stop rendering', () => {
2567
+ const code = dedent `
2568
+ <Missing>should throw</Missing>
2569
+
2570
+ <Heading>should not reach</Heading>
2571
+ `;
2572
+ const mdast = mdxParse(code);
2573
+ expect(() => {
2574
+ const visitor = new MdastToJsx({
2575
+ markdown: code,
2576
+ mdast,
2577
+ components,
2578
+ onError: (err) => {
2579
+ throw new Error(`MDX error on line ${err.line}: ${err.message}`);
2580
+ },
2581
+ });
2582
+ visitor.run();
2583
+ }).toThrow('MDX error on line 1: Unsupported jsx component Missing');
2584
+ });
2519
2585
  test('mdx expressions evaluation', () => {
2520
2586
  expect(render(dedent `
2521
2587
  # Expression Test
@@ -2568,10 +2634,12 @@ test('mdx expressions with unsupported functions', () => {
2568
2634
  {
2569
2635
  "line": 1,
2570
2636
  "message": "Failed to evaluate expression: Math.max(5, 10). Functions are not supported",
2637
+ "type": "expression",
2571
2638
  },
2572
2639
  {
2573
2640
  "line": 2,
2574
2641
  "message": "Failed to evaluate expression: console.log("test"). Functions are not supported",
2642
+ "type": "expression",
2575
2643
  },
2576
2644
  ],
2577
2645
  "html": "<p>Math function:
@@ -2671,11 +2739,13 @@ test('validation error includes schema path', () => {
2671
2739
  "line": 1,
2672
2740
  "message": "Invalid props for component "Heading" at "user.age": Too small: expected number to be >=0",
2673
2741
  "schemaPath": "user.age",
2742
+ "type": "validation",
2674
2743
  },
2675
2744
  {
2676
2745
  "line": 1,
2677
2746
  "message": "Invalid props for component "Heading" at "settings.theme": Invalid option: expected one of "light"|"dark"",
2678
2747
  "schemaPath": "settings.theme",
2748
+ "type": "validation",
2679
2749
  },
2680
2750
  ],
2681
2751
  "html": "<h1 user="[object Object]" settings="[object Object]">Complex validation</h1>",
@@ -2799,6 +2869,7 @@ test('mdxJsxExpressionAttribute edge cases', () => {
2799
2869
  {
2800
2870
  "line": 3,
2801
2871
  "message": "Failed to evaluate expression attribute: ...{null: null, undefined: undefined}. undefined is undefined",
2872
+ "type": "expression",
2802
2873
  },
2803
2874
  ],
2804
2875
  "html": "<h1 title="empty spread">Empty spread</h1><h1 title="null/undefined values">Null/undefined</h1><h1 array="1,2,3" object="[object Object]" title="complex values">Complex types</h1>",
@@ -3030,10 +3101,12 @@ test("jsx components in attributes error handling", () => {
3030
3101
  {
3031
3102
  "line": 3,
3032
3103
  "message": "Failed to evaluate expression attribute: icon={<UnsupportedComponent />}. visitor "JSXElement" is not supported",
3104
+ "type": "expression",
3033
3105
  },
3034
3106
  {
3035
3107
  "line": 3,
3036
3108
  "message": "Expressions in jsx prop not evaluated: (icon={<UnsupportedComponent />})",
3109
+ "type": "expression",
3037
3110
  },
3038
3111
  ]
3039
3112
  `);
@@ -3353,4 +3426,110 @@ test("skip unknown elements in complex nested HTML structures", () => {
3353
3426
  `);
3354
3427
  expect(html).toMatchInlineSnapshot(`"<h1>Main Title</h1><article><header><h1>Article Title</h1></header><section><blockquote><p>A famous quote</p></blockquote></section><footer></footer></article><h2>Another Section</h2><div></div>"`);
3355
3428
  });
3429
+ /* ── modules prop tests ─────────────────────────────────────────────── */
3430
+ test('modules prop: resolves named import from absolute path', () => {
3431
+ function CustomBadge({ label }) {
3432
+ return _jsx("span", { className: "badge", children: label });
3433
+ }
3434
+ const code = dedent `
3435
+ import { CustomBadge } from '/snippets/badge'
3436
+
3437
+ # Hello
3438
+
3439
+ <CustomBadge label="Works" />
3440
+ `;
3441
+ const mdast = mdxParse(code);
3442
+ const visitor = new MdastToJsx({
3443
+ markdown: code,
3444
+ mdast,
3445
+ components,
3446
+ modules: {
3447
+ './snippets/badge.tsx': { CustomBadge },
3448
+ },
3449
+ baseUrl: './pages/',
3450
+ });
3451
+ const result = visitor.run();
3452
+ const html = renderToStaticMarkup(result);
3453
+ expect(html).toMatchInlineSnapshot(`"<h1>Hello</h1><span class="badge">Works</span>"`);
3454
+ expect(visitor.errors).toMatchInlineSnapshot(`[]`);
3455
+ });
3456
+ test('modules prop: resolves default import from relative path', () => {
3457
+ function MyCard({ children }) {
3458
+ return _jsx("div", { className: "card", children: children });
3459
+ }
3460
+ const code = dedent `
3461
+ import MyCard from './card'
3462
+
3463
+ <MyCard>content</MyCard>
3464
+ `;
3465
+ const mdast = mdxParse(code);
3466
+ const visitor = new MdastToJsx({
3467
+ markdown: code,
3468
+ mdast,
3469
+ components,
3470
+ modules: {
3471
+ './pages/card.tsx': { default: MyCard },
3472
+ },
3473
+ baseUrl: './pages/',
3474
+ });
3475
+ const result = visitor.run();
3476
+ const html = renderToStaticMarkup(result);
3477
+ expect(html).toMatchInlineSnapshot(`"<div class="card">content</div>"`);
3478
+ expect(visitor.errors).toMatchInlineSnapshot(`[]`);
3479
+ });
3480
+ test('modules prop: resolves namespace import with dot notation', () => {
3481
+ function Card({ title }) {
3482
+ return _jsx("div", { children: title });
3483
+ }
3484
+ function Badge({ label }) {
3485
+ return _jsx("span", { children: label });
3486
+ }
3487
+ const code = dedent `
3488
+ import * as UI from './ui'
3489
+
3490
+ <UI.Card title="hello" />
3491
+ <UI.Badge label="tag" />
3492
+ `;
3493
+ const mdast = mdxParse(code);
3494
+ const visitor = new MdastToJsx({
3495
+ markdown: code,
3496
+ mdast,
3497
+ components,
3498
+ modules: {
3499
+ './components/ui.tsx': { Card, Badge },
3500
+ },
3501
+ baseUrl: './components/',
3502
+ });
3503
+ const result = visitor.run();
3504
+ const html = renderToStaticMarkup(result);
3505
+ expect(html).toMatchInlineSnapshot(`"<div>hello</div><span>tag</span>"`);
3506
+ expect(visitor.errors).toMatchInlineSnapshot(`[]`);
3507
+ });
3508
+ test('modules prop: unresolved import produces error', () => {
3509
+ const code = dedent `
3510
+ import { Missing } from './nonexistent'
3511
+
3512
+ <Missing />
3513
+ `;
3514
+ const mdast = mdxParse(code);
3515
+ const visitor = new MdastToJsx({
3516
+ markdown: code,
3517
+ mdast,
3518
+ components,
3519
+ modules: {},
3520
+ baseUrl: './pages/',
3521
+ });
3522
+ const result = visitor.run();
3523
+ const html = renderToStaticMarkup(result);
3524
+ expect(html).toMatchInlineSnapshot(`""`);
3525
+ expect(visitor.errors).toMatchInlineSnapshot(`
3526
+ [
3527
+ {
3528
+ "line": 3,
3529
+ "message": "Unsupported jsx component Missing",
3530
+ "type": "missing-component",
3531
+ },
3532
+ ]
3533
+ `);
3534
+ });
3356
3535
  //# sourceMappingURL=safe-mdx.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-mdx.test.js","sourceRoot":"","sources":["../src/safe-mdx.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-mdx.test.js","sourceRoot":"","sources":["../src/safe-mdx.test.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "safe-mdx",
3
- "version": "1.3.10",
3
+ "version": "1.5.0",
4
4
  "private": false,
5
5
  "description": "Render MDX in React without eval",
6
6
  "repository": "https://github.com/holocron-hq/safe-mdx",
@@ -1,6 +1,6 @@
1
1
  import { expect, test, describe } from 'vitest'
2
2
  import { parseEsmImports, extractComponentInfo } from './esm-parser.js'
3
- import { mdxParse } from './parse.js'
3
+ import { mdxParse, extractImports, resolveModulePath } from './parse.js'
4
4
  import type { SafeMdxError } from './safe-mdx.js'
5
5
 
6
6
  describe('parseEsmImports', () => {
@@ -67,14 +67,17 @@ import Component3 from './relative/path'
67
67
  {
68
68
  "line": 2,
69
69
  "message": "Invalid import URL: "http://insecure.com/component". Only HTTPS URLs are allowed for security reasons.",
70
+ "type": "esm-import",
70
71
  },
71
72
  {
72
73
  "line": 2,
73
74
  "message": "Invalid import URL: "file:///local/path". Only HTTPS URLs are allowed for security reasons.",
75
+ "type": "esm-import",
74
76
  },
75
77
  {
76
78
  "line": 2,
77
79
  "message": "Invalid import URL: "./relative/path". Only HTTPS URLs are allowed for security reasons.",
80
+ "type": "esm-import",
78
81
  },
79
82
  ]
80
83
  `)
@@ -118,6 +121,194 @@ import Component3 from './relative/path'
118
121
  })
119
122
  })
120
123
 
124
+ describe('extractImports', () => {
125
+ test('extracts named, default, and namespace imports', () => {
126
+ const code = `import { Card } from './components/card'
127
+ import MyButton from '../ui/button'
128
+ import * as Utils from './utils'
129
+
130
+ # Hello
131
+ `
132
+ const ast = mdxParse(code)
133
+ const imports = extractImports(ast)
134
+ expect(imports).toMatchInlineSnapshot(`
135
+ [
136
+ {
137
+ "source": "./components/card",
138
+ "specifiers": [
139
+ {
140
+ "imported": "Card",
141
+ "local": "Card",
142
+ "type": "named",
143
+ },
144
+ ],
145
+ },
146
+ {
147
+ "source": "../ui/button",
148
+ "specifiers": [
149
+ {
150
+ "imported": "default",
151
+ "local": "MyButton",
152
+ "type": "default",
153
+ },
154
+ ],
155
+ },
156
+ {
157
+ "source": "./utils",
158
+ "specifiers": [
159
+ {
160
+ "imported": "*",
161
+ "local": "Utils",
162
+ "type": "namespace",
163
+ },
164
+ ],
165
+ },
166
+ ]
167
+ `)
168
+ })
169
+
170
+ test('extracts npm package imports', () => {
171
+ const code = `import { Button } from 'some-ui-lib'
172
+ import React from 'react'
173
+ `
174
+ const ast = mdxParse(code)
175
+ const imports = extractImports(ast)
176
+ expect(imports).toMatchInlineSnapshot(`
177
+ [
178
+ {
179
+ "source": "some-ui-lib",
180
+ "specifiers": [
181
+ {
182
+ "imported": "Button",
183
+ "local": "Button",
184
+ "type": "named",
185
+ },
186
+ ],
187
+ },
188
+ {
189
+ "source": "react",
190
+ "specifiers": [
191
+ {
192
+ "imported": "default",
193
+ "local": "React",
194
+ "type": "default",
195
+ },
196
+ ],
197
+ },
198
+ ]
199
+ `)
200
+ })
201
+
202
+ test('extracts absolute path imports (Mintlify style)', () => {
203
+ const code = `import Greeting from "/snippets/greeting.mdx"
204
+ import { Badge } from "/components/badge"
205
+ `
206
+ const ast = mdxParse(code)
207
+ const imports = extractImports(ast)
208
+ expect(imports).toMatchInlineSnapshot(`
209
+ [
210
+ {
211
+ "source": "/snippets/greeting.mdx",
212
+ "specifiers": [
213
+ {
214
+ "imported": "default",
215
+ "local": "Greeting",
216
+ "type": "default",
217
+ },
218
+ ],
219
+ },
220
+ {
221
+ "source": "/components/badge",
222
+ "specifiers": [
223
+ {
224
+ "imported": "Badge",
225
+ "local": "Badge",
226
+ "type": "named",
227
+ },
228
+ ],
229
+ },
230
+ ]
231
+ `)
232
+ })
233
+
234
+ test('returns empty array when no imports', () => {
235
+ const code = `# Just a heading\n\nSome text.`
236
+ const ast = mdxParse(code)
237
+ expect(extractImports(ast)).toMatchInlineSnapshot(`[]`)
238
+ })
239
+
240
+ test('handles aliased imports', () => {
241
+ const code = `import { Card as MyCard, Badge as B } from './ui'`
242
+ const ast = mdxParse(code)
243
+ const imports = extractImports(ast)
244
+ expect(imports).toMatchInlineSnapshot(`
245
+ [
246
+ {
247
+ "source": "./ui",
248
+ "specifiers": [
249
+ {
250
+ "imported": "Card",
251
+ "local": "MyCard",
252
+ "type": "named",
253
+ },
254
+ {
255
+ "imported": "Badge",
256
+ "local": "B",
257
+ "type": "named",
258
+ },
259
+ ],
260
+ },
261
+ ]
262
+ `)
263
+ })
264
+ })
265
+
266
+ describe('resolveModulePath', () => {
267
+ const keys = [
268
+ './snippets/card.tsx',
269
+ './snippets/badge.ts',
270
+ './components/ui/index.tsx',
271
+ './pages/api/helpers.ts',
272
+ './pages/card.tsx',
273
+ './snippets/greeting.mdx',
274
+ ]
275
+
276
+ test('resolves absolute import /snippets/card', () => {
277
+ expect(resolveModulePath('/snippets/card', './pages/', keys))
278
+ .toMatchInlineSnapshot(`"./snippets/card.tsx"`)
279
+ })
280
+
281
+ test('resolves relative import ./card from ./pages/', () => {
282
+ expect(resolveModulePath('./card', './pages/', keys))
283
+ .toMatchInlineSnapshot(`"./pages/card.tsx"`)
284
+ })
285
+
286
+ test('resolves index.tsx', () => {
287
+ expect(resolveModulePath('/components/ui', './pages/', keys))
288
+ .toMatchInlineSnapshot(`"./components/ui/index.tsx"`)
289
+ })
290
+
291
+ test('resolves relative ../ path', () => {
292
+ expect(resolveModulePath('../snippets/greeting', './pages/api/', keys))
293
+ .toMatchInlineSnapshot(`undefined`)
294
+ })
295
+
296
+ test('resolves ../../ to reach project root', () => {
297
+ expect(resolveModulePath('../../snippets/greeting', './pages/api/', keys))
298
+ .toMatchInlineSnapshot(`"./snippets/greeting.mdx"`)
299
+ })
300
+
301
+ test('returns undefined for bare specifiers', () => {
302
+ expect(resolveModulePath('react', './pages/', keys))
303
+ .toMatchInlineSnapshot(`undefined`)
304
+ })
305
+
306
+ test('returns undefined for missing files', () => {
307
+ expect(resolveModulePath('./nonexistent', './pages/', keys))
308
+ .toMatchInlineSnapshot(`undefined`)
309
+ })
310
+ })
311
+
121
312
  describe('extractComponentInfo', () => {
122
313
  test('extracts default import info', () => {
123
314
  const result = extractComponentInfo('https://esm.sh/component')
package/src/esm-parser.ts CHANGED
@@ -45,6 +45,7 @@ export function parseEsmImports(
45
45
  // Validate URL
46
46
  if (!isValidHttpsUrl(importUrl)) {
47
47
  onError({
48
+ type: 'esm-import',
48
49
  message: `Invalid import URL: "${importUrl}". Only HTTPS URLs are allowed for security reasons.`,
49
50
  line: node.position?.start?.line,
50
51
  })
@@ -69,6 +70,7 @@ export function parseEsmImports(
69
70
  }
70
71
  } catch (error) {
71
72
  onError({
73
+ type: 'esm-import',
72
74
  message: `Failed to parse ESM import: ${error instanceof Error ? error.message : 'Unknown error'}`,
73
75
  line: node.position?.start?.line,
74
76
  })