const require_rolldown_runtime = require('../../../../../../../../_virtual/rolldown_runtime.js');
const require_ValidateBy$1 = require('../common/ValidateBy.js');

//#region ../../node_modules/.pnpm/class-validator@0.14.1/node_modules/class-validator/cjs/decorator/string/IsTimeZone.js
var require_IsTimeZone = /* @__PURE__ */ require_rolldown_runtime.__commonJS({ "../../node_modules/.pnpm/class-validator@0.14.1/node_modules/class-validator/cjs/decorator/string/IsTimeZone.js": ((exports) => {
	Object.defineProperty(exports, "__esModule", { value: true });
	exports.IsTimeZone = exports.isTimeZone = exports.IS_TIMEZONE = void 0;
	const ValidateBy_1 = require_ValidateBy$1.require_ValidateBy();
	exports.IS_TIMEZONE = "isTimeZone";
	/**
	* Checks if the string represents a valid IANA timezone
	* If the given value is not a valid IANA timezone, then it returns false.
	*/
	function isTimeZone(value) {
		try {
			if (typeof value !== "string") return false;
			/** Specifying an invalid time-zone will raise a `RangeError: Invalid time zone specified` error. */
			Intl.DateTimeFormat(void 0, { timeZone: value });
			return true;
		} catch (exception) {
			return false;
		}
	}
	exports.isTimeZone = isTimeZone;
	/**
	* Checks if the string represents a valid IANA timezone
	* If the given value is not a valid IANA timezone, then it returns false.
	*/
	function IsTimeZone(validationOptions) {
		return (0, ValidateBy_1.ValidateBy)({
			name: exports.IS_TIMEZONE,
			validator: {
				validate: (value, args) => isTimeZone(value),
				defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid IANA time-zone", validationOptions)
			}
		}, validationOptions);
	}
	exports.IsTimeZone = IsTimeZone;
}) });

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