{"version":3,"sources":["jsdelivr-header.js","/npm/@dellacagna/iban@1.1.1/dist/index.js"],"names":[],"mappings":"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","file":"/npm/@dellacagna/iban@1.1.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@dellacagna/iban@1.1.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IBAN = void 0;\nvar specifications_1 = require(\"./lib/specifications\");\nvar IBAN = /** @class */ (function () {\n    function IBAN(iban) {\n        this.original = iban;\n    }\n    IBAN.prototype.getOriginal = function () {\n        return this.original;\n    };\n    IBAN.prototype.toElectronicFormat = function () {\n        return IBAN.electronicFormat(this.original);\n    };\n    IBAN.prototype.toPrintFormat = function () {\n        return IBAN.printFormat(this.original);\n    };\n    IBAN.prototype.getBBAN = function () {\n        return IBAN.bban(this.original);\n    };\n    IBAN.prototype.getFields = function () {\n        return IBAN.extractFields(this.original);\n    };\n    IBAN.prototype.getError = function () {\n        if (!this.error) {\n            this.isValid();\n        }\n        return this.error;\n    };\n    IBAN.prototype.isValid = function () {\n        var iban = this.toElectronicFormat();\n        var code = iban.slice(0, 2);\n        var spec = IBAN.getCountrySpecification(code);\n        if (!spec) {\n            this.error = \"INVALID_COUNTRY\" /* errorCodes.invalidCountry */;\n            return false;\n        }\n        if (iban.length !== spec.length) {\n            this.error = \"INVALID_LENGTH\" /* errorCodes.invalidLength */;\n            return false;\n        }\n        var re = new RegExp('^[A-Z]{2}\\\\d{2}' + spec.formatRules.join(''));\n        // check length and valid characters\n        if (!re.test(iban)) {\n            this.error = \"INVALID_FORMAT\" /* errorCodes.invalidFormat */;\n            return false;\n        }\n        // move first 4 characters to end\n        iban = iban.slice(4) + iban.slice(0, 4);\n        // replace all letters with their number equivalents\n        iban = iban.replace(/[A-Z]/g, function (c) {\n            return (c.charCodeAt(0) - 55).toString();\n        });\n        // calculate mod 97\n        if (IBAN.mod97(iban) !== 1) {\n            this.error = \"CHECKSUM_FAILED\" /* errorCodes.checksumFailed */;\n            return false;\n        }\n        return true;\n    };\n    IBAN.getCountrySpecification = function (countryCode) {\n        var result = specifications_1.specifications.filter(function (spec) { return spec.code === countryCode; });\n        return result ? result[0] : null;\n    };\n    IBAN.getRandomCountrySpecification = function () {\n        return specifications_1.specifications[Math.floor(Math.random() * specifications_1.specifications.length)];\n    };\n    IBAN.mod97 = function (a) {\n        var result = 0;\n        for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n            var i = a_1[_i];\n            result = (result * 10 + parseInt(i, 10)) % 97;\n        }\n        return result;\n    };\n    IBAN.formatSpacing = function (iban, indices) {\n        for (var _i = 0, indices_1 = indices; _i < indices_1.length; _i++) {\n            var index = indices_1[_i];\n            iban = iban.slice(0, index) + ' ' + iban.slice(index);\n        }\n        return iban;\n    };\n    IBAN.electronicFormat = function (iban) {\n        return iban.replace(/[\\s-]/g, '').toUpperCase();\n    };\n    IBAN.printFormat = function (iban) {\n        iban = IBAN.electronicFormat(iban);\n        var code = iban.slice(0, 2);\n        var spec = IBAN.getCountrySpecification(code);\n        if (!spec) {\n            return iban;\n        }\n        return IBAN.formatSpacing(iban, spec.spacingRules);\n    };\n    IBAN.bban = function (iban) {\n        return IBAN.electronicFormat(iban).slice(4);\n    };\n    IBAN.extractFields = function (iban) {\n        iban = IBAN.electronicFormat(iban);\n        var code = iban.slice(0, 2);\n        var check = iban.slice(2, 4);\n        var spec = IBAN.getCountrySpecification(code);\n        if (!spec || !spec.fields) {\n            return;\n        }\n        var fields = {\n            countryCode: code,\n            country: spec.country,\n            checkDigits: check,\n            accountNumber: '',\n            currencyCode: '',\n            ownerAccountNumber: '',\n            accountNumberPrefix: '',\n            bankCode: '',\n            bicBankCode: '',\n            branchCode: '',\n            accountType: '',\n            nationalCheckDigit: '',\n        };\n        var bban = IBAN.bban(iban);\n        spec.fields.split('').forEach(function (char, index) {\n            switch (char) {\n                case \"C\" /* fieldChar.accountNumber */: {\n                    fields.accountNumber += bban[index];\n                    break;\n                }\n                case \"M\" /* fieldChar.currencyCode */: {\n                    fields.currencyCode += bban[index];\n                    break;\n                }\n                case \"N\" /* fieldChar.ownerAccountNumber */: {\n                    fields.ownerAccountNumber += bban[index];\n                    break;\n                }\n                case \"P\" /* fieldChar.accountNumberPrefix */: {\n                    fields.accountNumberPrefix += bban[index];\n                    break;\n                }\n                case \"B\" /* fieldChar.bankCode */: {\n                    fields.bankCode += bban[index];\n                    break;\n                }\n                case \"Q\" /* fieldChar.bicBankCode */: {\n                    fields.bicBankCode += bban[index];\n                    break;\n                }\n                case \"S\" /* fieldChar.branchCode */: {\n                    fields.branchCode += bban[index];\n                    break;\n                }\n                case \"T\" /* fieldChar.accountType */: {\n                    fields.accountType += bban[index];\n                    break;\n                }\n                case \"X\" /* fieldChar.nationalCheckDigit */: {\n                    fields.nationalCheckDigit += bban[index];\n                    break;\n                }\n            }\n        });\n        // @ts-ignore\n        Object.keys(fields).forEach(function (k) { return fields[k] === '' && delete fields[k]; });\n        return fields;\n    };\n    IBAN.random = function (countryCode) {\n        if (countryCode === void 0) { countryCode = null; }\n        var spec = countryCode\n            ? IBAN.getCountrySpecification(countryCode.toUpperCase())\n            : IBAN.getRandomCountrySpecification();\n        if (!spec) {\n            return IBAN.random();\n        }\n        var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n        var alphanumeric = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n        var bban = '';\n        spec.formatRules.forEach(function (rule) {\n            var _a = rule.slice(0, -1).split('{'), type = _a[0], repeat = _a[1];\n            for (var i = 0; i < +repeat; i++) {\n                if (type === '[A-Z]') {\n                    bban += alphabet.charAt(Math.floor(Math.random() * alphabet.length));\n                }\n                else if (type === '\\\\d') {\n                    bban += Math.floor(Math.random() * 10);\n                }\n                else {\n                    bban += alphanumeric.charAt(Math.floor(Math.random() * alphanumeric.length));\n                }\n            }\n        });\n        // Calculate Check Digit\n        var tempIBAN = bban + spec.code + '00';\n        tempIBAN = tempIBAN.replace(/[A-Z]/g, function (c) {\n            return (c.charCodeAt(0) - 55).toString();\n        });\n        var checkDigit = (98 - IBAN.mod97(tempIBAN)).toString();\n        checkDigit = checkDigit.length === 1 ? '0' + checkDigit : checkDigit;\n        return IBAN.printFormat(spec.code + checkDigit + bban);\n    };\n    return IBAN;\n}());\nexports.IBAN = IBAN;\n"]}