PageSourceSearch

https://clientes.zuttel.com.br/central_assinante_web/assets/lib/Cardtype_v0.0.2/card-type.js

js zuttel.com.br collected 2026-09-24 13:56:03 UTC 5,872 bytes, 156 lines download raw bytes

1(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.CardType = f()}})(function(){var define,module,exports;return (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){
2        'use strict';
3
4        Object.defineProperty(exports, "__esModule", {
5            value: true
6        });
7
8        var _slicedToArray = function () {
9            function sliceIterator(arr, i) {
10                var _arr = [];var _n = true;var _d = false;var _e = undefined;try {
11                    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
12                        _arr.push(_s.value);if (i && _arr.length === i) break;
13                    }
14                } catch (err) {
15                    _d = true;_e = err;
16                } finally {
17                    try {
18                        if (!_n && _i["return"]) _i["return"]();
19                    } finally {
20                        if (_d) throw _e;
21                    }
22                }return _arr;
23            }return function (arr, i) {
24                if (Array.isArray(arr)) {
25                    return arr;
26                } else if (Symbol.iterator in Object(arr)) {
27                    return sliceIterator(arr, i);
28                } else {
29                    throw new TypeError("Invalid attempt to destructure non-iterable instance");
30                }
31            };
32        }();
33
34        exports.default = cardType;
35
36        var _cards = require('./cards');
37
38        var _cards2 = _interopRequireDefault(_cards);
39
40        function _interopRequireDefault(obj) {
41            return obj && obj.__esModule ? obj : { default: obj };
42        }
43
44        function cardType(card) {
45            var bin = getBin(card);
46            var detectedTypes = [];
47
48            _cards2.default.forEach(function (card) {
49                card.pattern.forEach(function (pattern) {
50                    if (checkCard(bin, pattern)) {
51                        detectedTypes.unshift(card.name);
52                    }
53                });
54            });
55
56            return detectedTypes[0] || '';
57        }
58
59        function getBin(value) {
60            return value.toString().replace(/\D/g, '').substr(0, 6);
61        }
62
63        function checkCard(bin, pattern) {
64            return Array.isArray(pattern) ? checkRange(bin, pattern) : checkPattern(bin, pattern);
65        }
66
67        function checkPattern(bin, pattern) {
68            if (pattern instanceof RegExp) {
69                return pattern.test(bin);
70            }
71
72            pattern = pattern.toString();
73            return bin.substr(0, pattern.length) === pattern;
74        }
75
76        function checkRange(bin, _ref) {
77            var _ref2 = _slicedToArray(_ref, 2),
78                min = _ref2[0],
79                max = _ref2[1];
80
81            var length = min.toString().length;
82            var value = parseInt(bin.substr(0, length));
83
84            return value >= min && value <= max;
85        }
86
87    },{"./cards":2}],2:[function(require,module,exports){
88        'use strict';
89
90        Object.defineProperty(exports, "__esModule", {
91            value: true
92        });
93        exports.default = [{
94            name: 'visa',
95            pattern: [4]
96        }, {
97            name: 'mastercard',
98            pattern: [[51, 55], [2221, 2720]]
99        }, {
100            name: 'amex',
101            pattern: [34, 37]
102        }, {
103            name: 'diners',
104            pattern: [36, 309, [300, 305], [38, 39]]
105        }, {
106            name: 'unionpay',
107            pattern: [62]
108        }, {
109            name: 'discover',
110            pattern: [6011, [622126, 622925], [644, 649], 65]
111        }, {
112            name: 'jcb',
113            pattern: [35]
114        }, {
115            name: 'maestro',
116            pattern: [5018, 502, 503, 506, 56, 57, 58, 639, 6220, 67]
117        }, {
118            name: 'elo',
119            pattern: [401178, 401179, 431274, 438935, 451416, 457393, 457631, 457632, 504175, 627780, 636297, 636297, 636368, [506699, 506778], [509000, 509999], [650031, 650033], [650035, 650051], [650405, 650439], [650485, 650538], [650541, 650598], [650700, 650718], [650720, 650727], [650901, 650920], [651652, 651679], [655000, 655019], [655021, 655058], [650921, 650978]]
120        }, {
121            name: 'hipercard',
122            pattern: [384100, 384140, 384160, /^60(?!11)/]
123        }];
124
125    },{}],3:[function(require,module,exports){
126        'use strict';
127
128        Object.defineProperty(exports, "__esModule", {
129            value: true
130        });
131
132        var _cards = require('./cards');
133
134        Object.defineProperty(exports, 'cards', {
135            enumerable: true,
136            get: function get() {
137                return _interopRequireDefault(_cards).default;
138            }
139        });
140
141        var _cardType = require('./cardType');
142
143        Object.defineProperty(exports, 'cardType', {
144            enumerable: true,
145            get: function get() {
146                return _interopRequireDefault(_cardType).default;
147            }
148        });
149
150        function _interopRequireDefault(obj) {
151            return obj && obj.__esModule ? obj : { default: obj };
152        }
153
154    },{"./cardType":1,"./cards":2}]},{},[3])(3)
155});
156//# sourceMappingURL=card-type.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.