ibantools-germany
Version:
IBAN Validator and Generator for German Bank Accounts
363 lines (360 loc) • 13.2 kB
JavaScript
"use strict";
/**
* ibantools-germany
* Copyright (C) 2022-2024 Markus Baumer <markus@baumer.dev>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.methodDispatch = void 0;
const methods = __importStar(require("./methods"));
/**
* Validate account number with given check digit method.
*
* Some few banks use a legacy method from GDR/Soviet times that requires the
* BLZ for validation as well.
*
* @param accountNumber Account number for validation
* @param blz German BLZ for validation
* @param method Two-char method identifier (00-E4)
* @returns Validation Result
*/
const methodDispatch = (accountNumber, blz, method) => {
switch (method) {
case "00":
return methods.method00(accountNumber);
case "01":
return methods.method01(accountNumber);
case "02":
return methods.method02(accountNumber);
case "03":
return methods.method03(accountNumber);
case "04":
return methods.method04(accountNumber);
case "05":
return methods.method05(accountNumber);
case "06":
return methods.method06(accountNumber);
case "07":
return methods.method07(accountNumber);
case "08":
return methods.method08(accountNumber);
case "09":
return methods.method09(accountNumber);
case "10":
return methods.method10(accountNumber);
case "11":
return methods.method11(accountNumber);
case "12":
return methods.method12(accountNumber);
case "13":
return methods.method13(accountNumber);
case "14":
return methods.method14(accountNumber);
case "15":
return methods.method15(accountNumber);
case "16":
return methods.method16(accountNumber);
case "17":
return methods.method17(accountNumber);
case "18":
return methods.method18(accountNumber);
case "19":
return methods.method19(accountNumber);
case "20":
return methods.method20(accountNumber);
case "21":
return methods.method21(accountNumber);
case "22":
return methods.method22(accountNumber);
case "23":
return methods.method23(accountNumber);
case "24":
return methods.method24(accountNumber);
case "25":
return methods.method25(accountNumber);
case "26":
return methods.method26(accountNumber);
case "27":
return methods.method27(accountNumber);
case "28":
return methods.method28(accountNumber);
case "29":
return methods.method29(accountNumber);
case "30":
return methods.method30(accountNumber);
case "31":
return methods.method31(accountNumber);
case "32":
return methods.method32(accountNumber);
case "33":
return methods.method33(accountNumber);
case "34":
return methods.method34(accountNumber);
case "35":
return methods.method35(accountNumber);
case "36":
return methods.method36(accountNumber);
case "37":
return methods.method37(accountNumber);
case "38":
return methods.method38(accountNumber);
case "39":
return methods.method39(accountNumber);
case "40":
return methods.method40(accountNumber);
case "41":
return methods.method41(accountNumber);
case "42":
return methods.method42(accountNumber);
case "43":
return methods.method43(accountNumber);
case "44":
return methods.method44(accountNumber);
case "45":
return methods.method45(accountNumber);
case "46":
return methods.method46(accountNumber);
case "47":
return methods.method47(accountNumber);
case "48":
return methods.method48(accountNumber);
case "49":
return methods.method49(accountNumber);
case "50":
return methods.method50(accountNumber);
case "51":
return methods.method51(accountNumber);
case "52":
return methods.method52(accountNumber, blz);
case "53":
return methods.method53(accountNumber, blz);
case "54":
return methods.method54(accountNumber);
case "55":
return methods.method55(accountNumber);
case "56":
return methods.method56(accountNumber);
case "57":
return methods.method57(accountNumber);
case "58":
return methods.method58(accountNumber);
case "59":
return methods.method59(accountNumber);
case "60":
return methods.method60(accountNumber);
case "61":
return methods.method61(accountNumber);
case "62":
return methods.method62(accountNumber);
case "63":
return methods.method63(accountNumber);
case "64":
return methods.method64(accountNumber);
case "65":
return methods.method65(accountNumber);
case "66":
return methods.method66(accountNumber);
case "67":
return methods.method67(accountNumber);
case "68":
return methods.method68(accountNumber);
case "69":
return methods.method69(accountNumber);
case "70":
return methods.method70(accountNumber);
case "71":
return methods.method71(accountNumber);
case "72":
return methods.method72(accountNumber);
case "73":
return methods.method73(accountNumber);
case "74":
return methods.method74(accountNumber);
case "75":
return methods.method75(accountNumber);
case "76":
return methods.method76(accountNumber);
case "77":
return methods.method77(accountNumber);
case "78":
return methods.method78(accountNumber);
case "79":
return methods.method79(accountNumber);
case "80":
return methods.method80(accountNumber);
case "81":
return methods.method81(accountNumber);
case "82":
return methods.method82(accountNumber);
case "83":
return methods.method83(accountNumber);
case "84":
return methods.method84(accountNumber);
case "85":
return methods.method85(accountNumber);
case "86":
return methods.method86(accountNumber);
case "87":
return methods.method87(accountNumber);
case "88":
return methods.method88(accountNumber);
case "89":
return methods.method89(accountNumber);
case "90":
return methods.method90(accountNumber);
case "91":
return methods.method91(accountNumber);
case "92":
return methods.method92(accountNumber);
case "93":
return methods.method93(accountNumber);
case "94":
return methods.method94(accountNumber);
case "95":
return methods.method95(accountNumber);
case "96":
return methods.method96(accountNumber);
case "97":
return methods.method97(accountNumber);
case "98":
return methods.method98(accountNumber);
case "99":
return methods.method99(accountNumber);
case "A0":
return methods.methodA0(accountNumber);
case "A1":
return methods.methodA1(accountNumber);
case "A2":
return methods.methodA2(accountNumber);
case "A3":
return methods.methodA3(accountNumber);
case "A4":
return methods.methodA4(accountNumber);
case "A5":
return methods.methodA5(accountNumber);
case "A6":
return methods.methodA6(accountNumber);
case "A7":
return methods.methodA7(accountNumber);
case "A8":
return methods.methodA8(accountNumber);
case "A9":
return methods.methodA9(accountNumber);
case "B0":
return methods.methodB0(accountNumber);
case "B1":
return methods.methodB1(accountNumber);
case "B2":
return methods.methodB2(accountNumber);
case "B3":
return methods.methodB3(accountNumber);
case "B4":
return methods.methodB4(accountNumber);
case "B5":
return methods.methodB5(accountNumber);
case "B6":
return methods.methodB6(accountNumber, blz);
case "B7":
return methods.methodB7(accountNumber);
case "B8":
return methods.methodB8(accountNumber);
case "B9":
return methods.methodB9(accountNumber);
case "C0":
return methods.methodC0(accountNumber, blz);
case "C1":
return methods.methodC1(accountNumber);
case "C2":
return methods.methodC2(accountNumber);
case "C3":
return methods.methodC3(accountNumber);
case "C4":
return methods.methodC4(accountNumber);
case "C5":
return methods.methodC5(accountNumber);
case "C6":
return methods.methodC6(accountNumber);
case "C7":
return methods.methodC7(accountNumber);
case "C8":
return methods.methodC8(accountNumber);
case "C9":
return methods.methodC9(accountNumber);
case "D0":
return methods.methodD0(accountNumber);
case "D1":
return methods.methodD1(accountNumber);
case "D2":
return methods.methodD2(accountNumber);
case "D3":
return methods.methodD3(accountNumber);
case "D4":
return methods.methodD4(accountNumber);
case "D5":
return methods.methodD5(accountNumber);
case "D6":
return methods.methodD6(accountNumber);
case "D7":
return methods.methodD7(accountNumber);
case "D8":
return methods.methodD8(accountNumber);
case "D9":
return methods.methodD9(accountNumber);
case "E0":
return methods.methodE0(accountNumber);
case "E1":
return methods.methodE1(accountNumber);
case "E2":
return methods.methodE2(accountNumber);
case "E3":
return methods.methodE3(accountNumber);
case "E4":
return methods.methodE4(accountNumber);
default:
return "UNKOWN_CHECK_DIGIT_CALCULATION_METHOD";
}
};
exports.methodDispatch = methodDispatch;