{"version":3,"sources":["../../src/getSandboxContext.ts"],"sourcesContent":["import type { Context } from 'vm';\nimport {\n  type LoadEnvFileOptions,\n  loadEnvFile,\n} from './envVariables/loadEnvFile';\nimport { ESMxCJSRequire } from './utils/ESMxCJSHelpers';\n\nexport const getSandBoxContext = (\n  envVarOptions?: LoadEnvFileOptions,\n  projectRequire = ESMxCJSRequire\n): Context => {\n  let additionalGlobalVar = {};\n\n  try {\n    // Dynamically try to require React if it's installed in the project\n    additionalGlobalVar = {\n      React: projectRequire('react'),\n    };\n  } catch (err) {\n    // React is not installed, so we don't inject it\n  }\n\n  const sandboxContext: Context = {\n    exports: {\n      default: {},\n    },\n    module: {\n      exports: {},\n    },\n    process: {\n      ...process,\n      env: {\n        ...process.env,\n        ...loadEnvFile(envVarOptions),\n      },\n    },\n    console,\n    require: projectRequire,\n    ...additionalGlobalVar,\n  };\n\n  // Dynamically inject all global variables\n  Object.getOwnPropertyNames(globalThis).forEach((key) => {\n    if (!(key in sandboxContext)) {\n      sandboxContext[key] = globalThis[key as keyof typeof globalThis];\n    }\n  });\n\n  return sandboxContext;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,yBAGO;AACP,4BAA+B;AAExB,MAAM,oBAAoB,CAC/B,eACA,iBAAiB,yCACL;AACZ,MAAI,sBAAsB,CAAC;AAE3B,MAAI;AAEF,0BAAsB;AAAA,MACpB,OAAO,eAAe,OAAO;AAAA,IAC/B;AAAA,EACF,SAAS,KAAK;AAAA,EAEd;AAEA,QAAM,iBAA0B;AAAA,IAC9B,SAAS;AAAA,MACP,SAAS,CAAC;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,MACN,SAAS,CAAC;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,GAAG;AAAA,MACH,KAAK;AAAA,QACH,GAAG,QAAQ;AAAA,QACX,OAAG,gCAAY,aAAa;AAAA,MAC9B;AAAA,IACF;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,EACL;AAGA,SAAO,oBAAoB,UAAU,EAAE,QAAQ,CAAC,QAAQ;AACtD,QAAI,EAAE,OAAO,iBAAiB;AAC5B,qBAAe,GAAG,IAAI,WAAW,GAA8B;AAAA,IACjE;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}