creditcard-identifier 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ae87b47647670786be04ec29dbb4257da90c3264e1fdb5cb57df74cd6dc8c2b
4
- data.tar.gz: 6d209a5a775ea4e95f9dce3daa5b9a190fa79904e72aae23532438e42b0c3a6c
3
+ metadata.gz: eeb429f9281142942cbd4ad498d415acd95e0459ceb90bd50a692b8cc268410a
4
+ data.tar.gz: 1b7a83a04668a633a08eb27c71858e10940ed8d6e40136a68f130720ca758251
5
5
  SHA512:
6
- metadata.gz: 613ec2e5e2e481e1fabb607c8f27b520ed0ab1d8fb8aa55cdf45c7069e1654afc22599a4bcf1db125db888daa8352277db00ecb92bb6765f8b9499b25cca013e
7
- data.tar.gz: 8a60d7b35b49a581f47a514ca12f04436206d132d2dd9c315f1a6f204d7c345556e4a077d621b8a0e00c8476a7de7b4448e6f3c65267770f72e30cbe3339fe45
6
+ metadata.gz: fadfb663cfb3403e8c66f6216aba4c27249c3c67cd24ce3f8497b5d8c177c0dc1446d620e0580fc9eae8bb5164713065025ef434cecf8e47efe975b2a7726187
7
+ data.tar.gz: 4b571b66cdb0ef013686c321812cf8de15a232cbd2d72d4286369dabdb6ef5daab3f67f80950f315497f3de4973381b0b5a28648f3dc6d377a52aea34dfdca04
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Auto-generated by bin-cc build - DO NOT EDIT
4
- # Generated: 2026-01-11T21:09:29.401Z
4
+ # Generated: 2026-01-14T23:56:46.018Z
5
5
 
6
6
  module CreditcardIdentifier
7
7
  # Credit card brand data
@@ -14,10 +14,38 @@ module CreditcardIdentifier
14
14
  regexp_cvv: /\A\d{4}\z/,
15
15
  },
16
16
  {
17
- name: "diners",
17
+ name: "bankcard",
18
+ priority_over: [],
19
+ regexp_bin: /\A(5610|56022[1-5])/,
20
+ regexp_full: /\A(?=.{16}$)(?:5610|56022[1-5])[0-9]*\z/,
21
+ regexp_cvv: /\A\d{3}\z/,
22
+ },
23
+ {
24
+ name: "cabal",
25
+ priority_over: ["maestro"],
26
+ regexp_bin: /\A(604400|627170|603522|589657|(60420[1-9]|6042[1][0-9])|(6043[0-9]{2}))/,
27
+ regexp_full: /\A(?=.{16}$)(?:604400|627170|603522|589657|(60420[1-9]|6042[1][0-9])|(6043[0-9]{2}))[0-9]*\z/,
28
+ regexp_cvv: /\A\d{3}\z/,
29
+ },
30
+ {
31
+ name: "china-t-union",
32
+ priority_over: [],
33
+ regexp_bin: /\A(31)/,
34
+ regexp_full: /\A(?=.{19}$)(?:31)[0-9]*\z/,
35
+ regexp_cvv: /\A\d{3}\z/,
36
+ },
37
+ {
38
+ name: "dankort",
39
+ priority_over: ["visa"],
40
+ regexp_bin: /\A(5019|4571)/,
41
+ regexp_full: /\A(?=.{16}$)(?:5019|4571)[0-9]*\z/,
42
+ regexp_cvv: /\A\d{3}\z/,
43
+ },
44
+ {
45
+ name: "diners-enroute",
18
46
  priority_over: [],
19
- regexp_bin: /\A(3(?:0[0-5]|[68][0-9]))/,
20
- regexp_full: /\A(?=.{14}$)(?:3(?:0[0-5]|[68][0-9]))[0-9]*\z/,
47
+ regexp_bin: /\A(2014|2149)/,
48
+ regexp_full: /\A(?=.{15}$)(?:2014|2149)[0-9]*\z/,
21
49
  regexp_cvv: /\A\d{3}\z/,
22
50
  },
23
51
  {
@@ -28,24 +56,94 @@ module CreditcardIdentifier
28
56
  regexp_cvv: /\A\d{3}\z/,
29
57
  },
30
58
  {
31
- name: "jcb",
59
+ name: "humo",
32
60
  priority_over: [],
33
- regexp_bin: /\A((?:2131|1800|35))/,
34
- regexp_full: /\A(?=.{16}$)(?:(?:2131|1800|35))[0-9]*\z/,
61
+ regexp_bin: /\A(9860)/,
62
+ regexp_full: /\A(?=.{16}$)(?:9860)[0-9]*\z/,
63
+ regexp_cvv: /\A\d{3}\z/,
64
+ },
65
+ {
66
+ name: "lankapay",
67
+ priority_over: ["jcb"],
68
+ regexp_bin: /\A(357111)/,
69
+ regexp_full: /\A(?=.{16}$)(?:357111)[0-9]*\z/,
70
+ regexp_cvv: /\A\d{3}\z/,
71
+ },
72
+ {
73
+ name: "laser",
74
+ priority_over: ["maestro"],
75
+ regexp_bin: /\A(6304|6706|6771|6709)/,
76
+ regexp_full: /\A(?=.{16,19}$)(?:6304|6706|6771|6709)[0-9]*\z/,
35
77
  regexp_cvv: /\A\d{3}\z/,
36
78
  },
37
79
  {
38
80
  name: "mastercard",
81
+ priority_over: ["diners-us-canada", "mir", "borica"],
82
+ regexp_bin: /\A(5[1-5]|2(?:2(?:2[1-9]|[3-9][0-9])|[3-6][0-9]{2}|7(?:[0-1][0-9]|20)))/,
83
+ regexp_full: /\A(?=.{16}$)(?:5[1-5]|2(?:2(?:2[1-9]|[3-9][0-9])|[3-6][0-9]{2}|7(?:[0-1][0-9]|20)))[0-9]*\z/,
84
+ regexp_cvv: /\A\d{3}\z/,
85
+ },
86
+ {
87
+ name: "napas",
39
88
  priority_over: [],
40
- regexp_bin: /\A(5[1-5]|2[2-7][0-2][0-9])/,
41
- regexp_full: /\A(?=.{16}$)(?:5[1-5]|2[2-7][0-2][0-9])[0-9]*\z/,
89
+ regexp_bin: /\A(9704)/,
90
+ regexp_full: /\A(?=.{16,19}$)(?:9704)[0-9]*\z/,
42
91
  regexp_cvv: /\A\d{3}\z/,
43
92
  },
44
93
  {
45
- name: "aura",
46
- priority_over: ["maestro"],
47
- regexp_bin: /\A(50)/,
48
- regexp_full: /\A(?=.{16,19}$)(?:50)[0-9]*\z/,
94
+ name: "naranja",
95
+ priority_over: [],
96
+ regexp_bin: /\A(589562)/,
97
+ regexp_full: /\A(?=.{16}$)(?:589562)[0-9]*\z/,
98
+ regexp_cvv: /\A\d{3}\z/,
99
+ },
100
+ {
101
+ name: "nps-pridnestrovie",
102
+ priority_over: [],
103
+ regexp_bin: /\A(605474[0-4])/,
104
+ regexp_full: /\A(?=.{16}$)(?:605474[0-4])[0-9]*\z/,
105
+ regexp_cvv: /\A\d{3}\z/,
106
+ },
107
+ {
108
+ name: "solo",
109
+ priority_over: [],
110
+ regexp_bin: /\A(6334|6767)/,
111
+ regexp_full: /\A(?=.{16,19}$)(?:6334|6767)[0-9]*\z/,
112
+ regexp_cvv: /\A\d{3}\z/,
113
+ },
114
+ {
115
+ name: "switch",
116
+ priority_over: ["visa", "maestro"],
117
+ regexp_bin: /\A(4903|4905|4911|4936|564182|633110|6333|6759)/,
118
+ regexp_full: /\A(?=.{16,19}$)(?:4903|4905|4911|4936|564182|633110|6333|6759)[0-9]*\z/,
119
+ regexp_cvv: /\A\d{3}\z/,
120
+ },
121
+ {
122
+ name: "uatp",
123
+ priority_over: [],
124
+ regexp_bin: /\A(1)/,
125
+ regexp_full: /\A(?=.{15}$)(?:1)[0-9]*\z/,
126
+ regexp_cvv: /\A\d{3}\z/,
127
+ },
128
+ {
129
+ name: "ukrcart",
130
+ priority_over: ["hipercard"],
131
+ regexp_bin: /\A((60400[1-9][0-9]{2}|6040[1-9][0-9]{3}|604[1][0-9]{4}|6042[0][0][0-9]{2}))/,
132
+ regexp_full: /\A(?=.{16,19}$)(?:(60400[1-9][0-9]{2}|6040[1-9][0-9]{3}|604[1][0-9]{4}|6042[0][0][0-9]{2}))[0-9]*\z/,
133
+ regexp_cvv: /\A\d{3}\z/,
134
+ },
135
+ {
136
+ name: "uzcard",
137
+ priority_over: [],
138
+ regexp_bin: /\A(8600|5614)/,
139
+ regexp_full: /\A(?=.{16}$)(?:8600|5614)[0-9]*\z/,
140
+ regexp_cvv: /\A\d{3}\z/,
141
+ },
142
+ {
143
+ name: "visa-electron",
144
+ priority_over: ["visa"],
145
+ regexp_bin: /\A(4026|4405|4508|4844|4913|4917|417500)/,
146
+ regexp_full: /\A(?=.{16}$)(?:4026|4405|4508|4844|4913|4917|417500)[0-9]*\z/,
49
147
  regexp_cvv: /\A\d{3}\z/,
50
148
  },
51
149
  {
@@ -56,38 +154,122 @@ module CreditcardIdentifier
56
154
  regexp_cvv: /\A\d{3}\z/,
57
155
  },
58
156
  {
59
- name: "maestro",
157
+ name: "borica",
60
158
  priority_over: [],
61
- regexp_bin: /\A(5018|5020|5038|5893|6304|6759|676[1-3]|6706)/,
62
- regexp_full: /\A(?=.{12,19}$)(?:5018|5020|5038|5893|6304|6759|676[1-3]|6706)[0-9]*\z/,
159
+ regexp_bin: /\A(2205)/,
160
+ regexp_full: /\A(?=.{16}$)(?:2205)[0-9]*\z/,
63
161
  regexp_cvv: /\A\d{3}\z/,
64
162
  },
65
163
  {
66
- name: "visa",
164
+ name: "diners",
67
165
  priority_over: [],
68
- regexp_bin: /\A(4|6367)/,
69
- regexp_full: /\A(?=.{13,16}$)(?:4|6367)[0-9]*\z/,
166
+ regexp_bin: /\A(3(?:0[0-5]|6|8|9))/,
167
+ regexp_full: /\A(?=.{14}$)(?:3(?:0[0-5]|6|8|9))[0-9]*\z/,
168
+ regexp_cvv: /\A\d{3}\z/,
169
+ },
170
+ {
171
+ name: "instapayment",
172
+ priority_over: [],
173
+ regexp_bin: /\A(63[7-9])/,
174
+ regexp_full: /\A(?=.{16}$)(?:63[7-9])[0-9]*\z/,
175
+ regexp_cvv: /\A\d{3}\z/,
176
+ },
177
+ {
178
+ name: "interpayment",
179
+ priority_over: [],
180
+ regexp_bin: /\A(636)/,
181
+ regexp_full: /\A(?=.{16,19}$)(?:636)[0-9]*\z/,
182
+ regexp_cvv: /\A\d{3}\z/,
183
+ },
184
+ {
185
+ name: "jcb",
186
+ priority_over: [],
187
+ regexp_bin: /\A((?:2131|1800|35))/,
188
+ regexp_full: /\A(?=.{16}$)(?:(?:2131|1800|35))[0-9]*\z/,
189
+ regexp_cvv: /\A\d{3}\z/,
190
+ },
191
+ {
192
+ name: "mir",
193
+ priority_over: [],
194
+ regexp_bin: /\A(220[0-4])/,
195
+ regexp_full: /\A(?=.{16,19}$)(?:220[0-4])[0-9]*\z/,
196
+ regexp_cvv: /\A\d{3}\z/,
197
+ },
198
+ {
199
+ name: "troy",
200
+ priority_over: [],
201
+ regexp_bin: /\A(65|9792)/,
202
+ regexp_full: /\A(?=.{16}$)(?:65|9792)[0-9]*\z/,
203
+ regexp_cvv: /\A\d{3}\z/,
204
+ },
205
+ {
206
+ name: "aura",
207
+ priority_over: ["maestro", "maestro-uk", "gpn", "verve"],
208
+ regexp_bin: /\A(50)/,
209
+ regexp_full: /\A(?=.{16,19}$)(?:50)[0-9]*\z/,
210
+ regexp_cvv: /\A\d{3}\z/,
211
+ },
212
+ {
213
+ name: "maestro-uk",
214
+ priority_over: ["maestro"],
215
+ regexp_bin: /\A(6759|676770|676774)/,
216
+ regexp_full: /\A(?=.{12,19}$)(?:6759|676770|676774)[0-9]*\z/,
70
217
  regexp_cvv: /\A\d{3}\z/,
71
218
  },
72
219
  {
73
220
  name: "discover",
74
- priority_over: ["hipercard", "unionpay"],
221
+ priority_over: ["hipercard", "unionpay", "gpn", "rupay", "troy", "verve"],
75
222
  regexp_bin: /\A(6011|64[4-9]|65)/,
76
223
  regexp_full: /\A(?=.{16,19}$)(?:6011|64[4-9]|65)[0-9]*\z/,
77
224
  regexp_cvv: /\A\d{3}\z/,
78
225
  },
226
+ {
227
+ name: "unionpay",
228
+ priority_over: [],
229
+ regexp_bin: /\A(62)/,
230
+ regexp_full: /\A(?=.{16,19}$)(?:62)[0-9]*\z/,
231
+ regexp_cvv: /\A\d{3}\z/,
232
+ },
79
233
  {
80
234
  name: "hipercard",
235
+ priority_over: ["gpn", "diners", "diners-international", "rupay"],
236
+ regexp_bin: /\A(384|60)/,
237
+ regexp_full: /\A(?=.{16,19}$)(?:384|60)[0-9]*\z/,
238
+ regexp_cvv: /\A\d{3}\z/,
239
+ },
240
+ {
241
+ name: "rupay",
81
242
  priority_over: [],
82
- regexp_bin: /\A(38|60)/,
83
- regexp_full: /\A(?=.{16,19}$)(?:38|60)[0-9]*\z/,
243
+ regexp_bin: /\A(60|65|8[12]|508|35[36])/,
244
+ regexp_full: /\A(?=.{16}$)(?:60|65|8[12]|508|35[36])[0-9]*\z/,
84
245
  regexp_cvv: /\A\d{3}\z/,
85
246
  },
86
247
  {
87
- name: "unionpay",
248
+ name: "verve",
249
+ priority_over: ["discover", "aura"],
250
+ regexp_bin: /\A((5060[9][9]|506[1][0-9]{2}|5061[0-9][0-8])|(65000[2-9]|6500[1][0-9]|6500[2][0-7])|(5078[6-9][5-9]|507[89][0-5][0-9]|5079[0-5][0-9]|50796[0-4]))/,
251
+ regexp_full: /\A(?=.{16,19}$)(?:(5060[9][9]|506[1][0-9]{2}|5061[0-9][0-8])|(65000[2-9]|6500[1][0-9]|6500[2][0-7])|(5078[6-9][5-9]|507[89][0-5][0-9]|5079[0-5][0-9]|50796[0-4]))[0-9]*\z/,
252
+ regexp_cvv: /\A\d{3}\z/,
253
+ },
254
+ {
255
+ name: "visa",
256
+ priority_over: ["gpn", "interpayment", "instapayment"],
257
+ regexp_bin: /\A(4|6367)/,
258
+ regexp_full: /\A(?=.{13,19}$)(?:4|6367)[0-9]*\z/,
259
+ regexp_cvv: /\A\d{3}\z/,
260
+ },
261
+ {
262
+ name: "gpn",
88
263
  priority_over: [],
89
- regexp_bin: /\A(62)/,
90
- regexp_full: /\A(?=.{16,19}$)(?:62)[0-9]*\z/,
264
+ regexp_bin: /\A(1946|50|56|58|6[0-3])/,
265
+ regexp_full: /\A(?=.{16,19}$)(?:1946|50|56|58|6[0-3])[0-9]*\z/,
266
+ regexp_cvv: /\A\d{3}\z/,
267
+ },
268
+ {
269
+ name: "maestro",
270
+ priority_over: [],
271
+ regexp_bin: /\A((?:50|5[6-9]|6[0-9]))/,
272
+ regexp_full: /\A(?=.{12,19}$)(?:(?:50|5[6-9]|6[0-9]))[0-9]*\z/,
91
273
  regexp_cvv: /\A\d{3}\z/,
92
274
  },
93
275
  ].freeze