made with requirebin
Last active
August 29, 2015 14:18
-
-
Save bendrucker/0ad41741e4d7ff53b2a1 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var card = require('creditcards').card; | |
| console.log('Validates as', card.type('6759000000000000')); | |
| console.log('Eagerly detected as', card.type('67', true)); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){var sentence=require("sentence-case");module.exports=function(string){return sentence(string).replace(/\./g,"_").replace(/ (\w)/g,function(_,$1){return $1.toUpperCase()})}},{"sentence-case":2}],2:[function(require,module,exports){module.exports=function(string){return String(string).replace(/([a-z])([A-Z0-9])/g,"$1 $2").replace(/[^a-zA-Z0-9]+/g,".").replace(/(?!\d\.\d)(^|.)\./g,"$1 ").replace(/^ | $/g,"").toLowerCase()}},{}],3:[function(require,module,exports){module.exports=extend;function extend(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(source.hasOwnProperty(key)){target[key]=source[key]}}}return target}},{}],4:[function(require,module,exports){"use strict";exports.types=require("./types")},{"./types":6}],5:[function(require,module,exports){"use strict";var extend=require("xtend/mutable");function CardType(name,config){extend(this,{name:name},config)}CardType.prototype.cvcLength=3;CardType.prototype.luhn=true;CardType.prototype.groupPattern=/(\d{1,4})(\d{1,4})?(\d{1,4})?(\d{1,4})?/;CardType.prototype.group=function(number){return(number.match(this.groupPattern)||[]).slice(1).filter(identity)};CardType.prototype.test=function(number,eager){return this[eager?"eagerPattern":"pattern"].test(number)};module.exports=CardType;function identity(value){return value}},{"xtend/mutable":3}],6:[function(require,module,exports){"use strict";var Type=require("./type");var group19=/(\d{1,4})(\d{1,4})?(\d{1,4})?(\d{1,4})?(\d{1,3})?/;exports.visa=new Type("Visa",{pattern:/^4\d{12}(\d{3})?$/,eagerPattern:/^4/});exports.maestro=new Type("Maestro",{pattern:/^(?:5[0678]\d\d|6304|6390|67\d\d)\d{8,15}$/,eagerPattern:/^(5(018|0[23]|[68])|6[37])/,groupPattern:group19});exports.forbrugsforeningen=new Type("Forbrugsforeningen",{pattern:/^600722\d{10}$/,eagerPattern:/^600/});exports.dankort=new Type("Dankort",{pattern:/^5019\d{12}$/,eagerPattern:/^5019/});exports.masterCard=new Type("MasterCard",{pattern:/^5[1-5]\d{14}$/,eagerPattern:/^5[1-5]/});exports.americanExpress=new Type("American Express",{pattern:/^3[47]\d{13}$/,eagerPattern:/^3[47]/,groupPattern:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,cvcLength:4});exports.dinersClub=new Type("Diners Club",{pattern:/^3(0[0-5]|[68]\d)\d{11}$/,eagerPattern:/^3(0|[68])/,groupPattern:/(\d{1,4})?(\d{1,6})?(\d{1,4})?/});exports.discover=new Type("Discover",{pattern:/^6(011|[45]\d{2})\d{12}$/,eagerPattern:/^6([45]|01)/});exports.jcb=new Type("JCB",{pattern:/^35\d{14}$/,eagerPattern:/^35/});exports.unionPay=new Type("UnionPay",{pattern:/^62[0-5]\d{13,16}$/,eagerPattern:/^62/,groupPattern:group19,luhn:false})},{"./type":5}],7:[function(require,module,exports){"use strict";module.exports=function(array){return function luhn(number){if(!number)return false;var length=number.length;var bit=1;var sum=0;var value;while(length){value=parseInt(number.charAt(--length),10);sum+=(bit^=1)?array[value]:value}return sum&&sum%10===0}}([0,2,4,6,8,1,3,5,7,9])},{}],8:[function(require,module,exports){"use strict";var camel=require("camel-case");var luhn=require("fast-luhn");exports.types=require("creditcards-types").types;exports.parse=function(number){if(typeof number!=="string")return"";return number.replace(/[^\d]/g,"")};exports.type=function(number,eager){for(var typeName in exports.types){var type=exports.types[typeName];if(type.test(number,eager))return exports.types[typeName].name}};exports.luhn=luhn;exports.isValid=function(number,type){if(!type)type=exports.type(number);type=exports.types[camel(type)];if(!type)return false;return(!type.luhn||luhn(number))&&type.test(number)}},{"camel-case":1,"creditcards-types":4,"fast-luhn":7}],9:[function(require,module,exports){"use strict";var camel=require("camel-case");var card=require("./card");var cvcRegex=/^\d{3,4}$/;exports.isValid=function(cvc,type){if(typeof cvc!=="string")return false;if(!cvcRegex.test(cvc))return false;if(!type)return true;return card.types[camel(type)].cvcLength===cvc.length}},{"./card":8,"camel-case":1}],10:[function(require,module,exports){"use strict";exports.isPast=function(month,year){return Date.now()>=new Date(year,month)};exports.month={parse:function(month){return~~month||void 0},isValid:function(month){if(typeof month!=="number")return false;return month>=1&&month<=12}};var base=(new Date).getFullYear().toString().substr(0,2);function twoDigit(number){return number>=10?number:"0"+number}exports.year={parse:function(year,pad){year=~~year;if(!pad)return year||void 0;return~~(base+twoDigit(year))},format:function(year,strip){year=year.toString();return strip?year.substr(2,4):year},isValid:function(year){if(typeof year!=="number")return false;return year>0},isPast:function(year){return(new Date).getFullYear()>year}}},{}],creditcards:[function(require,module,exports){"use strict";var card=exports.card=require("./card");var cvc=exports.cvc=require("./cvc");var expiration=exports.expiration=require("./expiration");exports.validate=function(cardObj){return{card:{type:card.type(cardObj.number),number:cardObj.number,expirationMonth:cardObj.expirationMonth,expirationYear:cardObj.expirationYear,cvc:cardObj.cvc},validCardNumber:card.luhn(cardObj.number),validExpirationMonth:expiration.month.isValid(cardObj.expirationMonth),validExpirationYear:expiration.year.isValid(cardObj.expirationYear),validCvc:cvc.isValid(cardObj.cvc),expired:expiration.isPast(cardObj.expirationMonth,cardObj.expirationYear)}}},{"./card":8,"./cvc":9,"./expiration":10}]},{},[]);var card=require("creditcards").card;console.log("Validates as",card.type("6759000000000000"));console.log("Eagerly detected as",card.type("67",true)); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "name": "requirebin-sketch", | |
| "version": "1.0.0", | |
| "dependencies": { | |
| "creditcards": "1.4.0" | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment