@mintlify/common 1.0.782 → 1.0.784

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.
@@ -231,35 +231,45 @@ export function rebuildStyleValue(properties) {
231
231
  });
232
232
  return `{ ${parts.join(', ')} }`;
233
233
  }
234
- function isFunction(estree) {
234
+ function isUnsafeEsm(estree) {
235
235
  if (!estree.body.length)
236
236
  return false;
237
- let hasFunctionDeclaration = false;
237
+ let hasUnsafeNode = false;
238
238
  walk(estree, {
239
239
  enter(node) {
240
- if (node.type === 'FunctionDeclaration' ||
241
- node.type === 'ArrowFunctionExpression' ||
242
- node.type === 'FunctionExpression') {
243
- hasFunctionDeclaration = true;
244
- return this.skip();
245
- }
246
- if (node.type === 'ExportDefaultDeclaration' &&
247
- (node.declaration.type === 'FunctionDeclaration' ||
248
- node.declaration.type === 'FunctionExpression' ||
249
- node.declaration.type === 'ArrowFunctionExpression')) {
250
- hasFunctionDeclaration = true;
251
- return this.skip();
252
- }
253
- if (node.type === 'VariableDeclaration' &&
254
- node.declarations.some((decl) => decl.init &&
255
- (decl.init.type === 'ArrowFunctionExpression' ||
256
- decl.init.type === 'FunctionExpression'))) {
257
- hasFunctionDeclaration = true;
258
- return this.skip();
240
+ switch (node.type) {
241
+ // Function/class definitions (could be used as executable components)
242
+ case 'FunctionDeclaration':
243
+ case 'FunctionExpression':
244
+ case 'ArrowFunctionExpression':
245
+ case 'ClassDeclaration':
246
+ case 'ClassExpression':
247
+ // Code execution
248
+ case 'CallExpression':
249
+ case 'NewExpression':
250
+ case 'ImportExpression':
251
+ case 'TaggedTemplateExpression':
252
+ case 'AwaitExpression':
253
+ case 'YieldExpression':
254
+ // Side effects
255
+ case 'AssignmentExpression':
256
+ case 'UpdateExpression':
257
+ // Property access (could read process.env, globalThis, etc.)
258
+ case 'MemberExpression':
259
+ hasUnsafeNode = true;
260
+ return this.skip();
261
+ // Re-exports pull in external modules (e.g. `export { readFileSync } from 'fs'`)
262
+ case 'ExportNamedDeclaration':
263
+ case 'ExportAllDeclaration':
264
+ if ('source' in node && node.source != null) {
265
+ hasUnsafeNode = true;
266
+ return this.skip();
267
+ }
268
+ break;
259
269
  }
260
270
  },
261
271
  });
262
- return hasFunctionDeclaration;
272
+ return hasUnsafeNode;
263
273
  }
264
274
  function isArrayOfStringLiterals(estree) {
265
275
  const stmt = estree.body[0];
@@ -276,11 +286,9 @@ export function remarkMdxRemoveJs() {
276
286
  var _a;
277
287
  if (!isMdxJsEsm(node))
278
288
  return false;
279
- if (((_a = node.data) === null || _a === void 0 ? void 0 : _a.estree) && !isFunction(node.data.estree))
289
+ if (!((_a = node.data) === null || _a === void 0 ? void 0 : _a.estree))
280
290
  return false;
281
- const value = node.value;
282
- const containsReact = REACT_HOOKS.some((hook) => value.includes(hook) || value.includes('React.' + hook.toLowerCase()));
283
- return containsReact;
291
+ return isUnsafeEsm(node.data.estree);
284
292
  });
285
293
  visit(tree, (node) => {
286
294
  if (!('attributes' in node))