const require_rolldown_runtime = require('../../../../../../_virtual/rolldown_runtime.js');
const require_assertString$1 = require('./util/assertString.js');
const require_isEmail$1 = require('./isEmail.js');
const require_trim$1 = require('./trim.js');

//#region ../../node_modules/.pnpm/validator@13.12.0/node_modules/validator/lib/isMailtoURI.js
var require_isMailtoURI = /* @__PURE__ */ require_rolldown_runtime.__commonJS({ "../../node_modules/.pnpm/validator@13.12.0/node_modules/validator/lib/isMailtoURI.js": ((exports, module) => {
	Object.defineProperty(exports, "__esModule", { value: true });
	exports.default = isMailtoURI;
	var _trim = _interopRequireDefault(require_trim$1.require_trim());
	var _isEmail = _interopRequireDefault(require_isEmail$1.require_isEmail());
	var _assertString = _interopRequireDefault(require_assertString$1.require_assertString());
	function _interopRequireDefault(obj) {
		return obj && obj.__esModule ? obj : { default: obj };
	}
	function _slicedToArray(arr, i) {
		return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
	}
	function _nonIterableRest() {
		throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
	}
	function _iterableToArrayLimit(r, l) {
		var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
		if (null != t) {
			var e, n, i, u, a = [], f = !0, o = !1;
			try {
				if (i = (t = t.call(r)).next, 0 === l) {
					if (Object(t) !== t) return;
					f = !1;
				} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
			} catch (r$1) {
				o = !0, n = r$1;
			} finally {
				try {
					if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
				} finally {
					if (o) throw n;
				}
			}
			return a;
		}
	}
	function _arrayWithHoles(arr) {
		if (Array.isArray(arr)) return arr;
	}
	function _createForOfIteratorHelper(o, allowArrayLike) {
		var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
		if (!it) {
			if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
				if (it) o = it;
				var i = 0;
				var F = function F$1() {};
				return {
					s: F,
					n: function n() {
						if (i >= o.length) return { done: true };
						return {
							done: false,
							value: o[i++]
						};
					},
					e: function e(_e) {
						throw _e;
					},
					f: F
				};
			}
			throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
		}
		var normalCompletion = true, didErr = false, err;
		return {
			s: function s() {
				it = it.call(o);
			},
			n: function n() {
				var step = it.next();
				normalCompletion = step.done;
				return step;
			},
			e: function e(_e2) {
				didErr = true;
				err = _e2;
			},
			f: function f() {
				try {
					if (!normalCompletion && it.return != null) it.return();
				} finally {
					if (didErr) throw err;
				}
			}
		};
	}
	function _unsupportedIterableToArray(o, minLen) {
		if (!o) return;
		if (typeof o === "string") return _arrayLikeToArray(o, minLen);
		var n = Object.prototype.toString.call(o).slice(8, -1);
		if (n === "Object" && o.constructor) n = o.constructor.name;
		if (n === "Map" || n === "Set") return Array.from(o);
		if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
	}
	function _arrayLikeToArray(arr, len) {
		if (len == null || len > arr.length) len = arr.length;
		for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
		return arr2;
	}
	function parseMailtoQueryString(queryString) {
		var allowedParams = new Set([
			"subject",
			"body",
			"cc",
			"bcc"
		]), query = {
			cc: "",
			bcc: ""
		};
		var isParseFailed = false;
		var queryParams = queryString.split("&");
		if (queryParams.length > 4) return false;
		var _iterator = _createForOfIteratorHelper(queryParams), _step;
		try {
			for (_iterator.s(); !(_step = _iterator.n()).done;) {
				var _q$split2 = _slicedToArray(_step.value.split("="), 2), key = _q$split2[0], value = _q$split2[1];
				if (key && !allowedParams.has(key)) {
					isParseFailed = true;
					break;
				}
				if (value && (key === "cc" || key === "bcc")) query[key] = value;
				if (key) allowedParams.delete(key);
			}
		} catch (err) {
			_iterator.e(err);
		} finally {
			_iterator.f();
		}
		return isParseFailed ? false : query;
	}
	function isMailtoURI(url, options) {
		(0, _assertString.default)(url);
		if (url.indexOf("mailto:") !== 0) return false;
		var _url$replace$split2 = _slicedToArray(url.replace("mailto:", "").split("?"), 2), to = _url$replace$split2[0], _url$replace$split2$ = _url$replace$split2[1], queryString = _url$replace$split2$ === void 0 ? "" : _url$replace$split2$;
		if (!to && !queryString) return true;
		var query = parseMailtoQueryString(queryString);
		if (!query) return false;
		return "".concat(to, ",").concat(query.cc, ",").concat(query.bcc).split(",").every(function(email) {
			email = (0, _trim.default)(email, " ");
			if (email) return (0, _isEmail.default)(email, options);
			return true;
		});
	}
	module.exports = exports.default;
	module.exports.default = exports.default;
}) });

//#endregion
Object.defineProperty(exports, 'default', {
  enumerable: true,
  get: function () {
    return require_isMailtoURI();
  }
});