validation-br
Advanced tools
Comparing version 0.21.3 to 1.0.0-b
module.exports = { | ||
root: true, | ||
extends: ['airbnb-base', 'prettier'], | ||
parser: '@typescript-eslint/parser', | ||
parserOptions: { | ||
ecmaVersion: 2018, | ||
sourceType: 'module', | ||
}, | ||
env: { | ||
browser: true, | ||
commonjs: true, | ||
es2021: true, | ||
node: true, | ||
jest: true, | ||
}, | ||
extends: [ | ||
'airbnb-base', | ||
], | ||
parserOptions: { | ||
ecmaVersion: 12, | ||
settings: { | ||
'import/resolver': { | ||
node: { | ||
extensions: ['.js', '.ts'], | ||
}, | ||
}, | ||
}, | ||
rules: { | ||
'no-console': 0, | ||
'@typescript-eslint/no-unused-vars': ['error', { varsIgnorePattern: '^_', args: 'none' }], | ||
'array-callback-return': 'off', | ||
'arrow-body-style': 'off', | ||
curly: ['error', 'multi-line', 'consistent'], | ||
'class-methods-use-this': 'off', | ||
'consistent-return': 'warn', | ||
'default-case': 'off', | ||
'import/extensions': ['error', 'never'], | ||
'import/first': 'warn', | ||
'import/no-named-as-default': 'warn', | ||
'import/no-named-as-default-member': 'warn', | ||
'import/no-unresolved': 'warn', | ||
'import/prefer-default-export': 'off', | ||
'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }], | ||
'max-classes-per-file': 'off', | ||
'max-len': ['error', 120, 2, { ignoreUrls: true, ignoreTemplateLiterals: true }], | ||
'newline-per-chained-call': 'warn', | ||
'no-await-in-loop': 'off', | ||
'no-confusing-arrow': 'off', | ||
'no-console': 'off', | ||
'no-continue': 'off', | ||
'no-else-return': ['error', { allowElseIf: true }], | ||
'no-loop-func': 'off', | ||
'no-mixed-operators': 'off', | ||
'no-nested-ternary': 'off', | ||
'no-only-tests/no-only-tests': 'error', | ||
'no-param-reassign': 'off', | ||
'no-plusplus': 'off', | ||
'no-prototype-builtins': 'off', | ||
'no-restricted-syntax': 'off', | ||
'no-return-assign': 'warn', | ||
'no-sequences': 'warn', | ||
'no-shadow': 'off', | ||
'no-underscore-dangle': 'off', | ||
'no-unexpected-multiline': 'off', | ||
'no-unused-vars': 'off', | ||
'no-use-before-define': ['warn', { functions: false, classes: false }], | ||
'prefer-destructuring': 'off', | ||
semi: ['error', 'never'], | ||
'sort-imports': 'off', | ||
'no-unused-expressions': 'off', | ||
quotes: ['error', 'single', { avoidEscape: true }], | ||
'@typescript-eslint/ban-types': 'error', | ||
}, | ||
ignorePatterns: ['**/dist/*.js'], | ||
}; | ||
overrides: [ | ||
{ | ||
files: ['*.ts'], | ||
rules: { | ||
'no-dupe-class-members': 'off', | ||
'no-undef': 'off', | ||
'@typescript-eslint/explicit-function-return-type': 'error', | ||
}, | ||
}, | ||
{ | ||
files: ['*.d.ts'], | ||
rules: { | ||
'no-useless-constructor': 'off', // crashes on constructor declaration in .d.ts files | ||
}, | ||
}, | ||
], | ||
plugins: ['no-only-tests', '@typescript-eslint'], | ||
} |
130
package.json
{ | ||
"name": "validation-br", | ||
"description": "Brazilian personal documents validation - cpf, cnpj, titulo, pis/pasep, cnh, renavam, processos judiciais, protocolo federal, código de rastreamento dos correios", | ||
"version": "0.21.3", | ||
"version": "1.0.0-b", | ||
"main": "dist/index.js", | ||
"types": "./dist/types.d.ts", | ||
"author": "Cláudio Medeiros <klawdyo@gmail.com>", | ||
"license": "MIT", | ||
"scripts": { | ||
"test": "yarn build && cls && node tests | tap-spec", | ||
"build": "babel src --source-maps -d dist", | ||
"lint": "eslint src/** --ignore-path .gitignore .", | ||
"lint:fix": "eslint src/** --ignore-path .gitignore . --fix", | ||
"prepublish": "yarn build" | ||
"build": "tsc", | ||
"test": "jest", | ||
"test:watch": "jest --watch", | ||
"test:coverage": "jest --collectCoverageFrom=src/**/*.ts --coverage", | ||
"lint:list": "eslint */**/*.js --fix", | ||
"format": "prettier --write \"./**/*.{js,ts,json}\"" | ||
}, | ||
"eslintConfig": { | ||
"extends": "airbnb" | ||
"husky": { | ||
"hooks": { | ||
"pre-commit": "tsc --noEmit && lint-staged" | ||
} | ||
}, | ||
"dependencies": {}, | ||
"lint-staged": { | ||
"*.{js,ts}": [ | ||
"prettier --write", | ||
"eslint --cache --fix" | ||
] | ||
}, | ||
"devDependencies": { | ||
"@babel/cli": "^7.14.8", | ||
"@babel/core": "^7.15.0", | ||
"@babel/plugin-transform-runtime": "^7.15.0", | ||
"@babel/preset-env": "^7.15.0", | ||
"@babel/runtime": "^7.15.3", | ||
"babel-preset-minify": "^0.5.1", | ||
"core-js": "^3.16.2", | ||
"eslint": "^7.32.0", | ||
"eslint-config-airbnb-base": "^14.2.1", | ||
"eslint-plugin-import": "^2.24.1", | ||
"regenerator-runtime": "^0.13.9", | ||
"tap-spec": "^2.2.2", | ||
"tape": "^4.13.0" | ||
}, | ||
"main": "index.js", | ||
"author": "Cláudio Medeiros", | ||
"repository": { | ||
"url": "https://github.com/klawdyo/validation-br" | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/klawdyo/validation-br/issues" | ||
}, | ||
"homepage": "https://github.com/klawdyo/validation-br#readme", | ||
"keywords": [ | ||
"validation-br", | ||
"validation", | ||
"personal documents", | ||
"document", | ||
"brazil", | ||
"brasil", | ||
"brazilian", | ||
"brasileiro", | ||
"cpf", | ||
"cnpj", | ||
"pis", | ||
"pasep", | ||
"cnh", | ||
"titulo eleitor", | ||
"eleitoral", | ||
"titulo", | ||
"renavam", | ||
"processos", | ||
"judiciais", | ||
"judicial", | ||
"justiça", | ||
"protocolo", | ||
"federal", | ||
"fake", | ||
"falso", | ||
"mock", | ||
"faker", | ||
"mockup", | ||
"mask", | ||
"mascara", | ||
"fake cpf", | ||
"fake cnpj", | ||
"fake cnh", | ||
"fake pis", | ||
"fake pasep", | ||
"fake cadunico", | ||
"fake renavam", | ||
"fake titulo", | ||
"fake titulo eleitor", | ||
"fake titulo eleitoral", | ||
"fake número processo", | ||
"processo justiça", | ||
"processo judicial", | ||
"valida", | ||
"validar", | ||
"validação", | ||
"valide", | ||
"validate", | ||
"format", | ||
"formatar", | ||
"formatador", | ||
"formatter" | ||
], | ||
"license": "MIT", | ||
"private": false | ||
"@types/jest": "^27.4.0", | ||
"@types/node": "^14.14.2", | ||
"@typescript-eslint/eslint-plugin": "^4.0.0", | ||
"@typescript-eslint/parser": "^3.10.1", | ||
"eslint": "^7.11.0", | ||
"eslint-config-airbnb-base": "^14.2.0", | ||
"eslint-config-prettier": "^6.14.0", | ||
"eslint-import-resolver-node": "^0.3.4", | ||
"eslint-import-resolver-typescript": "^2.3.0", | ||
"eslint-plugin-import": "^2.22.1", | ||
"eslint-plugin-no-only-tests": "^2.4.0", | ||
"eslint-plugin-prettier": "^3.1.4", | ||
"husky": "^4.3.0", | ||
"jest": "^27.4.7", | ||
"lint-staged": "^10.4.2", | ||
"prettier": "^2.1.2", | ||
"ts-jest": "^27.1.2", | ||
"ts-node": "^9.0.0", | ||
"typescript": "^4.0.3" | ||
} | ||
} |
214
readme.md
@@ -7,3 +7,3 @@ # validation-br | ||
Validation-BR também permite criação de números fake para facilitar o desenvolvimento e testes, além de aplicar máscaras e calcular somente os dígitos verificadores. | ||
Validation-BR também permite criação de números fake para facilitar o desenvolvimento e testes, além de aplicar máscaras e calcular somente os dígitos verificadores. | ||
@@ -30,6 +30,6 @@ # Instalação | ||
// Modules | ||
const { isCPF, isCNPJ } = require('validation-br'); | ||
const { isCPF, isCNPJ } = require('validation-br') | ||
// ES6 | ||
import { isCPF, isCNPJ } from 'validation-br'; | ||
import { isCPF, isCNPJ } from 'validation-br' | ||
``` | ||
@@ -45,26 +45,26 @@ | ||
// ES6 | ||
import { dv, fake, mask, validate } from 'validation-br/cpf'; | ||
import { dv, fake, mask, validate } from 'validation-br/cpf' | ||
// Modules | ||
const cpf = require('validation-br/cpf'); | ||
const { dv, fake, mask, validate } = require('validation-br/cpf'); | ||
const cpf = require('validation-br/cpf') | ||
const { dv, fake, mask, validate } = require('validation-br/cpf') | ||
// Calculo do dígito verificador de um CPF. Os métodos aceitam inteiros e strings, inclusive com máscaras. | ||
cpf.dv(906259666); // -> '51' | ||
cpf.dv('906259666'); // -> '51' | ||
cpf.dv('906.259.666'); // -> '51' | ||
cpf.dv(906259666) // -> '51' | ||
cpf.dv('906259666') // -> '51' | ||
cpf.dv('906.259.666') // -> '51' | ||
// Cria um número fake de CPF para fins de testes. | ||
cpf.fake(); // -> 90625966651 | ||
cpf.fake() // -> 90625966651 | ||
// Passe um parâmetro true para gerar o número com máscara | ||
cpf.fake(true); // -> 906.259.666-51 | ||
cpf.fake(true) // -> 906.259.666-51 | ||
// Aplique uma máscara a um cpf | ||
cpf.mask(90625966651); // -> 906.259.666-51 | ||
cpf.mask(90625966651) // -> 906.259.666-51 | ||
// Valida um número | ||
cpf.validate('01234567890'); // -> true | ||
cpf.validate('01234567890') // -> true | ||
// Valida um número e retorna exceção se a validação falhar | ||
cpf.validateOrFail('01234567890'); // -> true | ||
cpf.validateOrFail('01234567890') // -> true | ||
``` | ||
@@ -82,3 +82,3 @@ | ||
- [isRenavam](#isRenavam-value-) - Validação de RENAVAM | ||
- [isTitulo](#isTitulo-value-) - Validação do Título de Eleitor | ||
- [isTituloEleitor](#isTituloEleitor-value-) - Validação do Título de Eleitor | ||
@@ -91,23 +91,23 @@ ### isCNH( `value` ) | ||
// Importação somente da validação | ||
import { isCNH } from 'validation-br'; | ||
import { isCNH } from 'validation-br' | ||
// ou | ||
// Importação do submódulo | ||
import cnh from 'validation-br/cnh'; | ||
import cnh from 'validation-br/cnh' | ||
// Valida | ||
isCNH('69044271146'); //-> true | ||
isCNH('62472927637'); //-> true | ||
isCNH('46190476839'); //-> false | ||
cnh.validate('62472927637'); //-> true | ||
cnh.validateOrFail('62472927637'); //-> true | ||
isCNH('69044271146') //-> true | ||
isCNH('62472927637') //-> true | ||
isCNH('46190476839') //-> false | ||
cnh.validate('62472927637') //-> true | ||
cnh.validateOrFail('62472927637') //-> true | ||
// Número fake com e sem máscara | ||
cnh.fake(); // -> 62472927637 | ||
cnh.fake(true); // -> 624729276-37 | ||
cnh.fake() // -> 62472927637 | ||
cnh.fake(true) // -> 624729276-37 | ||
// Aplica uma máscara | ||
cnh.mask('62472927637'); // -> 624729276-37 | ||
cnh.mask('62472927637') // -> 624729276-37 | ||
// Calcula o DV | ||
cnh.dv('624729276'); // -> '37' | ||
cnh.dv('624729276') // -> '37' | ||
``` | ||
@@ -121,23 +121,23 @@ | ||
// Importação somente da validação | ||
import { isCNPJ } from 'validation-br'; | ||
import { isCNPJ } from 'validation-br' | ||
// ou | ||
// Importação do submódulo | ||
import cnpj from 'validation-br/cnpj'; | ||
import cnpj from 'validation-br/cnpj' | ||
// Valida | ||
isCNPJ('73.797.980/0001-79'); //-> true | ||
isCNPJ('55585709000198'); //-> true | ||
isCNPJ('99362238000180'); //-> false | ||
cnpj.validate('99362238000180'); //-> true | ||
cnpj.validateOrFail('99362238000180'); //-> true | ||
isCNPJ('73.797.980/0001-79') //-> true | ||
isCNPJ('55585709000198') //-> true | ||
isCNPJ('99362238000180') //-> false | ||
cnpj.validate('99362238000180') //-> true | ||
cnpj.validateOrFail('99362238000180') //-> true | ||
// Número fake com e sem máscara | ||
cnpj.fake(); // -> 55585709000198 | ||
cnpj.fake(true); // -> 55.585.709/0001-98 | ||
cnpj.fake() // -> 55585709000198 | ||
cnpj.fake(true) // -> 55.585.709/0001-98 | ||
// Aplica uma máscara | ||
cnpj.mask('99362238000180'); // -> 99.362.238/0001-80 | ||
cnpj.mask('99362238000180') // -> 99.362.238/0001-80 | ||
// Calcula o DV | ||
cnpj.dv('993622380001'); // -> '80' | ||
cnpj.dv('993622380001') // -> '80' | ||
``` | ||
@@ -151,23 +151,23 @@ | ||
// Importação somente da validação | ||
import { isCPF } from 'validation-br'; | ||
import { isCPF } from 'validation-br' | ||
// ou | ||
// Importação do submódulo | ||
import cpf from 'validation-br/cpf'; | ||
import cpf from 'validation-br/cpf' | ||
// Valida | ||
isCPF('01234567890'); //-> true | ||
isCPF('012.345.678-90'); //-> true | ||
isCPF('01234567891'); //-> false | ||
cpf.validate('01234567890'); //-> true | ||
cpf.validateOrFail('01234567890'); //-> true | ||
isCPF('01234567890') //-> true | ||
isCPF('012.345.678-90') //-> true | ||
isCPF('01234567891') //-> false | ||
cpf.validate('01234567890') //-> true | ||
cpf.validateOrFail('01234567890') //-> true | ||
// Número fake com e sem máscara | ||
cpf.fake(); // -> 01234567891 | ||
cpf.fake(true); // -> 012.345.678-91 | ||
cpf.fake() // -> 01234567891 | ||
cpf.fake(true) // -> 012.345.678-91 | ||
// Aplica uma máscara | ||
cpf.mask('01234567890'); // -> 012.345.678-90 | ||
cpf.mask('01234567890') // -> 012.345.678-90 | ||
// Calcula o DV | ||
cpf.dv('012345678'); // -> '90' | ||
cpf.dv('012345678') // -> '90' | ||
``` | ||
@@ -181,23 +181,23 @@ | ||
// Importação somente da validação | ||
import { isJudicialProcess } from 'validation-br'; | ||
import { isJudicialProcess } from 'validation-br' | ||
// ou | ||
// Importação do submódulo | ||
import judicialProcess from 'validation-br/judicial-process'; | ||
import judicialProcess from 'validation-br/judicial-process' | ||
// Valida | ||
isJudicialProcess('71282677380'); //-> true | ||
isJudicialProcess('237.95126.95-5'); //-> true | ||
isJudicialProcess('500.12973.80-1'); //-> false | ||
judicialProcess.validate('71282677380'); //-> true | ||
judicialProcess.validateOrFail('71282677380'); //-> true | ||
isJudicialProcess('71282677380') //-> true | ||
isJudicialProcess('237.95126.95-5') //-> true | ||
isJudicialProcess('500.12973.80-1') //-> false | ||
judicialProcess.validate('71282677380') //-> true | ||
judicialProcess.validateOrFail('71282677380') //-> true | ||
// Número fake com e sem máscara | ||
judicialProcess.fake(); // -> 71282677380 | ||
judicialProcess.fake(true); // -> 712.82677.38-0 | ||
judicialProcess.fake() // -> 71282677380 | ||
judicialProcess.fake(true) // -> 712.82677.38-0 | ||
// Aplica uma máscara | ||
judicialProcess.mask('71282677380'); // -> 712.82677.38-0 | ||
judicialProcess.mask('71282677380') // -> 712.82677.38-0 | ||
// Calcula o DV | ||
judicialProcess.dv('7128267738'); // -> '0' | ||
judicialProcess.dv('7128267738') // -> '0' | ||
``` | ||
@@ -211,23 +211,23 @@ | ||
// Importação somente da validação | ||
import { isPIS } from 'validation-br'; | ||
import { isPIS } from 'validation-br' | ||
// ou | ||
// Importação do submódulo | ||
import pis from 'validation-br/pis'; | ||
import pis from 'validation-br/pis' | ||
// Valida | ||
isPIS('71282677380'); //-> true | ||
isPIS('237.95126.95-5'); //-> true | ||
isPIS('500.12973.80-1'); //-> false | ||
pis.validate('71282677380'); //-> true | ||
pis.validateOrFail('71282677380'); //-> true | ||
isPIS('71282677380') //-> true | ||
isPIS('237.95126.95-5') //-> true | ||
isPIS('500.12973.80-1') //-> false | ||
pis.validate('71282677380') //-> true | ||
pis.validateOrFail('71282677380') //-> true | ||
// Número fake com e sem máscara | ||
pis.fake(); // -> 71282677380 | ||
pis.fake(true); // -> 712.82677.38-0 | ||
pis.fake() // -> 71282677380 | ||
pis.fake(true) // -> 712.82677.38-0 | ||
// Aplica uma máscara | ||
pis.mask('71282677380'); // -> 712.82677.38-0 | ||
pis.mask('71282677380') // -> 712.82677.38-0 | ||
// Calcula o DV | ||
pis.dv('7128267738'); // -> '0' | ||
pis.dv('7128267738') // -> '0' | ||
``` | ||
@@ -246,24 +246,24 @@ | ||
// Importação somente da validação | ||
import { isPostalCode } from 'validation-br'; | ||
import { isPostalCode } from 'validation-br' | ||
// ou | ||
// Importação do submódulo | ||
import postalCode from 'validation-br/postal-code'; | ||
import postalCode from 'validation-br/postal-code' | ||
// Valida | ||
isPostalCode('PN718252423BR'); //-> true | ||
isPostalCode('RY728187035CN'); //-> true | ||
isPostalCode('JT194624698BR'); //-> false | ||
postalCode.validate('PN718252423BR'); //-> true | ||
postalCode.validateOrFail('PN718252423BR'); //-> true | ||
isPostalCode('PN718252423BR') //-> true | ||
isPostalCode('RY728187035CN') //-> true | ||
isPostalCode('JT194624698BR') //-> false | ||
postalCode.validate('PN718252423BR') //-> true | ||
postalCode.validateOrFail('PN718252423BR') //-> true | ||
// Número fake com e sem máscara. | ||
postalCode.fake(); // -> PN718252423BR | ||
postalCode.fake(true); // -> PN718252423BR | ||
postalCode.fake() // -> PN718252423BR | ||
postalCode.fake(true) // -> PN718252423BR | ||
// Aplica uma máscara | ||
// No caso de PostalCode, a máscara apenas coloca as letras em maiúsculas | ||
postalCode.mask('pn718252423br'); // -> PN718252423BR | ||
postalCode.mask('pn718252423br') // -> PN718252423BR | ||
// Calcula o DV | ||
postalCode.dv('PN718252423BR'); // -> '3' | ||
postalCode.dv('PN718252423BR') // -> '3' | ||
``` | ||
@@ -277,26 +277,26 @@ | ||
// Importação somente da validação | ||
import { isRenavam } from 'validation-br'; | ||
import { isRenavam } from 'validation-br' | ||
// ou | ||
// Importação do submódulo | ||
import renavam from 'validation-br/renavam'; | ||
import renavam from 'validation-br/renavam' | ||
// Valida | ||
isRenavam('14283256656'); //-> true | ||
isRenavam('95059845976'); //-> true | ||
isRenavam('67747331626'); //-> false | ||
renavam.validate('95059845976'); //-> true | ||
renavam.validateOrFail('95059845976'); //-> true | ||
isRenavam('14283256656') //-> true | ||
isRenavam('95059845976') //-> true | ||
isRenavam('67747331626') //-> false | ||
renavam.validate('95059845976') //-> true | ||
renavam.validateOrFail('95059845976') //-> true | ||
// Número fake com e sem máscara | ||
renavam.fake(); // -> 95059845976 | ||
renavam.fake(true); // -> 9505984597-6 | ||
renavam.fake() // -> 95059845976 | ||
renavam.fake(true) // -> 9505984597-6 | ||
// Aplica uma máscara | ||
renavam.mask('95059845976'); // -> 9505984597-6 | ||
renavam.mask('95059845976') // -> 9505984597-6 | ||
// Calcula o DV | ||
renavam.dv('950598459'); // -> '76' | ||
renavam.dv('950598459') // -> '76' | ||
``` | ||
### isTitulo( `value` ) | ||
### isTituloEleitor( `value` ) | ||
@@ -307,23 +307,23 @@ Valida um título eleitoral | ||
// Importação somente da validação | ||
import { isTitulo } from 'validation-br'; | ||
import { isTituloEleitor } from 'validation-br' | ||
// ou | ||
// Importação do submódulo | ||
import titulo from 'validation-br/titulo'; | ||
import titulo from 'validation-br/titulo' | ||
// Valida | ||
isTitulo('743650641660'); //-> true | ||
isTitulo('525028881694'); //-> true | ||
isTitulo('153016161686'); //-> false | ||
titulo.validate('01234567890'); //-> true | ||
titulo.validateOrFail('01234567890'); //-> true | ||
isTituloEleitor('743650641660') //-> true | ||
isTituloEleitor('525028881694') //-> true | ||
isTituloEleitor('153016161686') //-> false | ||
titulo.validate('01234567890') //-> true | ||
titulo.validateOrFail('01234567890') //-> true | ||
// Número fake com e sem máscara | ||
titulo.fake(); // -> 153016161686 | ||
titulo.fake(true); // -> 1530.1616.1686 | ||
titulo.fake() // -> 153016161686 | ||
titulo.fake(true) // -> 1530.1616.1686 | ||
// Aplica uma máscara | ||
titulo.mask('525028881694'); // -> 5250.2888.1694 | ||
titulo.mask('525028881694') // -> 5250.2888.1694 | ||
// Calcula o DV | ||
titulo.dv('5250288816'); // -> '94' | ||
titulo.dv('5250288816') // -> '94' | ||
``` | ||
@@ -333,10 +333,12 @@ | ||
![image](https://user-images.githubusercontent.com/100168/148660802-e1d1b6e1-b447-4534-aa92-298849db6f47.png) | ||
![image](https://user-images.githubusercontent.com/100168/148705528-7c810b3c-851a-49c4-bc08-f9631498d526.png) | ||
# Changelog | ||
- **09/01/2022**: | ||
- 1.0.0 - Biblioteca convertida para Typescript e testes convertidos para Jest | ||
- **08/01/2022**: | ||
- 0.21.1 - Adicionadas as funções isRenavam e isJudicialProcess | ||
- **16/09/2021**: | ||
- 0.5.0 - Adicionadas as funções isCPF, isCNPJ e isTitulo | ||
- 0.5.0 - Adicionadas as funções isCPF, isCNPJ e isTituloEleitor | ||
- 0.7.0 - Adicionadas as funções isPostalCode e isCNH | ||
@@ -343,0 +345,0 @@ - 0.8.0 - Adicionada a função isPIS |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
224998
90
4778
343
19
1
2
1