@j3r3mcdev/scoring 1.0.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.
Files changed (72) hide show
  1. package/.github/workflows/ci.yml +29 -0
  2. package/.github/workflows/publish.yml +34 -0
  3. package/LICENSE +21 -0
  4. package/README.md +175 -0
  5. package/jest.config.js +11 -0
  6. package/package.json +29 -0
  7. package/src/core/__tests__/scoring-context.test.ts +47 -0
  8. package/src/core/__tests__/scoring-engine.test.ts +110 -0
  9. package/src/core/__tests__/scoring-result.test.ts +14 -0
  10. package/src/core/index.ts +8 -0
  11. package/src/core/scoring-context.ts +80 -0
  12. package/src/core/scoring-engine.ts +126 -0
  13. package/src/core/scoring-result.ts +15 -0
  14. package/src/core/scoring-types.ts +125 -0
  15. package/src/correlation/__tests__/chain-detector.test.ts +76 -0
  16. package/src/correlation/__tests__/correlator.test.ts +49 -0
  17. package/src/correlation/__tests__/event-grouper.test.ts +62 -0
  18. package/src/correlation/chain-detector.ts +99 -0
  19. package/src/correlation/correlator.ts +39 -0
  20. package/src/correlation/event-grouper.ts +47 -0
  21. package/src/correlation/index.ts +3 -0
  22. package/src/index.ts +21 -0
  23. package/src/normalizers/__tests__/dns.normalizer.test.ts +40 -0
  24. package/src/normalizers/__tests__/http.normalizer.test.ts +55 -0
  25. package/src/normalizers/__tests__/normalizer-registry.test.ts +89 -0
  26. package/src/normalizers/__tests__/waf.normalizer.test.ts +45 -0
  27. package/src/normalizers/dns.normalizer.ts +28 -0
  28. package/src/normalizers/http.normalizer.ts +53 -0
  29. package/src/normalizers/index.ts +34 -0
  30. package/src/normalizers/waf.normalizer.ts +39 -0
  31. package/src/reporters/__tests__/html-reporter.test.ts +51 -0
  32. package/src/reporters/__tests__/json-reporter.test.ts +50 -0
  33. package/src/reporters/__tests__/markdown-reporter.test.ts +75 -0
  34. package/src/reporters/__tests__/reporter-factory.test.ts +25 -0
  35. package/src/reporters/__tests__/reporters-integration.test.ts +46 -0
  36. package/src/reporters/base/BaseReporter.ts +56 -0
  37. package/src/reporters/base/ReporterTypes.ts +21 -0
  38. package/src/reporters/html/HTMLReporter.ts +240 -0
  39. package/src/reporters/index.ts +0 -0
  40. package/src/reporters/json/JSONReporter.ts +98 -0
  41. package/src/reporters/markdown/MarkdownReporter.ts +157 -0
  42. package/src/reporters/reporter-factory.ts +29 -0
  43. package/src/rules/__tests__/dns.rule.test.ts +42 -0
  44. package/src/rules/__tests__/http.rule.test.ts +46 -0
  45. package/src/rules/__tests__/lfi.rule.test.ts +42 -0
  46. package/src/rules/__tests__/path-traversal.rule.test.ts +42 -0
  47. package/src/rules/__tests__/rce.rule.test.ts +42 -0
  48. package/src/rules/__tests__/rule-registry.test.ts +40 -0
  49. package/src/rules/__tests__/ssrf.rule.test.ts +42 -0
  50. package/src/rules/__tests__/waf.rule.test.ts +40 -0
  51. package/src/rules/base-rule.ts +43 -0
  52. package/src/rules/dns.rules.ts +50 -0
  53. package/src/rules/http.rules.ts +72 -0
  54. package/src/rules/index.ts +35 -0
  55. package/src/rules/lfi.rule.ts +76 -0
  56. package/src/rules/path-transversal.rule.ts +65 -0
  57. package/src/rules/rce.rules.ts +73 -0
  58. package/src/rules/rule-registry.ts +39 -0
  59. package/src/rules/sqli.rules.ts +69 -0
  60. package/src/rules/ssrf.rules.ts +76 -0
  61. package/src/rules/waf.rules.ts +62 -0
  62. package/src/rules/xss.rules.ts +66 -0
  63. package/src/utils/chain-utils.ts +73 -0
  64. package/src/utils/date-utils.ts +80 -0
  65. package/src/utils/finding-utils.ts +97 -0
  66. package/src/utils/index.ts +6 -0
  67. package/src/utils/report-utils.ts +118 -0
  68. package/src/utils/score-utils.ts +103 -0
  69. package/src/utils/string-utils.ts +54 -0
  70. package/src.txt +0 -0
  71. package/tests/scoring-engine.test.ts +7 -0
  72. package/tsconfig.json +18 -0
@@ -0,0 +1,54 @@
1
+ /**
2
+ * ─────────────────────────────────────────────────────────────
3
+ * STRING UTILS — Outils génériques pour les reporters
4
+ * Version PRO, minimaliste et utile
5
+ * ─────────────────────────────────────────────────────────────
6
+ */
7
+
8
+ /**
9
+ * Met une majuscule au début d'une chaîne.
10
+ */
11
+ export function capitalize(str: string): string {
12
+ if (!str) return "";
13
+ return str.charAt(0).toUpperCase() + str.slice(1);
14
+ }
15
+
16
+ /**
17
+ * Tronque une chaîne avec "…" si elle dépasse une longueur donnée.
18
+ */
19
+ export function truncate(str: string, max: number): string {
20
+ if (!str) return "";
21
+ return str.length > max ? str.slice(0, max - 1) + "…" : str;
22
+ }
23
+
24
+ /**
25
+ * Indente chaque ligne d'un texte.
26
+ */
27
+ export function indent(text: string, spaces = 2): string {
28
+ const pad = " ".repeat(spaces);
29
+ return text
30
+ .split("\n")
31
+ .map((line) => pad + line)
32
+ .join("\n");
33
+ }
34
+
35
+ /**
36
+ * Supprime les caractères ANSI (utile pour les exports Markdown/HTML).
37
+ */
38
+ const ANSI_REGEX = /\u001b\[[0-9]{1,3}(;[0-9]{1,3})*m/g;
39
+
40
+ export function stripAnsi(str: string): string {
41
+ return str.replace(ANSI_REGEX, "");
42
+ }
43
+
44
+
45
+ /**
46
+ * JSON safe (évite les erreurs sur les objets circulaires).
47
+ */
48
+ export function safeJson(value: any, space = 2): string {
49
+ try {
50
+ return JSON.stringify(value, null, space);
51
+ } catch {
52
+ return `"[[unserializable]]"`;
53
+ }
54
+ }
package/src.txt ADDED
Binary file
@@ -0,0 +1,7 @@
1
+ import { describe, it, expect } from "@jest/globals";
2
+
3
+ describe("scoring engine", () => {
4
+ it("placeholder test", () => {
5
+ expect(true).toBe(true);
6
+ });
7
+ });
package/tsconfig.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "CommonJS",
5
+ "rootDir": "./src",
6
+ "outDir": "./dist",
7
+
8
+ "declaration": true,
9
+ "sourceMap": true,
10
+ "strict": true,
11
+ "esModuleInterop": true,
12
+ "skipLibCheck": true,
13
+
14
+ "types": ["node", "jest"]
15
+ },
16
+ "include": ["src"],
17
+ "exclude": ["dist", "node_modules"]
18
+ }