// Bootstrap yargs for browser:
import browserPlatformShim from './lib/platform-shims/browser.mjs';
import {YargsFactory} from './build/lib/yargs-factory.js';

const Yargs = YargsFactory(browserPlatformShim);

export default Yargs;
