const require_rolldown_runtime = require('../../../../../../_virtual/rolldown_runtime.js');
const require_merge$1 = require('./util/merge.js');

//#region ../../node_modules/.pnpm/validator@13.12.0/node_modules/validator/lib/isDate.js
var require_isDate = /* @__PURE__ */ require_rolldown_runtime.__commonJS({ "../../node_modules/.pnpm/validator@13.12.0/node_modules/validator/lib/isDate.js": ((exports, module) => {
	Object.defineProperty(exports, "__esModule", { value: true });
	exports.default = isDate;
	var _merge = _interopRequireDefault(require_merge$1.require_merge());
	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;
	}
	var default_date_options = {
		format: "YYYY/MM/DD",
		delimiters: ["/", "-"],
		strictMode: false
	};
	function isValidFormat(format) {
		return /(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(format);
	}
	function zip(date, format) {
		var zippedArr = [], len = Math.min(date.length, format.length);
		for (var i = 0; i < len; i++) zippedArr.push([date[i], format[i]]);
		return zippedArr;
	}
	function isDate(input, options) {
		if (typeof options === "string") options = (0, _merge.default)({ format: options }, default_date_options);
		else options = (0, _merge.default)(options, default_date_options);
		if (typeof input === "string" && isValidFormat(options.format)) {
			var formatDelimiter = options.delimiters.find(function(delimiter) {
				return options.format.indexOf(delimiter) !== -1;
			});
			var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function(delimiter) {
				return input.indexOf(delimiter) !== -1;
			});
			var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));
			var dateObj = {};
			var _iterator = _createForOfIteratorHelper(dateAndFormat), _step;
			try {
				for (_iterator.s(); !(_step = _iterator.n()).done;) {
					var _step$value = _slicedToArray(_step.value, 2), dateWord = _step$value[0], formatWord = _step$value[1];
					if (dateWord.length !== formatWord.length) return false;
					dateObj[formatWord.charAt(0)] = dateWord;
				}
			} catch (err) {
				_iterator.e(err);
			} finally {
				_iterator.f();
			}
			var fullYear = dateObj.y;
			if (fullYear.startsWith("-")) return false;
			if (dateObj.y.length === 2) {
				var parsedYear = parseInt(dateObj.y, 10);
				if (isNaN(parsedYear)) return false;
				if (parsedYear < (/* @__PURE__ */ new Date()).getFullYear() % 100) fullYear = "20".concat(dateObj.y);
				else fullYear = "19".concat(dateObj.y);
			}
			var month = dateObj.m;
			if (dateObj.m.length === 1) month = "0".concat(dateObj.m);
			var day = dateObj.d;
			if (dateObj.d.length === 1) day = "0".concat(dateObj.d);
			return new Date("".concat(fullYear, "-").concat(month, "-").concat(day, "T00:00:00.000Z")).getUTCDate() === +dateObj.d;
		}
		if (!options.strictMode) return Object.prototype.toString.call(input) === "[object Date]" && isFinite(input);
		return false;
	}
	module.exports = exports.default;
	module.exports.default = exports.default;
}) });

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