beddel 0.1.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 (236) hide show
  1. package/README.md +297 -0
  2. package/dist/agents/agentRegistry.d.ts +68 -0
  3. package/dist/agents/agentRegistry.d.ts.map +1 -0
  4. package/dist/agents/agentRegistry.js +222 -0
  5. package/dist/agents/agentRegistry.js.map +1 -0
  6. package/dist/agents/formatter-agent.d.ts +10 -0
  7. package/dist/agents/formatter-agent.d.ts.map +1 -0
  8. package/dist/agents/formatter-agent.js +49 -0
  9. package/dist/agents/formatter-agent.js.map +1 -0
  10. package/dist/agents/genkit-agent.d.ts +12 -0
  11. package/dist/agents/genkit-agent.d.ts.map +1 -0
  12. package/dist/agents/genkit-agent.js +119 -0
  13. package/dist/agents/genkit-agent.js.map +1 -0
  14. package/dist/agents/i18n-messages.d.ts +17 -0
  15. package/dist/agents/i18n-messages.d.ts.map +1 -0
  16. package/dist/agents/i18n-messages.js +92 -0
  17. package/dist/agents/i18n-messages.js.map +1 -0
  18. package/dist/agents/index.d.ts +10 -0
  19. package/dist/agents/index.d.ts.map +1 -0
  20. package/dist/agents/index.js +26 -0
  21. package/dist/agents/index.js.map +1 -0
  22. package/dist/agents/pipeline.d.ts +15 -0
  23. package/dist/agents/pipeline.d.ts.map +1 -0
  24. package/dist/agents/pipeline.js +45 -0
  25. package/dist/agents/pipeline.js.map +1 -0
  26. package/dist/agents/schema-factory.d.ts +40 -0
  27. package/dist/agents/schema-factory.d.ts.map +1 -0
  28. package/dist/agents/schema-factory.js +121 -0
  29. package/dist/agents/schema-factory.js.map +1 -0
  30. package/dist/agents/translation-validators.d.ts +26 -0
  31. package/dist/agents/translation-validators.d.ts.map +1 -0
  32. package/dist/agents/translation-validators.js +77 -0
  33. package/dist/agents/translation-validators.js.map +1 -0
  34. package/dist/agents/translator-agents.d.ts +184 -0
  35. package/dist/agents/translator-agents.d.ts.map +1 -0
  36. package/dist/agents/translator-agents.js +613 -0
  37. package/dist/agents/translator-agents.js.map +1 -0
  38. package/dist/agents/types/translation.types.d.ts +100 -0
  39. package/dist/agents/types/translation.types.d.ts.map +1 -0
  40. package/dist/agents/types/translation.types.js +3 -0
  41. package/dist/agents/types/translation.types.js.map +1 -0
  42. package/dist/agents/validator-agent.d.ts +42 -0
  43. package/dist/agents/validator-agent.d.ts.map +1 -0
  44. package/dist/agents/validator-agent.js +122 -0
  45. package/dist/agents/validator-agent.js.map +1 -0
  46. package/dist/audit/auditTrail.d.ts +55 -0
  47. package/dist/audit/auditTrail.d.ts.map +1 -0
  48. package/dist/audit/auditTrail.js +93 -0
  49. package/dist/audit/auditTrail.js.map +1 -0
  50. package/dist/compliance/gdprEngine.d.ts +44 -0
  51. package/dist/compliance/gdprEngine.d.ts.map +1 -0
  52. package/dist/compliance/gdprEngine.js +178 -0
  53. package/dist/compliance/gdprEngine.js.map +1 -0
  54. package/dist/compliance/lgpdEngine.d.ts +51 -0
  55. package/dist/compliance/lgpdEngine.d.ts.map +1 -0
  56. package/dist/compliance/lgpdEngine.js +221 -0
  57. package/dist/compliance/lgpdEngine.js.map +1 -0
  58. package/dist/config.d.ts +78 -0
  59. package/dist/config.d.ts.map +1 -0
  60. package/dist/config.js +77 -0
  61. package/dist/config.js.map +1 -0
  62. package/dist/errors.d.ts +17 -0
  63. package/dist/errors.d.ts.map +1 -0
  64. package/dist/errors.js +40 -0
  65. package/dist/errors.js.map +1 -0
  66. package/dist/firebase/tenantManager.d.ts +84 -0
  67. package/dist/firebase/tenantManager.d.ts.map +1 -0
  68. package/dist/firebase/tenantManager.js +378 -0
  69. package/dist/firebase/tenantManager.js.map +1 -0
  70. package/dist/index.d.ts +36 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +118 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/integration/secure-yaml-runtime.d.ts +68 -0
  75. package/dist/integration/secure-yaml-runtime.d.ts.map +1 -0
  76. package/dist/integration/secure-yaml-runtime.js +245 -0
  77. package/dist/integration/secure-yaml-runtime.js.map +1 -0
  78. package/dist/parser/secure-yaml-parser.d.ts +62 -0
  79. package/dist/parser/secure-yaml-parser.d.ts.map +1 -0
  80. package/dist/parser/secure-yaml-parser.js +234 -0
  81. package/dist/parser/secure-yaml-parser.js.map +1 -0
  82. package/dist/performance/autoscaling.d.ts +100 -0
  83. package/dist/performance/autoscaling.d.ts.map +1 -0
  84. package/dist/performance/autoscaling.js +339 -0
  85. package/dist/performance/autoscaling.js.map +1 -0
  86. package/dist/performance/benchmark.d.ts +104 -0
  87. package/dist/performance/benchmark.d.ts.map +1 -0
  88. package/dist/performance/benchmark.js +514 -0
  89. package/dist/performance/benchmark.js.map +1 -0
  90. package/dist/performance/index.d.ts +14 -0
  91. package/dist/performance/index.d.ts.map +1 -0
  92. package/dist/performance/index.js +35 -0
  93. package/dist/performance/index.js.map +1 -0
  94. package/dist/performance/monitor.d.ts +126 -0
  95. package/dist/performance/monitor.d.ts.map +1 -0
  96. package/dist/performance/monitor.js +324 -0
  97. package/dist/performance/monitor.js.map +1 -0
  98. package/dist/performance/streaming.d.ts +82 -0
  99. package/dist/performance/streaming.d.ts.map +1 -0
  100. package/dist/performance/streaming.js +287 -0
  101. package/dist/performance/streaming.js.map +1 -0
  102. package/dist/runtime/audit.d.ts +240 -0
  103. package/dist/runtime/audit.d.ts.map +1 -0
  104. package/dist/runtime/audit.js +641 -0
  105. package/dist/runtime/audit.js.map +1 -0
  106. package/dist/runtime/declarativeAgentRuntime.d.ts +123 -0
  107. package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -0
  108. package/dist/runtime/declarativeAgentRuntime.js +576 -0
  109. package/dist/runtime/declarativeAgentRuntime.js.map +1 -0
  110. package/dist/runtime/isolatedRuntime.d.ts +119 -0
  111. package/dist/runtime/isolatedRuntime.d.ts.map +1 -0
  112. package/dist/runtime/isolatedRuntime.js +425 -0
  113. package/dist/runtime/isolatedRuntime.js.map +1 -0
  114. package/dist/runtime/schemaCompiler.d.ts +35 -0
  115. package/dist/runtime/schemaCompiler.d.ts.map +1 -0
  116. package/dist/runtime/schemaCompiler.js +151 -0
  117. package/dist/runtime/schemaCompiler.js.map +1 -0
  118. package/dist/runtime/simpleRuntime.d.ts +57 -0
  119. package/dist/runtime/simpleRuntime.d.ts.map +1 -0
  120. package/dist/runtime/simpleRuntime.js +187 -0
  121. package/dist/runtime/simpleRuntime.js.map +1 -0
  122. package/dist/security/dashboard.d.ts +89 -0
  123. package/dist/security/dashboard.d.ts.map +1 -0
  124. package/dist/security/dashboard.js +300 -0
  125. package/dist/security/dashboard.js.map +1 -0
  126. package/dist/security/hardening.d.ts +130 -0
  127. package/dist/security/hardening.d.ts.map +1 -0
  128. package/dist/security/hardening.js +414 -0
  129. package/dist/security/hardening.js.map +1 -0
  130. package/dist/security/index.d.ts +128 -0
  131. package/dist/security/index.d.ts.map +1 -0
  132. package/dist/security/index.js +353 -0
  133. package/dist/security/index.js.map +1 -0
  134. package/dist/security/monitor.d.ts +88 -0
  135. package/dist/security/monitor.d.ts.map +1 -0
  136. package/dist/security/monitor.js +356 -0
  137. package/dist/security/monitor.js.map +1 -0
  138. package/dist/security/scanner.d.ts +104 -0
  139. package/dist/security/scanner.d.ts.map +1 -0
  140. package/dist/security/scanner.js +298 -0
  141. package/dist/security/scanner.js.map +1 -0
  142. package/dist/security/score.d.ts +150 -0
  143. package/dist/security/score.d.ts.map +1 -0
  144. package/dist/security/score.js +983 -0
  145. package/dist/security/score.js.map +1 -0
  146. package/dist/security/test-security.d.ts +22 -0
  147. package/dist/security/test-security.d.ts.map +1 -0
  148. package/dist/security/test-security.js +154 -0
  149. package/dist/security/test-security.js.map +1 -0
  150. package/dist/security/threatDetector.d.ts +39 -0
  151. package/dist/security/threatDetector.d.ts.map +1 -0
  152. package/dist/security/threatDetector.js +354 -0
  153. package/dist/security/threatDetector.js.map +1 -0
  154. package/dist/security/validation.d.ts +69 -0
  155. package/dist/security/validation.d.ts.map +1 -0
  156. package/dist/security/validation.js +286 -0
  157. package/dist/security/validation.js.map +1 -0
  158. package/dist/server/api/clientsRoute.d.ts +9 -0
  159. package/dist/server/api/clientsRoute.d.ts.map +1 -0
  160. package/dist/server/api/clientsRoute.js +71 -0
  161. package/dist/server/api/clientsRoute.js.map +1 -0
  162. package/dist/server/api/endpointsRoute.d.ts +8 -0
  163. package/dist/server/api/endpointsRoute.d.ts.map +1 -0
  164. package/dist/server/api/endpointsRoute.js +76 -0
  165. package/dist/server/api/endpointsRoute.js.map +1 -0
  166. package/dist/server/api/graphql.d.ts +9 -0
  167. package/dist/server/api/graphql.d.ts.map +1 -0
  168. package/dist/server/api/graphql.js +180 -0
  169. package/dist/server/api/graphql.js.map +1 -0
  170. package/dist/server/errors.d.ts +19 -0
  171. package/dist/server/errors.d.ts.map +1 -0
  172. package/dist/server/errors.js +42 -0
  173. package/dist/server/errors.js.map +1 -0
  174. package/dist/server/index.d.ts +7 -0
  175. package/dist/server/index.d.ts.map +1 -0
  176. package/dist/server/index.js +24 -0
  177. package/dist/server/index.js.map +1 -0
  178. package/dist/server/kvStore.d.ts +27 -0
  179. package/dist/server/kvStore.d.ts.map +1 -0
  180. package/dist/server/kvStore.js +128 -0
  181. package/dist/server/kvStore.js.map +1 -0
  182. package/dist/server/runtimeSecurity.d.ts +28 -0
  183. package/dist/server/runtimeSecurity.d.ts.map +1 -0
  184. package/dist/server/runtimeSecurity.js +85 -0
  185. package/dist/server/runtimeSecurity.js.map +1 -0
  186. package/dist/server/types.d.ts +53 -0
  187. package/dist/server/types.d.ts.map +1 -0
  188. package/dist/server/types.js +8 -0
  189. package/dist/server/types.js.map +1 -0
  190. package/dist/types/executionContext.d.ts +16 -0
  191. package/dist/types/executionContext.d.ts.map +1 -0
  192. package/dist/types/executionContext.js +3 -0
  193. package/dist/types/executionContext.js.map +1 -0
  194. package/package.json +77 -0
  195. package/src/agents/agentRegistry.ts +272 -0
  196. package/src/agents/image-agent.yaml +86 -0
  197. package/src/agents/joker-agent.yaml +47 -0
  198. package/src/agents/translator-agent.yaml +80 -0
  199. package/src/audit/auditTrail.ts +134 -0
  200. package/src/compliance/gdprEngine.ts +209 -0
  201. package/src/compliance/lgpdEngine.ts +268 -0
  202. package/src/config.ts +179 -0
  203. package/src/errors.ts +35 -0
  204. package/src/firebase/tenantManager.ts +443 -0
  205. package/src/index.ts +125 -0
  206. package/src/integration/secure-yaml-runtime.ts +341 -0
  207. package/src/parser/secure-yaml-parser.ts +273 -0
  208. package/src/performance/autoscaling.ts +495 -0
  209. package/src/performance/benchmark.ts +644 -0
  210. package/src/performance/index.ts +34 -0
  211. package/src/performance/monitor.ts +469 -0
  212. package/src/performance/streaming.ts +317 -0
  213. package/src/runtime/audit.ts +907 -0
  214. package/src/runtime/declarativeAgentRuntime.ts +836 -0
  215. package/src/runtime/isolatedRuntime.ts +572 -0
  216. package/src/runtime/schemaCompiler.ts +228 -0
  217. package/src/runtime/simpleRuntime.ts +201 -0
  218. package/src/security/dashboard.ts +462 -0
  219. package/src/security/hardening.ts +560 -0
  220. package/src/security/index.ts +439 -0
  221. package/src/security/monitor.ts +490 -0
  222. package/src/security/scanner.ts +368 -0
  223. package/src/security/score.ts +1138 -0
  224. package/src/security/threatDetector.ts +481 -0
  225. package/src/security/validation.ts +365 -0
  226. package/src/server/api/clientsRoute.ts +92 -0
  227. package/src/server/api/endpointsRoute.ts +97 -0
  228. package/src/server/api/graphql.ts +249 -0
  229. package/src/server/errors.ts +38 -0
  230. package/src/server/index.ts +6 -0
  231. package/src/server/kvStore.ts +152 -0
  232. package/src/server/runtimeSecurity.ts +102 -0
  233. package/src/server/types.ts +60 -0
  234. package/src/types/executionContext.ts +16 -0
  235. package/tools/seed.ts +365 -0
  236. package/tools/test-endpoints.ts +174 -0
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+ /**
3
+ * Security scanner for YAML parsing
4
+ * Comprehensive vulnerability detection and security analysis
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SecurityScanner = void 0;
8
+ exports.quickSecurityScan = quickSecurityScan;
9
+ exports.validateSecurityBasic = validateSecurityBasic;
10
+ const score_1 = require("./score");
11
+ const validation_1 = require("./validation");
12
+ const hardening_1 = require("./hardening");
13
+ class SecurityScanner {
14
+ constructor() {
15
+ this.scanHistory = [];
16
+ this.validator = new validation_1.SecurityValidator();
17
+ this.hardening = (0, hardening_1.createSecurityHardening)();
18
+ }
19
+ /**
20
+ * Executa scanning completo de segurança
21
+ */
22
+ async scan(obj) {
23
+ const startTime = Date.now();
24
+ // Validação de segurança básica
25
+ const validationResult = this.validator.validateObject(obj);
26
+ // Cálculo de score de segurança
27
+ const securityScore = (0, score_1.calculateSecurityScore)(obj);
28
+ // Aplica hardening e detecção
29
+ const hardeningResult = this.hardening.harden(obj);
30
+ // Verifica se é seguro
31
+ const isSecure = validationResult.valid && hardeningResult.secure && securityScore.score >= 60;
32
+ // Monta resultado final
33
+ const result = {
34
+ secure: isSecure,
35
+ score: securityScore.score,
36
+ grade: securityScore.grade,
37
+ vulnerabilities: securityScore.vulnerabilities,
38
+ warnings: this.extractWarnings(validationResult, securityScore),
39
+ recommendations: securityScore.recommendations,
40
+ details: {
41
+ timestamp: Date.now(),
42
+ objectId: this.generateObjectId(obj),
43
+ size: this.estimateObjectSize(obj),
44
+ depth: this.calculateMaxDepth(obj),
45
+ complexity: this.estimateComplexity(obj),
46
+ riskLevel: securityScore.riskLevel,
47
+ scanDuration: Date.now() - startTime
48
+ }
49
+ };
50
+ // Adiciona ao histórico
51
+ this.scanHistory.push(result);
52
+ // Mantém apenas os últimos 50 scans
53
+ if (this.scanHistory.length > 50) {
54
+ this.scanHistory = this.scanHistory.slice(-50);
55
+ }
56
+ return result;
57
+ }
58
+ /**
59
+ * Rápida validação de segurança
60
+ */
61
+ quickValidate(obj) {
62
+ const result = this.validator.validateObject(obj);
63
+ return {
64
+ isValid: result.valid,
65
+ warnings: result.warnings.length,
66
+ errors: result.errors.length
67
+ };
68
+ }
69
+ /**
70
+ * Análise aprofundada de risco
71
+ */
72
+ analyzeRisk(obj) {
73
+ const securityScore = (0, score_1.calculateSecurityScore)(obj);
74
+ const riskFactors = [];
75
+ if (securityScore.score < 70) {
76
+ riskFactors.push('Low security score');
77
+ }
78
+ if (securityScore.vulnerabilities.length > 0) {
79
+ riskFactors.push('Active vulnerabilities detected');
80
+ }
81
+ if (securityScore.vulnerabilities.some(v => v.severity === 'high' || v.severity === 'critical')) {
82
+ riskFactors.push('High/critical severity vulnerabilities');
83
+ }
84
+ const validation = this.validator.validateObject(obj);
85
+ if (!validation.valid) {
86
+ riskFactors.push('Security validation failures');
87
+ }
88
+ if (validation.stats.maxDepth > 500) {
89
+ riskFactors.push('Deep object nesting detected');
90
+ }
91
+ if (validation.stats.totalKeys > 10000) {
92
+ riskFactors.push('Large object size');
93
+ }
94
+ return {
95
+ riskLevel: securityScore.riskLevel,
96
+ factors: riskFactors,
97
+ score: securityScore.score
98
+ };
99
+ }
100
+ /**
101
+ * Gera relatório de segurança
102
+ */
103
+ generateReport(obj) {
104
+ const securityScore = (0, score_1.calculateSecurityScore)(obj);
105
+ let report = '=== SECURITY SCAN REPORT ===\n\n';
106
+ report += `✅ Status: ${securityScore.score >= 60 ? 'SECURE' : 'INSECURE'}\n`;
107
+ report += `📊 Score: ${securityScore.score}/100 (${securityScore.grade})\n`;
108
+ report += `🎯 Risk Level: ${securityScore.riskLevel}\n`;
109
+ report += `📦 Object Size: ${this.formatBytes(this.estimateObjectSize(obj))}\n`;
110
+ report += `📐 Max Depth: ${this.calculateMaxDepth(obj)}\n\n`;
111
+ if (securityScore.vulnerabilities.length > 0) {
112
+ report += '🔴 VULNERABILITIES DETECTED:\n';
113
+ securityScore.vulnerabilities.forEach(vuln => {
114
+ report += ` • [${vuln.severity.toUpperCase()}] ${vuln.type}: ${vuln.description}\n`;
115
+ report += ` Path: ${vuln.path}\n`;
116
+ report += ` CWE: ${vuln.cweId}\n`;
117
+ report += ` Fix: ${vuln.remediation}\n\n`;
118
+ });
119
+ }
120
+ if (securityScore.recommendations.length > 0) {
121
+ report += '💡 RECOMMENDATIONS:\n';
122
+ securityScore.recommendations.forEach(rec => {
123
+ report += ` • ${rec}\n`;
124
+ });
125
+ report += '\n';
126
+ }
127
+ const stats = this.validator.validateObject(obj).stats;
128
+ report += '📈 STATISTICS:\n';
129
+ report += ` • Total Keys: ${stats.totalKeys}\n`;
130
+ report += ` • Max Value Length: ${stats.maxValueLength} bytes\n`;
131
+ report += ` • Data Types: ${Object.entries(stats.dataTypes)
132
+ .map(([type, count]) => `${type}: ${count}`)
133
+ .join(', ')}\n`;
134
+ report += `\n🎯 Confidence: ${securityScore.confidence}%\n`;
135
+ return report;
136
+ }
137
+ /**
138
+ * Estatísticas do histórico de scans
139
+ */
140
+ getScanHistory() {
141
+ if (this.scanHistory.length === 0) {
142
+ return {
143
+ totalScans: 0,
144
+ averageScore: 0,
145
+ secureScans: 0,
146
+ insecureScans: 0,
147
+ averageRiskLevel: 'UNKNOWN'
148
+ };
149
+ }
150
+ const totalScans = this.scanHistory.length;
151
+ const secureScans = this.scanHistory.filter(s => s.secure).length;
152
+ const averageScore = this.scanHistory.reduce((sum, s) => sum + s.score, 0) / totalScans;
153
+ // Calcula risco médio
154
+ const riskOrder = ['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'];
155
+ const riskScores = this.scanHistory.map(s => riskOrder.indexOf(s.details.riskLevel));
156
+ const avgRiskIndex = Math.round(riskScores.reduce((a, b) => a + b) / totalScans);
157
+ const averageRiskLevel = riskOrder[Math.min(avgRiskIndex, riskOrder.length - 1)];
158
+ return {
159
+ totalScans,
160
+ averageScore: Math.round(averageScore),
161
+ secureScans,
162
+ insecureScans: totalScans - secureScans,
163
+ averageRiskLevel
164
+ };
165
+ }
166
+ /**
167
+ * Extrai warnings dos resultados
168
+ */
169
+ extractWarnings(validationResult, securityScore) {
170
+ const warnings = [];
171
+ // Warnings da validação
172
+ validationResult.warnings?.forEach((warning) => {
173
+ warnings.push(`${warning.path}: ${warning.message}`);
174
+ });
175
+ // Warnings do score de segurança
176
+ if (securityScore.score < 80) {
177
+ warnings.push(`Low security score: ${securityScore.score}/100`);
178
+ }
179
+ if (securityScore.vulnerabilities.length > 0) {
180
+ warnings.push(`${securityScore.vulnerabilities.length} vulnerabilities detected`);
181
+ }
182
+ return warnings;
183
+ }
184
+ /**
185
+ * Estima tamanho do objeto
186
+ */
187
+ estimateObjectSize(obj) {
188
+ try {
189
+ return JSON.stringify(obj).length * 2; // UTF-16 chars
190
+ }
191
+ catch {
192
+ return 0;
193
+ }
194
+ }
195
+ /**
196
+ * Calcula profundidade máxima
197
+ */
198
+ calculateMaxDepth(obj) {
199
+ const calculateDepth = (current, depth = 0) => {
200
+ if (typeof current !== 'object' || current === null) {
201
+ return depth;
202
+ }
203
+ let maxDepth = depth;
204
+ for (const value of Object.values(current)) {
205
+ maxDepth = Math.max(maxDepth, calculateDepth(value, depth + 1));
206
+ }
207
+ return maxDepth;
208
+ };
209
+ return calculateDepth(obj);
210
+ }
211
+ /**
212
+ * Estima complexidade do objeto
213
+ */
214
+ estimateComplexity(obj) {
215
+ const depth = this.calculateMaxDepth(obj);
216
+ const keys = this.countTotalKeys(obj);
217
+ if (depth > 500 || keys > 5000)
218
+ return 'very_high';
219
+ if (depth > 200 || keys > 1000)
220
+ return 'high';
221
+ if (depth > 100 || keys > 500)
222
+ return 'medium';
223
+ return 'low';
224
+ }
225
+ /**
226
+ * Conta chaves totais
227
+ */
228
+ countTotalKeys(obj) {
229
+ const countKeys = (current) => {
230
+ if (typeof current !== 'object' || current === null) {
231
+ return 0;
232
+ }
233
+ if (Array.isArray(current)) {
234
+ return current.reduce((sum, item) => sum + countKeys(item), 0);
235
+ }
236
+ let total = Object.keys(current).length;
237
+ for (const value of Object.values(current)) {
238
+ total += countKeys(value);
239
+ }
240
+ return total;
241
+ };
242
+ return countKeys(obj);
243
+ }
244
+ /**
245
+ * Gera ID único do objeto
246
+ */
247
+ generateObjectId(obj) {
248
+ try {
249
+ const str = JSON.stringify(obj);
250
+ let hash = 0;
251
+ for (let i = 0; i < str.length; i++) {
252
+ const char = str.charCodeAt(i);
253
+ hash = ((hash << 5) - hash) + char;
254
+ hash = hash & hash; // Converte para inteiro de 32 bits
255
+ }
256
+ return Math.abs(hash).toString(36);
257
+ }
258
+ catch {
259
+ return 'unknown';
260
+ }
261
+ }
262
+ /**
263
+ * Formata bytes
264
+ */
265
+ formatBytes(bytes) {
266
+ if (bytes < 1024)
267
+ return `${bytes}B`;
268
+ if (bytes < 1024 * 1024)
269
+ return `${(bytes / 1024).toFixed(2)}KB`;
270
+ return `${(bytes / (1024 * 1024)).toFixed(2)}MB`;
271
+ }
272
+ /**
273
+ * Reinicializa o scanner
274
+ */
275
+ reset() {
276
+ this.scanHistory = [];
277
+ this.validator = new validation_1.SecurityValidator();
278
+ this.hardening = (0, hardening_1.createSecurityHardening)();
279
+ }
280
+ }
281
+ exports.SecurityScanner = SecurityScanner;
282
+ /**
283
+ * Função auxiliar para realizar scan rápido
284
+ */
285
+ async function quickSecurityScan(obj) {
286
+ const scanner = new SecurityScanner();
287
+ return await scanner.scan(obj);
288
+ }
289
+ /**
290
+ * Função auxiliar para validar segurança básica
291
+ */
292
+ function validateSecurityBasic(obj) {
293
+ const scanner = new SecurityScanner();
294
+ const validator = new validation_1.SecurityValidator();
295
+ const result = validator.validateObject(obj);
296
+ return result.valid;
297
+ }
298
+ //# sourceMappingURL=scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/security/scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Security score calculator for YAML parsing
3
+ */
4
+ declare class SecurityScoreImpl implements SecurityScoreCalculator {
5
+ private vulnerabilities;
6
+ private hardeningFeatures;
7
+ constructor();
8
+ /**
9
+ * Calcula o score de segurança completo
10
+ */
11
+ calculate(obj: any): SecurityScoreResult;
12
+ /**
13
+ * Analisa vulnerabilidades no objeto
14
+ */
15
+ private analyzeVulnerabilities;
16
+ /**
17
+ * Analisa injeção de código
18
+ */
19
+ private analyzeCodeInjection;
20
+ /**
21
+ * Analisa referências circulares
22
+ */
23
+ private analyzeCircularReferences;
24
+ /**
25
+ * Detecta referências circulares recursivamente
26
+ */
27
+ private detectCircularRecursive;
28
+ /**
29
+ * Analisa deep nesting
30
+ */
31
+ private analyzeDeepNesting;
32
+ /**
33
+ * Calcula profundidade máxima
34
+ */
35
+ private calculateMaxDepth;
36
+ /**
37
+ * Analisa vulnerabilidades de tamanho
38
+ */
39
+ private analyzeSizeVulnerabilities;
40
+ /**
41
+ * Calcula tamanho aproximado do objeto em bytes
42
+ */
43
+ private calculateObjectSize;
44
+ /**
45
+ * Analisa conteúdo malicioso
46
+ */
47
+ private analyzeMaliciousContent;
48
+ /**
49
+ * Analisa hardening implementado
50
+ */
51
+ private analyzeHardening;
52
+ /**
53
+ * Adiciona uma vulnerabilidade encontrada
54
+ */
55
+ private addVulnerability;
56
+ /**
57
+ * Adiciona uma feature de hardening
58
+ */
59
+ private addHardeningFeature;
60
+ /**
61
+ * Estima score CVSS baseado na severidade
62
+ */
63
+ private estimateCvssScore;
64
+ /**
65
+ * Calcula o score final de segurança
66
+ */
67
+ private calculateFinalScore;
68
+ /**
69
+ * Calcula impacto de uma vulnerabilidade
70
+ */
71
+ private impactForVulnerability;
72
+ /**
73
+ * Calcula o grau baseado no score
74
+ */
75
+ private calculateGrade;
76
+ /**
77
+ * Calcula a categoria baseada no grau
78
+ */
79
+ private calculateCategory;
80
+ /**
81
+ * Calcula o nível de risco baseado no score
82
+ */
83
+ private calculateRiskLevel;
84
+ /**
85
+ * Obtém recomendações baseadas no score
86
+ */
87
+ getRecommendations(score: number): string[];
88
+ /**
89
+ * Calcula a confiança no resultado
90
+ */
91
+ calculateConfidence(): number;
92
+ /**
93
+ * Calcula score de componente específico
94
+ */
95
+ calculateComponentScore(component: string): number;
96
+ /**
97
+ * Obtém CWE ID para tipos de vulnerabilidade
98
+ */
99
+ private getCweForVulnerability;
100
+ /**
101
+ * Reinicia o estado do calculador
102
+ */
103
+ private resetState;
104
+ }
105
+ export interface SecurityScoreResult {
106
+ score: number;
107
+ grade: SecurityGrade;
108
+ category: SecurityCategory;
109
+ vulnerabilities: SecurityVulnerability[];
110
+ hardeningApplied: HardeningFeature[];
111
+ recommendations: string[];
112
+ riskLevel: RiskLevel;
113
+ confidence: number;
114
+ }
115
+ export type SecurityGrade = 'A' | 'B' | 'C' | 'D' | 'F';
116
+ export type SecurityCategory = 'EXCEPTIONAL' | 'GOOD' | 'ACCEPTABLE' | 'LIMITED' | 'INSECURE';
117
+ export type RiskLevel = 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
118
+ export interface SecurityVulnerability {
119
+ id: string;
120
+ type: VulnerabilityType;
121
+ severity: 'low' | 'medium' | 'high' | 'critical';
122
+ description: string;
123
+ path: string;
124
+ remediation: string;
125
+ cweId?: string;
126
+ cvssScore?: number;
127
+ }
128
+ export interface HardeningFeature {
129
+ name: string;
130
+ status: 'applied' | 'partial' | 'not_applied';
131
+ effectiveness: number;
132
+ description: string;
133
+ }
134
+ export type VulnerabilityType = 'XSS' | 'SQL_INJECTION' | 'CODE_INJECTION' | 'TEMPLATE_INJECTION' | 'PATH_TRAVERSAL' | 'XXE' | 'LDAP_INJECTION' | 'COMMAND_INJECTION' | 'INSECURE_DESERIALIZATION' | 'CIRCULAR_REFERENCE' | 'DEEP_NESTING' | 'OVERSIZED_PAYLOAD' | 'CREDENTIAL_LEAK' | 'PII_EXPOSURE' | 'MALICIOUS_CONTENT';
135
+ export interface SecurityScoreCalculator {
136
+ calculate(obj: any): SecurityScoreResult;
137
+ calculateComponentScore(component: string): number;
138
+ getRecommendations(score: number): string[];
139
+ calculateConfidence(result: SecurityScoreResult): number;
140
+ }
141
+ /**
142
+ * Função auxiliar para calcular segurança
143
+ */
144
+ export declare function calculateSecurityScore(obj: any): SecurityScoreResult;
145
+ /**
146
+ * Função auxiliar para obter recomendações
147
+ */
148
+ export declare function getSecurityRecommendations(score: number): string[];
149
+ export { SecurityScoreImpl as SecurityScore };
150
+ //# sourceMappingURL=score.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../src/security/score.ts"],"names":[],"mappings":"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"}