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

//#region ../../node_modules/.pnpm/validator@13.12.0/node_modules/validator/lib/isEAN.js
var require_isEAN = /* @__PURE__ */ require_rolldown_runtime.__commonJS({ "../../node_modules/.pnpm/validator@13.12.0/node_modules/validator/lib/isEAN.js": ((exports, module) => {
	Object.defineProperty(exports, "__esModule", { value: true });
	exports.default = isEAN;
	var _assertString = _interopRequireDefault(require_assertString$1.require_assertString());
	function _interopRequireDefault(obj) {
		return obj && obj.__esModule ? obj : { default: obj };
	}
	/**
	* The most commonly used EAN standard is
	* the thirteen-digit EAN-13, while the
	* less commonly used 8-digit EAN-8 barcode was
	* introduced for use on small packages.
	* Also EAN/UCC-14 is used for Grouping of individual
	* trade items above unit level(Intermediate, Carton or Pallet).
	* For more info about EAN-14 checkout: https://www.gtin.info/itf-14-barcodes/
	* EAN consists of:
	* GS1 prefix, manufacturer code, product code and check digit
	* Reference: https://en.wikipedia.org/wiki/International_Article_Number
	* Reference: https://www.gtin.info/
	*/
	/**
	* Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13; 14 for EAN-14
	* and Regular Expression for valid EANs (EAN-8, EAN-13, EAN-14),
	* with exact numberic matching of 8 or 13 or 14 digits [0-9]
	*/
	var LENGTH_EAN_8 = 8;
	var LENGTH_EAN_14 = 14;
	var validEanRegex = /^(\d{8}|\d{13}|\d{14})$/;
	/**
	* Get position weight given:
	* EAN length and digit index/position
	*
	* @param {number} length
	* @param {number} index
	* @return {number}
	*/
	function getPositionWeightThroughLengthAndIndex(length, index) {
		if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) return index % 2 === 0 ? 3 : 1;
		return index % 2 === 0 ? 1 : 3;
	}
	/**
	* Calculate EAN Check Digit
	* Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit
	*
	* @param {string} ean
	* @return {number}
	*/
	function calculateCheckDigit(ean) {
		var remainder = 10 - ean.slice(0, -1).split("").map(function(char, index) {
			return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);
		}).reduce(function(acc, partialSum) {
			return acc + partialSum;
		}, 0) % 10;
		return remainder < 10 ? remainder : 0;
	}
	/**
	* Check if string is valid EAN:
	* Matches EAN-8/EAN-13/EAN-14 regex
	* Has valid check digit.
	*
	* @param {string} str
	* @return {boolean}
	*/
	function isEAN(str) {
		(0, _assertString.default)(str);
		var actualCheckDigit = Number(str.slice(-1));
		return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);
	}
	module.exports = exports.default;
	module.exports.default = exports.default;
}) });

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