@odg/eslint-config 2.0.4 → 3.0.1
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.
- package/README.md +451 -22
- package/index.mjs +463 -0
- package/package.json +37 -32
- package/rules/any/base.mjs +15 -0
- package/rules/global/base.mjs +409 -0
- package/rules/global/{errors.js → errors.mjs} +27 -18
- package/rules/global/possible-errors.mjs +85 -0
- package/rules/global/security.mjs +82 -0
- package/rules/ini/{base.js → base.mjs} +26 -15
- package/rules/javascript/{best-practices.js → best-practices.mjs} +124 -217
- package/rules/javascript/errors.mjs +6 -0
- package/rules/javascript/{js-documentation.js → js-documentation.mjs} +28 -13
- package/rules/javascript/performance.mjs +9 -0
- package/rules/json/base.mjs +60 -0
- package/rules/typescript/{best-practices.js → best-practices.mjs} +60 -180
- package/rules/typescript/{errors.js → errors.mjs} +17 -10
- package/rules/typescript/{possible-errors.js → possible-errors.mjs} +15 -10
- package/rules/typescript/{security.js → security.mjs} +1 -1
- package/rules/typescript/tests.mjs +31 -0
- package/rules/yaml/{base.js → base.mjs} +11 -8
- package/rules/yaml/{github.js → github.mjs} +1 -1
- package/index.js +0 -376
- package/rules/any/base.js +0 -11
- package/rules/global/base.js +0 -148
- package/rules/global/possible-errors.js +0 -74
- package/rules/global/security.js +0 -77
- package/rules/javascript/errors.js +0 -6
- package/rules/javascript/performance.js +0 -6
- package/rules/json/base.js +0 -27
- package/rules/typescript/tests.js +0 -16
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
rules: {
|
|
3
|
+
"no-eval": [ "error" ], // Não permite usar eval
|
|
4
|
+
"no-implied-eval": [ "error" ], // Bloqueia eval implícito
|
|
5
|
+
"security/detect-unsafe-regex": [ "error" ], // Bloqueia Algumas regex que podem gerar Falhas Segurança
|
|
6
|
+
"security/detect-buffer-noassert": [ "error" ], // Buffer sem noAssert não são permitidos
|
|
7
|
+
"security/detect-child-process": [ "error" ], // Não use exec ProcessChild
|
|
8
|
+
"security/detect-disable-mustache-escape": [ "error" ], // Não use object.escapeMarkup = false
|
|
9
|
+
"security/detect-no-csrf-before-method-override": [ "error" ], // Valida CSRF antes override express
|
|
10
|
+
"security/detect-non-literal-fs-filename": [ "error" ],
|
|
11
|
+
"security/detect-pseudoRandomBytes": [ "error" ], // Não use pseudo Random
|
|
12
|
+
"unicorn/no-document-cookie": [ "error" ], // Não setCookie pelo document.cookie
|
|
13
|
+
"security/detect-eval-with-expression": [ "error" ], // Não permite eval com expressões
|
|
14
|
+
"security/detect-new-buffer": [ "error" ], // Bloqueia New Buffer
|
|
15
|
+
"security/detect-non-literal-regexp": [ "error" ], // Regex Protect
|
|
16
|
+
"security/detect-non-literal-require": [ "error" ], // Require Protect
|
|
17
|
+
"security/detect-possible-timing-attacks": [ "error" ], // Previne Tokens no código
|
|
18
|
+
"security/detect-bidi-characters": [ "error" ], // Anti Trojan code program
|
|
19
|
+
"import/no-dynamic-require": [ "error", { "esmodule": true } ], // Sem import dinâmicos
|
|
20
|
+
"no-prototype-builtins": [ "error" ], // Object.prototype.hasOwnProperty.call no lugar obj.hasOwnProperty
|
|
21
|
+
"sonarjs/aws-apigateway-public-api": [ "error" ], // Bloqueia API Gateway público
|
|
22
|
+
"sonarjs/aws-ec2-rds-dms-public": [ "error" ], // Bloqueia rds public
|
|
23
|
+
"sonarjs/aws-ec2-unencrypted-ebs-volume": [ "error" ], // Segurança aws
|
|
24
|
+
"sonarjs/aws-efs-unencrypted": [ "error" ], // Segurança aws
|
|
25
|
+
"sonarjs/aws-iam-all-privileges": [ "error" ], // Segurança aws
|
|
26
|
+
"sonarjs/aws-iam-privilege-escalation": [ "error" ], // Segurança aws
|
|
27
|
+
"sonarjs/aws-iam-public-access": [ "error" ], // Segurança aws
|
|
28
|
+
"sonarjs/aws-opensearchservice-domain": [ "error" ], // Segurança aws
|
|
29
|
+
"sonarjs/aws-rds-unencrypted-databases": [ "error" ], // Segurança aws
|
|
30
|
+
"sonarjs/aws-restricted-ip-admin-access": [ "error" ], // Segurança aws
|
|
31
|
+
"sonarjs/aws-s3-bucket-granted-access": [ "error" ], // Segurança aws
|
|
32
|
+
"sonarjs/aws-s3-bucket-insecure-http": [ "error" ], // Segurança aws
|
|
33
|
+
"sonarjs/aws-s3-bucket-public-access": [ "error" ], // Segurança aws
|
|
34
|
+
"sonarjs/aws-s3-bucket-versioning": [ "error" ], // Segurança aws
|
|
35
|
+
"sonarjs/aws-sagemaker-unencrypted-notebook": [ "error" ], // Segurança aws
|
|
36
|
+
"sonarjs/aws-sns-unencrypted-topics": [ "error" ], // Segurança aws
|
|
37
|
+
"sonarjs/aws-sqs-unencrypted-queue": [ "error" ], // Segurança aws
|
|
38
|
+
"sonarjs/content-length": [ "error" ], // Request body limit
|
|
39
|
+
"sonarjs/content-security-policy": [ "error" ], // Dado seguro express
|
|
40
|
+
"sonarjs/cookie-no-httponly": [ "error" ], // Use cookies http Only
|
|
41
|
+
"sonarjs/cors": [ "error" ], // Configure cors de maneira segura
|
|
42
|
+
"sonarjs/csrf": [ "error" ], // Configure CSRF seguro
|
|
43
|
+
"sonarjs/disabled-auto-escaping": [ "error" ], // Não desligue scaping de html por segurança
|
|
44
|
+
"sonarjs/disabled-resource-integrity": [ "error" ], // Verifique integridade script
|
|
45
|
+
// "sonarjs/dynamically-constructed-templates": [ "error" ], // Templates dinâmicos são inseguros com pug lib
|
|
46
|
+
"sonarjs/encryption-secure-mode": [ "error" ], // Crypto de forma segura
|
|
47
|
+
"sonarjs/file-permissions": [ "error" ], // Crie arquivos com perm segura
|
|
48
|
+
"sonarjs/file-uploads": [ "error" ], // Upload arquivos seguro
|
|
49
|
+
"sonarjs/frame-ancestors": [ "error" ], // Frame ancestors police
|
|
50
|
+
// "sonarjs/hardcoded-secret-signatures": [ "error" ], // Poe senha no código nao mano
|
|
51
|
+
"sonarjs/hashing": [ "error" ], // Crie hash seguros
|
|
52
|
+
"sonarjs/hidden-files": [ "error" ], // Server arquivos statics n deve deixar listagem publica
|
|
53
|
+
"sonarjs/insecure-cookie": [ "error" ], // Cookies security = true
|
|
54
|
+
"sonarjs/insecure-jwt-token": [ "error" ], // JWT de forma segura
|
|
55
|
+
"sonarjs/link-with-target-blank": [ "error" ], // Abrir uma nova janela use parameters seguros
|
|
56
|
+
"sonarjs/no-clear-text-protocols": [ "error" ], // Diversos protocolos seguros
|
|
57
|
+
"sonarjs/no-hardcoded-ip": [ "error" ], // Não coloque ip dentro do código
|
|
58
|
+
"sonarjs/no-hardcoded-passwords": [ "error" ], // Não coloque senha dentro do código
|
|
59
|
+
"sonarjs/no-hardcoded-secrets": [ "error" ], // Não coloque token dentro do código
|
|
60
|
+
"sonarjs/no-mime-sniff": [ "error" ], // Segurança sniff mime
|
|
61
|
+
"sonarjs/no-mixed-content": [ "error" ], // Mixed-content is security-sensitive
|
|
62
|
+
"sonarjs/no-os-command-from-path": [ "error" ], // Execute arquivo com caminho completo
|
|
63
|
+
"sonarjs/no-reference-error": [ "error" ], // Referer security
|
|
64
|
+
"sonarjs/no-unsafe-unzip": [ "error" ], // Faça unzip de forma segura
|
|
65
|
+
"sonarjs/no-weak-cipher": [ "error" ], // Crypto seguro
|
|
66
|
+
"sonarjs/no-weak-keys": [ "error" ], // Crypto seguro
|
|
67
|
+
"sonarjs/os-command": [ "error" ], // Comandos Exec seguro
|
|
68
|
+
"sonarjs/post-message": [ "error" ], // Mensagens iframe seguras
|
|
69
|
+
"sonarjs/production-debug": [ "error" ], // Error handler apenas no dev
|
|
70
|
+
"sonarjs/pseudo-random": [ "error" ], // Não use Math.random
|
|
71
|
+
"sonarjs/publicly-writable-directories": [ "error" ], // Use temp of node
|
|
72
|
+
// "sonarjs/review-blockchain-mnemonic": [ "error" ], // Não coloca token no código
|
|
73
|
+
"sonarjs/session-regeneration": [ "error" ], // Renovar sessão de login
|
|
74
|
+
"sonarjs/sql-queries": [ "error" ], // Não Concatene SQL
|
|
75
|
+
"sonarjs/strict-transport-security": [ "error" ], // Segurança em H-STS
|
|
76
|
+
"sonarjs/unverified-certificate": [ "error" ], // Validar certificado SSL
|
|
77
|
+
"sonarjs/unverified-hostname": [ "error" ], // Validar host SSL
|
|
78
|
+
"sonarjs/weak-ssl": [ "error" ], // Validar fraco SSL
|
|
79
|
+
"sonarjs/x-powered-by": [ "error" ], // Oculta info do node
|
|
80
|
+
"sonarjs/xml-parser-xxe": [ "error" ], // Xml proteção de venerabilidade
|
|
81
|
+
},
|
|
82
|
+
};
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
export default {
|
|
2
2
|
rules: {
|
|
3
3
|
"filenames/match-regex": [ "off" ],
|
|
4
|
-
"max-len": [
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
"@stylistic/max-len": [
|
|
5
|
+
"warn",
|
|
6
|
+
{
|
|
7
|
+
code: 120,
|
|
8
|
+
ignoreUrls: true,
|
|
9
|
+
ignoreStrings: true,
|
|
10
|
+
ignoreTemplateLiterals: true,
|
|
11
|
+
ignoreRegExpLiterals: true,
|
|
12
|
+
},
|
|
13
|
+
], // Caracteres máximo por linhas
|
|
10
14
|
"toml/indent": [ "error" ], // Indent
|
|
11
15
|
"toml/keys-order": [ "error" ], // Indent
|
|
12
16
|
"toml/no-non-decimal-integer": [ "error" ], // No decimal int
|
|
@@ -24,13 +28,20 @@ module.exports = {
|
|
|
24
28
|
"toml/array-element-newline": [ "error", "consistent" ], // Array multipla linhas
|
|
25
29
|
"toml/comma-style": [ "error" ], // Virgula a direita
|
|
26
30
|
"toml/spaced-comment": [ "error" ], // Espaço a esquerda comentário
|
|
27
|
-
"toml/inline-table-curly-spacing": [
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
"toml/inline-table-curly-spacing": [
|
|
32
|
+
"error",
|
|
33
|
+
"always",
|
|
34
|
+
{
|
|
35
|
+
arraysInObjects: true,
|
|
36
|
+
objectsInObjects: true,
|
|
37
|
+
},
|
|
38
|
+
], // Espaço em declarar {}
|
|
39
|
+
"toml/key-spacing": [
|
|
40
|
+
"error",
|
|
41
|
+
{
|
|
42
|
+
beforeEqual: false,
|
|
43
|
+
afterEqual: false,
|
|
44
|
+
},
|
|
45
|
+
], // Sem espaço antes de depois do igual
|
|
35
46
|
},
|
|
36
47
|
};
|