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.
- package/README.md +191 -5
- package/dist/esm-parser.d.ts.map +1 -1
- package/dist/esm-parser.js +2 -0
- package/dist/esm-parser.js.map +1 -1
- package/dist/esm-parser.test.js +179 -1
- package/dist/esm-parser.test.js.map +1 -1
- package/dist/parse.d.ts +44 -0
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +127 -0
- package/dist/parse.js.map +1 -1
- package/dist/safe-mdx.d.ts +29 -1
- package/dist/safe-mdx.d.ts.map +1 -1
- package/dist/safe-mdx.js +81 -10
- package/dist/safe-mdx.js.map +1 -1
- package/dist/safe-mdx.test.js +179 -0
- package/dist/safe-mdx.test.js.map +1 -1
- package/package.json +1 -1
- package/src/esm-parser.test.ts +192 -1
- package/src/esm-parser.ts +2 -0
- package/src/parse.ts +165 -0
- package/src/safe-mdx.test.tsx +190 -1
- package/src/safe-mdx.tsx +104 -8
package/dist/safe-mdx.test.js
CHANGED
|
@@ -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 " string" quote="a ' 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
package/src/esm-parser.test.ts
CHANGED
|
@@ -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
|
})
|