Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
@qiwi/card-info
Advanced tools
Complex utility for getting card info by its PAN. Supported providers:
<CustomService>
npm i @qiwi/card-info
yarn add @qiwi/card-info
import BinlistnetService from '@qiwi/card-info/service/binlistnet'
const service = new BinlistnetService({...})
service.getPaymentSystem('4111111111111111') // Promise<'Visa'>
service.getPaymentSystem('1234') // Promise<null>
Promise
and transport
customizationBy default card-info uses native Promise
and fetch
. You may replace them with any compatible api. For example, Bluebird
and Axios
import cardInfo from '@qiwi/card-info'
import bluebird from 'bluebird'
import axios from 'axios'
cardInfo.Promise = bluebird
cardInfo.transport = axios // or any polyfill, pull-fetch-iso, etc.
Each service implementation has own supported opts list, but there is a common part:
Option | Type | Default | Description |
---|---|---|---|
skipError | bool | true | means, that any fetch exception would be converted to null response |
url | string | null | endpoint url |
transport | Object | null | optional extras, merged to fetch arg. For example, {retries: [{delay: 100},{delay: 2000}} |
import {composer} from '@qiwi/card-info'
import {PreService, BinlistnetService} from '@qiwi/card-info/service'
const preService = new PreService()
const binlistnetService = new BinlistnetService()
const composed = compose(preService, binlistnetService)
composed.getPaymentSystem('5321 4012 3456 7890') // 'Mastercard'
composed.getCardInfo('5321 4012 3456 7890') // if preService returns null, the request would be processed with binlist.net backend
Braintree
import {BraintreeService} from '@qiwi/card-info/service'
const service = new BraintreeService({...})
service.getPaymentSystem('6759649826438453') // Promise<'Maestro'>
service.getPaymentSystem('1234') // Promise<null>
Braintree's credit-card-type
lib is exposed as static property of the class, so you're able to use its API. For example, add custom definitions:
BraintreeService.creditCardType.addCard({
niceType: 'Foo',
type: 'foo',
prefixPattern: /^(12345)$/,
exactPattern: /^(12345)\d*$/,
gaps: [4, 8, 12],
lengths: [16],
code: {
name: 'CVV',
size: 3
}
})
const service = new BraintreeService()
service.getPaymentSystem('1234567890123456') // Promise<'FOO'>
CustomService
Composer supports any impl of IService, so you're let to create your own class.
import AbstractService from '@qiwi/card-info/service/abstract'
class CustomService extends AbstractService implements IService {
getPaymentSystem(pan: string): Promise<?IPaymentSystem> {
// ...
}
getCardInfo(pan: string): Promise<?ICardInfo> {
// ...
}
}
PreService
It's client-side implementation of service. The mostly used paysystems and bins are hardcoded
for performance purposes.
1.0.0 (2018-05-15)
<a name="0.7.1"></a>
FAQs
Library for getting card info by its PAN
We found that @qiwi/card-info demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.