safe-mdx 1.9.0 → 1.11.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.
@@ -283,6 +283,31 @@ describe('resolveModulePath', () => {
283
283
  expect(resolveModulePath('./nonexistent', './pages/', keys))
284
284
  .toMatchInlineSnapshot(`undefined`);
285
285
  });
286
+ test('resolves ?raw import with exact key match', () => {
287
+ const rawKeys = [...keys, './snippets/example.py?raw'];
288
+ expect(resolveModulePath('./example.py?raw', './snippets/', rawKeys))
289
+ .toMatchInlineSnapshot(`"./snippets/example.py?raw"`);
290
+ });
291
+ test('resolves absolute ?raw import', () => {
292
+ const rawKeys = [...keys, './snippets/code.py?raw'];
293
+ expect(resolveModulePath('/snippets/code.py?raw', './', rawKeys))
294
+ .toMatchInlineSnapshot(`"./snippets/code.py?raw"`);
295
+ });
296
+ test('resolves extensionless ?raw import via extension probing', () => {
297
+ const rawKeys = [...keys, './snippets/example.ts?raw'];
298
+ expect(resolveModulePath('./example?raw', './snippets/', rawKeys))
299
+ .toMatchInlineSnapshot(`"./snippets/example.ts?raw"`);
300
+ });
301
+ test('resolves extensionless ?url import via extension probing', () => {
302
+ const rawKeys = [...keys, './worker.ts?url'];
303
+ expect(resolveModulePath('./worker?url', './', rawKeys))
304
+ .toMatchInlineSnapshot(`"./worker.ts?url"`);
305
+ });
306
+ test('resolves extensionless absolute ?raw import', () => {
307
+ const rawKeys = [...keys, './snippets/greeting.mdx?raw'];
308
+ expect(resolveModulePath('/snippets/greeting?raw', './', rawKeys))
309
+ .toMatchInlineSnapshot(`"./snippets/greeting.mdx?raw"`);
310
+ });
286
311
  });
287
312
  describe('extractComponentInfo', () => {
288
313
  test('extracts default import info', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"esm-parser.test.js","sourceRoot":"","sources":["../src/esm-parser.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAGxE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,IAAI,GAAG,yDAAyD,CAAA;QACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAmB,EAAE,CAAA;QAEjC,yBAAyB;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;QAC5E,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAEnE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;SAO3D,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,IAAI,GAAG,oEAAoE,CAAA;QACjF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAmB,EAAE,CAAA;QAEjC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;QAC5E,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAEnE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;SAW3D,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,IAAI,GAAG;;;;CAIpB,CAAA;QACO,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAmB,EAAE,CAAA;QAEjC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YACpD,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;SAkBpC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,IAAI,GAAG,iFAAiF,CAAA;QAC9F,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,MAAM,GAAmB,EAAE,CAAA;QAEjC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;QAC5E,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAEnE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;SAe3D,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAmB,EAAE,CAAA;QACjC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;QAEnE,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAEhE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,IAAI,GAAG;;;;;CAKpB,CAAA;QACO,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAiCrC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG;;CAEpB,CAAA;QACO,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;SAuBrC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,IAAI,GAAG;;CAEpB,CAAA;QACO,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;SAuBrC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG,gCAAgC,CAAA;QAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,IAAI,GAAG,mDAAmD,CAAA;QAChE,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;SAkBrC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,MAAM,IAAI,GAAG;QACT,qBAAqB;QACrB,qBAAqB;QACrB,2BAA2B;QAC3B,wBAAwB;QACxB,kBAAkB;QAClB,yBAAyB;QACzB,oBAAoB;KACvB,CAAA;IAED,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;aACxD,qBAAqB,CAAC,uBAAuB,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;aAChD,qBAAqB,CAAC,oBAAoB,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;aACxD,qBAAqB,CAAC,6BAA6B,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;aAClE,qBAAqB,CAAC,WAAW,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;aACrE,qBAAqB,CAAC,2BAA2B,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aACtD,qBAAqB,CAAC,sBAAsB,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;aAC/C,qBAAqB,CAAC,WAAW,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,iBAAiB,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;aACvD,qBAAqB,CAAC,WAAW,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,0BAA0B,CAAC,CAAA;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;SAKpC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,oBAAoB,CAAC,kCAAkC,CAAC,CAAA;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;SAKpC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"esm-parser.test.js","sourceRoot":"","sources":["../src/esm-parser.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAe,MAAM,OAAO,CAAA;AAIzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAE1E,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAIhC,MAAM,MAAM,kBAAkB,GAAG;IAC7B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAA;IACb,uGAAuG;IACvG,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,kBAAkB,EAAE,CAAA;CACnC,CAAA;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS,EAAE,CAkCrD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAET,IAAI,CAC/B;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,gGAAgG;IAChG,aAAa,CAAC,EAAE,GAAG,EAAE,CAAA;CACxB,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EAC/B,aAAkB,GACrB,GAAE,mBAAwB,yEAqB1B;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEhE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,KACf,MAAM,IAAI,UAuE9B;AAUD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,GACrB,MAAM,GAAG,SAAS,CAwBpB;AA0BD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AACzE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;AAE9D;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,OAAO,GACV,EAAE;IACC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,IAAI,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBxB;AAED,eAAO,MAAM,YAAY,uEAAuB,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAe,MAAM,OAAO,CAAA;AAIzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAE1E,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAIhC,MAAM,MAAM,kBAAkB,GAAG;IAC7B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAA;IACb,uGAAuG;IACvG,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,kBAAkB,EAAE,CAAA;CACnC,CAAA;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS,EAAE,CAkCrD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAET,IAAI,CAC/B;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,gGAAgG;IAChG,aAAa,CAAC,EAAE,GAAG,EAAE,CAAA;CACxB,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EAC/B,aAAkB,GACrB,GAAE,mBAAwB,yEAqB1B;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEhE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,KACf,MAAM,IAAI,UAuE9B;AAUD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,GACrB,MAAM,GAAG,SAAS,CA8BpB;AA0BD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AACzE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;AAE9D;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,OAAO,GACV,EAAE;IACC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,IAAI,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBxB;AAED,eAAO,MAAM,YAAY,uEAAuB,CAAA"}
package/dist/parse.js CHANGED
@@ -154,23 +154,28 @@ const RESOLVE_EXTENSIONS = [
154
154
  * - Extension resolution (tries .tsx, .ts, .jsx, .js, .mdx, .md, /index.*)
155
155
  */
156
156
  export function resolveModulePath(source, baseUrl, moduleKeys) {
157
+ // Split Vite query/hash suffixes (?raw, ?url, ?inline, etc.) before
158
+ // path normalization and extension probing, then reattach after.
159
+ const suffixIdx = source.search(/[?#]/);
160
+ const querySuffix = suffixIdx >= 0 ? source.slice(suffixIdx) : '';
161
+ const cleanSource = suffixIdx >= 0 ? source.slice(0, suffixIdx) : source;
157
162
  let normalized;
158
- if (source.startsWith('/')) {
163
+ if (cleanSource.startsWith('/')) {
159
164
  // Absolute import from project root: /snippets/card → ./snippets/card
160
- normalized = '.' + source;
165
+ normalized = '.' + cleanSource;
161
166
  }
162
- else if (source.startsWith('./') || source.startsWith('../')) {
167
+ else if (cleanSource.startsWith('./') || cleanSource.startsWith('../')) {
163
168
  // Relative import: resolve from baseUrl
164
- const joined = joinPaths(baseUrl, source);
169
+ const joined = joinPaths(baseUrl, cleanSource);
165
170
  normalized = joined;
166
171
  }
167
172
  else {
168
173
  // Bare specifier (npm package etc.) — not resolvable from glob
169
174
  return undefined;
170
175
  }
171
- // Try each extension
176
+ // Try each extension, reattaching query suffix
172
177
  for (const ext of RESOLVE_EXTENSIONS) {
173
- const candidate = normalized + ext;
178
+ const candidate = normalized + ext + querySuffix;
174
179
  if (moduleKeys.includes(candidate)) {
175
180
  return candidate;
176
181
  }
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,10 @@ export declare class MdastToJsx {
81
81
  baseUrl?: string;
82
82
  onError?: (error: SafeMdxError) => void;
83
83
  scope?: Record<string, any>;
84
+ /** Whether the caller passed a non-empty scope. Used to decide if
85
+ * function calls should be auto-enabled — module imports adding to
86
+ * scope should NOT flip this flag. */
87
+ private userProvidedScope;
84
88
  evaluateOptions?: EvaluateOptions;
85
89
  constructor({ markdown: code, mdast, components, renderNode, componentPropsSchema, createElement, allowClientEsmImports, addMarkdownLineNumbers, modules, baseUrl, onError, scope, evaluateOptions, }: {
86
90
  markdown?: string;
@@ -112,7 +116,8 @@ export declare class MdastToJsx {
112
116
  * Resolved components are added directly to `this.c` (the component map)
113
117
  * so the existing `accessWithDot` lookup finds them.
114
118
  */
115
- resolveImportsFromModules(node: MyRootContent): void;
119
+ /** Resolve imports from pre-loaded modules. Returns the set of local names that were resolved. */
120
+ resolveImportsFromModules(node: MyRootContent): Set<string>;
116
121
  addLineNumberToProps(props: Record<string, any> | undefined, node: MyRootContent): Record<string, any>;
117
122
  validateComponentProps(componentName: string, props: Record<string, any>, line?: number): void;
118
123
  mapMdastChildren(node: any): any;
@@ -1 +1 @@
1
- {"version":3,"file":"safe-mdx.d.ts","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-mdx.d.ts","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"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"}
package/dist/safe-mdx.js CHANGED
@@ -40,6 +40,10 @@ export class MdastToJsx {
40
40
  baseUrl;
41
41
  onError;
42
42
  scope;
43
+ /** Whether the caller passed a non-empty scope. Used to decide if
44
+ * function calls should be auto-enabled — module imports adding to
45
+ * scope should NOT flip this flag. */
46
+ userProvidedScope = false;
43
47
  evaluateOptions;
44
48
  constructor({ markdown: code = '', mdast, components = {}, renderNode, componentPropsSchema, createElement = React.createElement, allowClientEsmImports = false, addMarkdownLineNumbers = false, modules, baseUrl, onError, scope, evaluateOptions, }) {
45
49
  this.str = code;
@@ -52,7 +56,8 @@ export class MdastToJsx {
52
56
  this.modules = modules;
53
57
  this.baseUrl = baseUrl;
54
58
  this.onError = onError;
55
- this.scope = scope;
59
+ this.scope = scope ? { ...scope } : undefined;
60
+ this.userProvidedScope = !!scope && Object.keys(scope).length > 0;
56
61
  this.evaluateOptions = evaluateOptions;
57
62
  this.c = {
58
63
  ...Object.fromEntries(nativeTags.map((tag) => {
@@ -70,10 +75,12 @@ export class MdastToJsx {
70
75
  * Resolved components are added directly to `this.c` (the component map)
71
76
  * so the existing `accessWithDot` lookup finds them.
72
77
  */
78
+ /** Resolve imports from pre-loaded modules. Returns the set of local names that were resolved. */
73
79
  resolveImportsFromModules(node) {
80
+ const resolved = new Set();
74
81
  const estree = node.data?.estree;
75
82
  if (!estree)
76
- return;
83
+ return resolved;
77
84
  const moduleKeys = Object.keys(this.modules);
78
85
  for (const statement of estree.body) {
79
86
  if (statement.type !== 'ImportDeclaration')
@@ -81,29 +88,41 @@ export class MdastToJsx {
81
88
  const source = statement.source?.value;
82
89
  if (typeof source !== 'string')
83
90
  continue;
84
- const resolved = resolveModulePath(source, this.baseUrl || './', moduleKeys);
85
- if (!resolved)
91
+ const resolvedPath = resolveModulePath(source, this.baseUrl || './', moduleKeys);
92
+ if (!resolvedPath)
86
93
  continue;
87
- const mod = this.modules[resolved];
88
- if (!mod)
94
+ const mod = this.modules[resolvedPath];
95
+ if (mod == null)
89
96
  continue;
90
97
  for (const spec of statement.specifiers ?? []) {
98
+ let value;
91
99
  if (spec.type === 'ImportDefaultSpecifier') {
92
- this.c[spec.local.name] = mod.default ?? mod;
100
+ value = mod.default ?? mod;
93
101
  }
94
102
  else if (spec.type === 'ImportSpecifier') {
95
103
  const importedName = spec.imported.type === 'Identifier'
96
104
  ? spec.imported.name
97
105
  : String(spec.imported.value);
98
- this.c[spec.local.name] = mod[importedName];
106
+ value = mod[importedName];
99
107
  }
100
108
  else if (spec.type === 'ImportNamespaceSpecifier') {
101
109
  // Namespace import: import * as UI from '...'
102
110
  // Supports <UI.Card> via accessWithDot
103
- this.c[spec.local.name] = mod;
111
+ value = mod;
112
+ }
113
+ else {
114
+ continue;
104
115
  }
116
+ this.c[spec.local.name] = value;
117
+ resolved.add(spec.local.name);
118
+ // Also add to scope so values are available in expressions
119
+ // like {code} or prop={code}
120
+ if (!this.scope)
121
+ this.scope = {};
122
+ this.scope[spec.local.name] = value;
105
123
  }
106
124
  }
125
+ return resolved;
107
126
  }
108
127
  addLineNumberToProps(props, node) {
109
128
  if (!this.addMarkdownLineNumbers) {
@@ -326,8 +345,8 @@ export class MdastToJsx {
326
345
  evaluateExpression(expression) {
327
346
  const hasScope = this.scope && Object.keys(this.scope).length > 0;
328
347
  const context = hasScope ? this.scope : undefined;
329
- const options = hasScope || this.evaluateOptions
330
- ? { ...(hasScope ? { functions: true } : {}), ...this.evaluateOptions }
348
+ const options = this.userProvidedScope || this.evaluateOptions
349
+ ? { ...(this.userProvidedScope ? { functions: true } : {}), ...this.evaluateOptions }
331
350
  : undefined;
332
351
  // When functions are enabled and the user hasn't provided their own
333
352
  // `generate` (escodegen), inject our safe AST-interpreting visitors
@@ -341,6 +360,15 @@ export class MdastToJsx {
341
360
  ...createSafeFunctionVisitors(),
342
361
  };
343
362
  }
363
+ // When scope is provided, check that referenced identifiers exist
364
+ // before evaluation. eval-estree-expression silently returns undefined
365
+ // for missing identifiers, so we catch them here to produce clear errors.
366
+ if (context) {
367
+ const missing = findMissingIdentifiers(expression, context);
368
+ if (missing.length > 0) {
369
+ throw new Error(`${missing[0]} is not defined. Available variables: ${Object.keys(context).join(', ')}`);
370
+ }
371
+ }
344
372
  return Evaluate.evaluate.sync(expression, context, options);
345
373
  }
346
374
  getJsxAttrs(node, onError = console.error) {
@@ -502,9 +530,62 @@ export class MdastToJsx {
502
530
  }
503
531
  switch (node.type) {
504
532
  case 'mdxjsEsm': {
533
+ const estree = node.data?.estree;
534
+ const nodeLine = node.position?.start?.line;
535
+ // Warn about export declarations (not supported in safe-mdx)
536
+ if (estree) {
537
+ for (const stmt of estree.body) {
538
+ if (stmt.type === 'ExportNamedDeclaration' || stmt.type === 'ExportDefaultDeclaration') {
539
+ const stmtLine = stmt.loc?.start?.line ?? nodeLine;
540
+ const exportKind = stmt.type === 'ExportDefaultDeclaration' ? 'default' : 'named';
541
+ let detail = '';
542
+ if (stmt.declaration) {
543
+ const decl = stmt.declaration;
544
+ if (decl.type === 'FunctionDeclaration' && decl.id?.name) {
545
+ detail = ` "${decl.id.name}"`;
546
+ }
547
+ else if (decl.type === 'VariableDeclaration') {
548
+ const names = decl.declarations
549
+ .map((d) => d.id?.name)
550
+ .filter(Boolean)
551
+ .join(', ');
552
+ if (names)
553
+ detail = ` "${names}"`;
554
+ }
555
+ }
556
+ this.pushError({
557
+ type: 'expression',
558
+ message: `Unsupported ${exportKind} export${detail}. Export declarations are not evaluated, so exported values and components are not available in the document.`,
559
+ line: stmtLine,
560
+ });
561
+ }
562
+ }
563
+ }
505
564
  // Resolve imports from pre-loaded modules (server-side)
565
+ let resolvedImportLocals = new Set();
506
566
  if (this.modules) {
507
- this.resolveImportsFromModules(node);
567
+ resolvedImportLocals = this.resolveImportsFromModules(node);
568
+ }
569
+ // Warn about import declarations that cannot be resolved
570
+ if (estree && !this.allowClientEsmImports) {
571
+ for (const stmt of estree.body) {
572
+ if (stmt.type !== 'ImportDeclaration')
573
+ continue;
574
+ const stmtLine = stmt.loc?.start?.line ?? nodeLine;
575
+ const source = stmt.source?.value;
576
+ if (typeof source !== 'string')
577
+ continue;
578
+ // Check against actually resolved imports, not this.c (which includes pre-existing components)
579
+ const specNames = (stmt.specifiers ?? []).map((s) => s.local?.name).filter(Boolean);
580
+ const unresolvedNames = specNames.filter((name) => !resolvedImportLocals.has(name));
581
+ if (unresolvedNames.length > 0) {
582
+ this.pushError({
583
+ type: 'expression',
584
+ message: `Unresolved import "${unresolvedNames.join(', ')}" from "${source}". The imported module could not be resolved, so these names are not available in the document.`,
585
+ line: stmtLine,
586
+ });
587
+ }
588
+ }
508
589
  }
509
590
  // Parse ESM imports for client-side dynamic loading (only if allowed)
510
591
  if (this.allowClientEsmImports) {
@@ -727,6 +808,145 @@ export class MdastToJsx {
727
808
  }
728
809
  }
729
810
  }
811
+ /** JS globals that eval-estree-expression treats as built-in values */
812
+ const ALLOWED_GLOBALS = new Set(['undefined', 'NaN', 'Infinity', 'true', 'false', 'null']);
813
+ /**
814
+ * Walk an estree expression AST and collect top-level Identifier names
815
+ * that are not defined in the given scope context. Skips property access
816
+ * identifiers (e.g. `foo.bar` only checks `foo`, not `bar`), function
817
+ * parameter bindings, and JS built-in globals.
818
+ *
819
+ * For short-circuit operators (||, ??, &&) and ternary expressions,
820
+ * only checks the left/test operand since the right side may never
821
+ * be evaluated at runtime.
822
+ */
823
+ function findMissingIdentifiers(node, context, localBindings = new Set()) {
824
+ if (!node)
825
+ return [];
826
+ const missing = [];
827
+ switch (node.type) {
828
+ case 'Identifier':
829
+ if (!ALLOWED_GLOBALS.has(node.name) && !(node.name in context) && !localBindings.has(node.name)) {
830
+ missing.push(node.name);
831
+ }
832
+ break;
833
+ case 'MemberExpression':
834
+ // Only check the object, not the property
835
+ missing.push(...findMissingIdentifiers(node.object, context, localBindings));
836
+ // Check computed properties like obj[expr]
837
+ if (node.computed) {
838
+ missing.push(...findMissingIdentifiers(node.property, context, localBindings));
839
+ }
840
+ break;
841
+ case 'CallExpression':
842
+ missing.push(...findMissingIdentifiers(node.callee, context, localBindings));
843
+ for (const arg of node.arguments || []) {
844
+ missing.push(...findMissingIdentifiers(arg, context, localBindings));
845
+ }
846
+ break;
847
+ case 'BinaryExpression':
848
+ missing.push(...findMissingIdentifiers(node.left, context, localBindings));
849
+ missing.push(...findMissingIdentifiers(node.right, context, localBindings));
850
+ break;
851
+ case 'LogicalExpression':
852
+ // For ||, ??, && only check the left side statically.
853
+ // The right side may never be evaluated at runtime.
854
+ missing.push(...findMissingIdentifiers(node.left, context, localBindings));
855
+ break;
856
+ case 'UnaryExpression':
857
+ missing.push(...findMissingIdentifiers(node.argument, context, localBindings));
858
+ break;
859
+ case 'ConditionalExpression':
860
+ // Only check the test statically. The branches may never run.
861
+ missing.push(...findMissingIdentifiers(node.test, context, localBindings));
862
+ break;
863
+ case 'TemplateLiteral':
864
+ for (const expr of node.expressions || []) {
865
+ missing.push(...findMissingIdentifiers(expr, context, localBindings));
866
+ }
867
+ break;
868
+ case 'ArrowFunctionExpression':
869
+ case 'FunctionExpression': {
870
+ // Collect parameter names as local bindings
871
+ const newBindings = new Set(localBindings);
872
+ for (const param of node.params || []) {
873
+ collectParamNames(param, newBindings);
874
+ }
875
+ missing.push(...findMissingIdentifiers(node.body, context, newBindings));
876
+ break;
877
+ }
878
+ case 'BlockStatement':
879
+ for (const stmt of node.body || []) {
880
+ // Register variable declarations (including destructuring) as local bindings
881
+ if (stmt.type === 'VariableDeclaration') {
882
+ for (const decl of stmt.declarations || []) {
883
+ collectParamNames(decl.id, localBindings);
884
+ // Check the initializer for missing identifiers
885
+ if (decl.init) {
886
+ missing.push(...findMissingIdentifiers(decl.init, context, localBindings));
887
+ }
888
+ }
889
+ // Skip re-walking this statement since we already handled it
890
+ continue;
891
+ }
892
+ missing.push(...findMissingIdentifiers(stmt, context, localBindings));
893
+ }
894
+ break;
895
+ case 'ExpressionStatement':
896
+ missing.push(...findMissingIdentifiers(node.expression, context, localBindings));
897
+ break;
898
+ case 'ReturnStatement':
899
+ missing.push(...findMissingIdentifiers(node.argument, context, localBindings));
900
+ break;
901
+ case 'ArrayExpression':
902
+ for (const elem of node.elements || []) {
903
+ if (elem)
904
+ missing.push(...findMissingIdentifiers(elem, context, localBindings));
905
+ }
906
+ break;
907
+ case 'ObjectExpression':
908
+ for (const prop of node.properties || []) {
909
+ if (prop.value)
910
+ missing.push(...findMissingIdentifiers(prop.value, context, localBindings));
911
+ }
912
+ break;
913
+ case 'SpreadElement':
914
+ missing.push(...findMissingIdentifiers(node.argument, context, localBindings));
915
+ break;
916
+ // Literal, JSXElement, etc. - no identifiers to check
917
+ }
918
+ return missing;
919
+ }
920
+ /** Extract all bound names from a function parameter AST node */
921
+ function collectParamNames(param, names) {
922
+ if (!param)
923
+ return;
924
+ if (param.type === 'Identifier') {
925
+ names.add(param.name);
926
+ }
927
+ else if (param.type === 'ObjectPattern') {
928
+ for (const prop of param.properties || []) {
929
+ if (prop.type === 'RestElement') {
930
+ collectParamNames(prop.argument, names);
931
+ }
932
+ else {
933
+ collectParamNames(prop.value, names);
934
+ }
935
+ }
936
+ }
937
+ else if (param.type === 'ArrayPattern') {
938
+ for (const elem of param.elements || []) {
939
+ if (elem)
940
+ collectParamNames(elem, names);
941
+ }
942
+ }
943
+ else if (param.type === 'RestElement') {
944
+ collectParamNames(param.argument, names);
945
+ }
946
+ else if (param.type === 'AssignmentPattern') {
947
+ collectParamNames(param.left, names);
948
+ }
949
+ }
730
950
  function accessWithDot(obj, path) {
731
951
  return path
732
952
  .split('.')