function requireParse () {
	if (hasRequiredParse) return parse_1;
	hasRequiredParse = 1;
	const { MAX_LENGTH } = requireConstants();
	const { re, t } = requireRe();
	const SemVer = requireSemver$1();

	const parseOptions = requireParseOptions();
	const parse = (version, options) => {
	  options = parseOptions(options);

	  if (version instanceof SemVer) {
	    return version
	  }

	  if (typeof version !== 'string') {
	    return null
	  }

	  if (version.length > MAX_LENGTH) {
	    return null
	  }

	  const r = options.loose ? re[t.LOOSE] : re[t.FULL];
	  if (!r.test(version)) {
	    return null
	  }

	  try {
	    return new SemVer(version, options)
	  } catch (er) {
	    return null
	  }
	};

	parse_1 = parse;
	return parse_1;
}
Initiate request, invoking callback `fn(err, res)`
with an instanceof `Response`.

@param {Function} fn
@return {Request} for chaining
@api public