nz-bank-account-info-international-money-transfer
Version:
A lightweight JavaScript library to generate information needed for an International Money Transfer to your New Zealand bank account.
1 lines • 9.39 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("nz-bank-account-info-international-money-transfer",[],t):"object"==typeof exports?exports["nz-bank-account-info-international-money-transfer"]=t():e["nz-bank-account-info-international-money-transfer"]=t()}(this,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t,n){var r;r=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=n(1),o=n(2);t.default={getId:function(e){return this.getPartsObject(e).id},getBranch:function(e){return this.getPartsObject(e).branch},getBase:function(e){return this.getPartsObject(e).base},getSuffix:function(e){return this.getPartsObject(e).suffix},isPartsObject:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==(void 0===e?"undefined":r(e)))return!1;var t=Object.keys(e),n=Object.keys(a.partConstants),o=n.filter(function(e){return t.includes(e)});return n.length===o.length},splitString:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=(0,o.isString)(e)?e.split(/[^0-9]/):[];return 1===t.length&&(t[0]=e.slice(0,2),t[1]=e.slice(2,5),t[2]=e.slice(5,12),t[3]=e.slice(12)),t.filter(function(e){return e.length})},getPartsObject:function(e){if(this.isPartsObject(e))return e;if(!(0,o.isString)(e))return{};var t=this.splitString(e);return{id:t[a.partIndexes.id],branch:t[a.partIndexes.branch],base:t[a.partIndexes.base],suffix:t[a.partIndexes.suffix]}},partsObjectValid:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.keys(e);return 4===t.length&&t.reduce(function(t,n){var r=e[n],i=(0,o.isNumbersOnly)(r),c=(0,o.isString)(r)&&r.length<=a.partMaxLengths[n];return t&&i&&c},!0)},validate:function(e){var t=this.getPartsObject(e);if(!this.partsObjectValid(t))return!1;var n=t.id,r=t.branch,a=t.base,i=this.getBankData(n,r);if(!i)return!1;var c=this.getChecksum(i,a);if(!c)return!1;var u=c.weighting,s=c.modulo,f=!c.specialCase;return(0,o.getPaddedAccountArray)(t).reduce(function(e,t,n){var r=t*u[n];if(f||r<10)return e+r;var a=(0,o.sumChars)(r),i=(0,o.sumChars)(a);return e+(a<10?a:i)},0)%s==0},getBankData:function(e,t){var n=(0,o.padLeft)(e,a.partMaxLengths.id);return a.bankData.find(function(e){var r=e.branches[n];return r&&(0,o.inRanges)(t,r)})},getChecksum:function(e,t){var n=e.key;return"AB"===n&&(n=parseInt(t,10)<99e4?"A":"B"),a.bankChecksums[n]}},e.exports=t.default},function(e,t){"use strict";var n,r;function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0});var o={id:"id",branch:"branch",base:"base",suffix:"suffix"},i=(a(n={},o.id,0),a(n,o.branch,1),a(n,o.base,2),a(n,o.suffix,3),n),c=(a(r={},o.id,2),a(r,o.branch,4),a(r,o.base,8),a(r,o.suffix,4),r);t.default={partConstants:o,partIndexes:i,partMaxLengths:c,bankData:[{key:"AB",branches:{"01":[[1,999],[1100,1199],[1800,1899]],"02":[[1,999],[1200,1299]],"03":[[1,999],[1300,1399],[1500,1599],[1700,1799],[1900,1999]],"06":[[1,999],[1400,1499]],11:[[5e3,6499],[6600,8999]],12:[[3e3,3299],[3400,3499],[3600,3699]],13:[[4900,4999]],14:[[4700,4799]],15:[[3900,3999]],16:[[4400,4499]],17:[[3300,3399]],18:[[3500,3599]],19:[[4600,4649]],20:[[4100,4199]],21:[[4800,4899]],22:[[4e3,4049]],23:[[3700,3799]],24:[[4300,4349]],27:[[3800,3849]],30:[[2900,2949]],35:[[2400,2499]],38:[[9e3,9499]]}},{key:"D",branches:{"08":[[6500,6599]]}},{key:"E",branches:{"09":[[0,0]]}},{key:"F",branches:{25:[[2500,2599]],33:[[6700,6799]]}},{key:"G",branches:{26:[[2600,2699]],28:[[2100,2149]],29:[[2150,2299]]}},{key:"X",branches:{31:[[2800,2849]]}}],bankChecksums:{A:{weighting:[0,0,6,3,7,9,0,0,10,5,8,4,2,1,0,0,0,0],modulo:11},B:{weighting:[0,0,0,0,0,0,0,0,10,5,8,4,2,1,0,0,0,0],modulo:11},C:{weighting:[3,7,0,0,0,0,9,1,10,5,3,4,2,1,0,0,0,0],modulo:11},D:{weighting:[0,0,0,0,0,0,0,7,6,5,4,3,2,1,0,0,0,0],modulo:11},E:{weighting:[0,0,0,0,0,0,0,0,0,0,5,4,3,2,0,0,0,1],modulo:11,specialCase:!0},F:{weighting:[0,0,0,0,0,0,0,1,7,3,1,7,3,1,0,0,0,0],modulo:10},G:{weighting:[0,0,0,0,0,0,0,1,3,7,1,3,7,1,0,3,7,1],modulo:10,specialCase:!0},X:{weighting:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],modulo:1}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(r=(i=c.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&c.return&&c.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=n(1),o=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"0";return Array(t-String(e).length+1).join(n)+e},i=function(e,t,n){return t>=e&&t<=n};t.default={isString:function(e){return e===e+""},isNumbersOnly:function(e){return/^[0-9]+$/.test(e)},padLeft:o,inRange:i,inRanges:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t.reduce(function(t,n){var a=r(n,2),o=a[0],c=a[1];return t||i(o,e,c)},!1)},sumChars:function(e){return(e+"").split("").reduce(function(e,t){return e+1*t},0)},getPaddedAccountArray:function(e){return Object.keys(e).reduce(function(t,n){var r=o(e[n],a.partMaxLengths[n]).split("");return t.concat(r)},[])}},e.exports=t.default}])},e.exports=r()},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o={"01":{bankAddress:"ANZ Bank New Zealand Ltd, Floor 10, 170-186 Featherston St, Wellington 6011, New Zealand",bankName:"ANZ",SWIFT:"ANZBNZ22"},"02":{bankAddress:"Bank of New Zealand, Wellington, New Zealand",bankName:"BNZ",SWIFT:"BKNZNZ22",excludedBranches:["1242","1245","1246","1247","1248","1249","1250"]},"03":{bankAddress:"Registered office, Westpac New Zealand Limited, Auckland, New Zealand",bankName:"Westpac",SWIFT:"WPACNZ2W"},12:{bankAddress:"ASB Bank Limited, 12 Jellicoe Street, Auckland Central, Auckland 1010, New Zealand",bankName:"ASB",SWIFT:"ASBBNZ2A"},15:{bankAddress:"TSB Centre, 120 Devon St East, New Plymouth 4310, New Zealand",bankName:"TSB",SWIFT:"TSBANZ22"},30:{bankAddress:"The Hongkong and Shanghai Banking Corporation Limited, HSBC House, Level 9, 1 Queen Street, Auckland, New Zealand",bankName:"HSBC",SWIFT:"HSBCNZ2A"},38:{bankAddress:"Kiwibank Limited, Ground Floor, New Zealand Post House, 7 Waterloo Quay, Wellington 6011, New Zealand",bankName:"Kiwibank",SWIFT:"KIWINZ22"}},i=Object.values(o);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=function(e){if(!a.a.validate(e))throw new Error("Error: Invalid account number ".concat(e));var t=a.a.getPartsObject(e),n=[t.id.padStart(2,"0"),t.branch.padStart(4,"0"),t.base.padStart(7,"0"),t.suffix.padStart(3,"0")],r=n[0],i=n[1],s=n[2],f=n[3],l=o[r];if(!l||l.excludedBranches&&l.excludedBranches.includes(i))throw new Error("Error: Unknown bank (".concat(r,") or branch (").concat(i,"). Known banks are ").concat(Object.keys(o).sort().map(function(e){return"".concat(o[e].bankName," (").concat(e,")")}).join(" ")));return delete l.excludedBranches,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(n,!0).forEach(function(t){u(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},l,{account:"".concat(r).concat(i).concat(s).concat(f),BSB:"".concat(r).concat(i),IBAN:"".concat(r).concat(i).concat(s).concat(f),sortCode:"".concat(r).concat(i)})};n.d(t,"generate",function(){return s}),n.d(t,"bankMapping",function(){return o}),n.d(t,"banks",function(){return i})}])});