const require_rolldown_runtime = require('../../../../../../../../_virtual/rolldown_runtime.js');
const require_ValidateBy$1 = require('../common/ValidateBy.js');
const require_isISBN$1 = require('../../../../../../validator@13.12.0/node_modules/validator/lib/isISBN.js');

//#region ../../node_modules/.pnpm/class-validator@0.14.1/node_modules/class-validator/cjs/decorator/string/IsISBN.js
var require_IsISBN = /* @__PURE__ */ require_rolldown_runtime.__commonJS({ "../../node_modules/.pnpm/class-validator@0.14.1/node_modules/class-validator/cjs/decorator/string/IsISBN.js": ((exports) => {
	var __importDefault = exports && exports.__importDefault || function(mod) {
		return mod && mod.__esModule ? mod : { "default": mod };
	};
	Object.defineProperty(exports, "__esModule", { value: true });
	exports.IsISBN = exports.isISBN = exports.IS_ISBN = void 0;
	const ValidateBy_1 = require_ValidateBy$1.require_ValidateBy();
	const isISBN_1 = __importDefault(require_isISBN$1.require_isISBN());
	exports.IS_ISBN = "isIsbn";
	/**
	* Checks if the string is an ISBN (version 10 or 13).
	* If given value is not a string, then it returns false.
	*/
	function isISBN(value, version) {
		const versionStr = version ? `${version}` : void 0;
		return typeof value === "string" && (0, isISBN_1.default)(value, versionStr);
	}
	exports.isISBN = isISBN;
	/**
	* Checks if the string is an ISBN (version 10 or 13).
	* If given value is not a string, then it returns false.
	*/
	function IsISBN(version, validationOptions) {
		return (0, ValidateBy_1.ValidateBy)({
			name: exports.IS_ISBN,
			constraints: [version],
			validator: {
				validate: (value, args) => isISBN(value, args === null || args === void 0 ? void 0 : args.constraints[0]),
				defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an ISBN", validationOptions)
			}
		}, validationOptions);
	}
	exports.IsISBN = IsISBN;
}) });

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