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.
- package/README.md +297 -0
- package/dist/agents/agentRegistry.d.ts +68 -0
- package/dist/agents/agentRegistry.d.ts.map +1 -0
- package/dist/agents/agentRegistry.js +222 -0
- package/dist/agents/agentRegistry.js.map +1 -0
- package/dist/agents/formatter-agent.d.ts +10 -0
- package/dist/agents/formatter-agent.d.ts.map +1 -0
- package/dist/agents/formatter-agent.js +49 -0
- package/dist/agents/formatter-agent.js.map +1 -0
- package/dist/agents/genkit-agent.d.ts +12 -0
- package/dist/agents/genkit-agent.d.ts.map +1 -0
- package/dist/agents/genkit-agent.js +119 -0
- package/dist/agents/genkit-agent.js.map +1 -0
- package/dist/agents/i18n-messages.d.ts +17 -0
- package/dist/agents/i18n-messages.d.ts.map +1 -0
- package/dist/agents/i18n-messages.js +92 -0
- package/dist/agents/i18n-messages.js.map +1 -0
- package/dist/agents/index.d.ts +10 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +26 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/pipeline.d.ts +15 -0
- package/dist/agents/pipeline.d.ts.map +1 -0
- package/dist/agents/pipeline.js +45 -0
- package/dist/agents/pipeline.js.map +1 -0
- package/dist/agents/schema-factory.d.ts +40 -0
- package/dist/agents/schema-factory.d.ts.map +1 -0
- package/dist/agents/schema-factory.js +121 -0
- package/dist/agents/schema-factory.js.map +1 -0
- package/dist/agents/translation-validators.d.ts +26 -0
- package/dist/agents/translation-validators.d.ts.map +1 -0
- package/dist/agents/translation-validators.js +77 -0
- package/dist/agents/translation-validators.js.map +1 -0
- package/dist/agents/translator-agents.d.ts +184 -0
- package/dist/agents/translator-agents.d.ts.map +1 -0
- package/dist/agents/translator-agents.js +613 -0
- package/dist/agents/translator-agents.js.map +1 -0
- package/dist/agents/types/translation.types.d.ts +100 -0
- package/dist/agents/types/translation.types.d.ts.map +1 -0
- package/dist/agents/types/translation.types.js +3 -0
- package/dist/agents/types/translation.types.js.map +1 -0
- package/dist/agents/validator-agent.d.ts +42 -0
- package/dist/agents/validator-agent.d.ts.map +1 -0
- package/dist/agents/validator-agent.js +122 -0
- package/dist/agents/validator-agent.js.map +1 -0
- package/dist/audit/auditTrail.d.ts +55 -0
- package/dist/audit/auditTrail.d.ts.map +1 -0
- package/dist/audit/auditTrail.js +93 -0
- package/dist/audit/auditTrail.js.map +1 -0
- package/dist/compliance/gdprEngine.d.ts +44 -0
- package/dist/compliance/gdprEngine.d.ts.map +1 -0
- package/dist/compliance/gdprEngine.js +178 -0
- package/dist/compliance/gdprEngine.js.map +1 -0
- package/dist/compliance/lgpdEngine.d.ts +51 -0
- package/dist/compliance/lgpdEngine.d.ts.map +1 -0
- package/dist/compliance/lgpdEngine.js +221 -0
- package/dist/compliance/lgpdEngine.js.map +1 -0
- package/dist/config.d.ts +78 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +77 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +17 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +40 -0
- package/dist/errors.js.map +1 -0
- package/dist/firebase/tenantManager.d.ts +84 -0
- package/dist/firebase/tenantManager.d.ts.map +1 -0
- package/dist/firebase/tenantManager.js +378 -0
- package/dist/firebase/tenantManager.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +118 -0
- package/dist/index.js.map +1 -0
- package/dist/integration/secure-yaml-runtime.d.ts +68 -0
- package/dist/integration/secure-yaml-runtime.d.ts.map +1 -0
- package/dist/integration/secure-yaml-runtime.js +245 -0
- package/dist/integration/secure-yaml-runtime.js.map +1 -0
- package/dist/parser/secure-yaml-parser.d.ts +62 -0
- package/dist/parser/secure-yaml-parser.d.ts.map +1 -0
- package/dist/parser/secure-yaml-parser.js +234 -0
- package/dist/parser/secure-yaml-parser.js.map +1 -0
- package/dist/performance/autoscaling.d.ts +100 -0
- package/dist/performance/autoscaling.d.ts.map +1 -0
- package/dist/performance/autoscaling.js +339 -0
- package/dist/performance/autoscaling.js.map +1 -0
- package/dist/performance/benchmark.d.ts +104 -0
- package/dist/performance/benchmark.d.ts.map +1 -0
- package/dist/performance/benchmark.js +514 -0
- package/dist/performance/benchmark.js.map +1 -0
- package/dist/performance/index.d.ts +14 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +35 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/performance/monitor.d.ts +126 -0
- package/dist/performance/monitor.d.ts.map +1 -0
- package/dist/performance/monitor.js +324 -0
- package/dist/performance/monitor.js.map +1 -0
- package/dist/performance/streaming.d.ts +82 -0
- package/dist/performance/streaming.d.ts.map +1 -0
- package/dist/performance/streaming.js +287 -0
- package/dist/performance/streaming.js.map +1 -0
- package/dist/runtime/audit.d.ts +240 -0
- package/dist/runtime/audit.d.ts.map +1 -0
- package/dist/runtime/audit.js +641 -0
- package/dist/runtime/audit.js.map +1 -0
- package/dist/runtime/declarativeAgentRuntime.d.ts +123 -0
- package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -0
- package/dist/runtime/declarativeAgentRuntime.js +576 -0
- package/dist/runtime/declarativeAgentRuntime.js.map +1 -0
- package/dist/runtime/isolatedRuntime.d.ts +119 -0
- package/dist/runtime/isolatedRuntime.d.ts.map +1 -0
- package/dist/runtime/isolatedRuntime.js +425 -0
- package/dist/runtime/isolatedRuntime.js.map +1 -0
- package/dist/runtime/schemaCompiler.d.ts +35 -0
- package/dist/runtime/schemaCompiler.d.ts.map +1 -0
- package/dist/runtime/schemaCompiler.js +151 -0
- package/dist/runtime/schemaCompiler.js.map +1 -0
- package/dist/runtime/simpleRuntime.d.ts +57 -0
- package/dist/runtime/simpleRuntime.d.ts.map +1 -0
- package/dist/runtime/simpleRuntime.js +187 -0
- package/dist/runtime/simpleRuntime.js.map +1 -0
- package/dist/security/dashboard.d.ts +89 -0
- package/dist/security/dashboard.d.ts.map +1 -0
- package/dist/security/dashboard.js +300 -0
- package/dist/security/dashboard.js.map +1 -0
- package/dist/security/hardening.d.ts +130 -0
- package/dist/security/hardening.d.ts.map +1 -0
- package/dist/security/hardening.js +414 -0
- package/dist/security/hardening.js.map +1 -0
- package/dist/security/index.d.ts +128 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +353 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/monitor.d.ts +88 -0
- package/dist/security/monitor.d.ts.map +1 -0
- package/dist/security/monitor.js +356 -0
- package/dist/security/monitor.js.map +1 -0
- package/dist/security/scanner.d.ts +104 -0
- package/dist/security/scanner.d.ts.map +1 -0
- package/dist/security/scanner.js +298 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/security/score.d.ts +150 -0
- package/dist/security/score.d.ts.map +1 -0
- package/dist/security/score.js +983 -0
- package/dist/security/score.js.map +1 -0
- package/dist/security/test-security.d.ts +22 -0
- package/dist/security/test-security.d.ts.map +1 -0
- package/dist/security/test-security.js +154 -0
- package/dist/security/test-security.js.map +1 -0
- package/dist/security/threatDetector.d.ts +39 -0
- package/dist/security/threatDetector.d.ts.map +1 -0
- package/dist/security/threatDetector.js +354 -0
- package/dist/security/threatDetector.js.map +1 -0
- package/dist/security/validation.d.ts +69 -0
- package/dist/security/validation.d.ts.map +1 -0
- package/dist/security/validation.js +286 -0
- package/dist/security/validation.js.map +1 -0
- package/dist/server/api/clientsRoute.d.ts +9 -0
- package/dist/server/api/clientsRoute.d.ts.map +1 -0
- package/dist/server/api/clientsRoute.js +71 -0
- package/dist/server/api/clientsRoute.js.map +1 -0
- package/dist/server/api/endpointsRoute.d.ts +8 -0
- package/dist/server/api/endpointsRoute.d.ts.map +1 -0
- package/dist/server/api/endpointsRoute.js +76 -0
- package/dist/server/api/endpointsRoute.js.map +1 -0
- package/dist/server/api/graphql.d.ts +9 -0
- package/dist/server/api/graphql.d.ts.map +1 -0
- package/dist/server/api/graphql.js +180 -0
- package/dist/server/api/graphql.js.map +1 -0
- package/dist/server/errors.d.ts +19 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +42 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +24 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/kvStore.d.ts +27 -0
- package/dist/server/kvStore.d.ts.map +1 -0
- package/dist/server/kvStore.js +128 -0
- package/dist/server/kvStore.js.map +1 -0
- package/dist/server/runtimeSecurity.d.ts +28 -0
- package/dist/server/runtimeSecurity.d.ts.map +1 -0
- package/dist/server/runtimeSecurity.js +85 -0
- package/dist/server/runtimeSecurity.js.map +1 -0
- package/dist/server/types.d.ts +53 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +8 -0
- package/dist/server/types.js.map +1 -0
- package/dist/types/executionContext.d.ts +16 -0
- package/dist/types/executionContext.d.ts.map +1 -0
- package/dist/types/executionContext.js +3 -0
- package/dist/types/executionContext.js.map +1 -0
- package/package.json +77 -0
- package/src/agents/agentRegistry.ts +272 -0
- package/src/agents/image-agent.yaml +86 -0
- package/src/agents/joker-agent.yaml +47 -0
- package/src/agents/translator-agent.yaml +80 -0
- package/src/audit/auditTrail.ts +134 -0
- package/src/compliance/gdprEngine.ts +209 -0
- package/src/compliance/lgpdEngine.ts +268 -0
- package/src/config.ts +179 -0
- package/src/errors.ts +35 -0
- package/src/firebase/tenantManager.ts +443 -0
- package/src/index.ts +125 -0
- package/src/integration/secure-yaml-runtime.ts +341 -0
- package/src/parser/secure-yaml-parser.ts +273 -0
- package/src/performance/autoscaling.ts +495 -0
- package/src/performance/benchmark.ts +644 -0
- package/src/performance/index.ts +34 -0
- package/src/performance/monitor.ts +469 -0
- package/src/performance/streaming.ts +317 -0
- package/src/runtime/audit.ts +907 -0
- package/src/runtime/declarativeAgentRuntime.ts +836 -0
- package/src/runtime/isolatedRuntime.ts +572 -0
- package/src/runtime/schemaCompiler.ts +228 -0
- package/src/runtime/simpleRuntime.ts +201 -0
- package/src/security/dashboard.ts +462 -0
- package/src/security/hardening.ts +560 -0
- package/src/security/index.ts +439 -0
- package/src/security/monitor.ts +490 -0
- package/src/security/scanner.ts +368 -0
- package/src/security/score.ts +1138 -0
- package/src/security/threatDetector.ts +481 -0
- package/src/security/validation.ts +365 -0
- package/src/server/api/clientsRoute.ts +92 -0
- package/src/server/api/endpointsRoute.ts +97 -0
- package/src/server/api/graphql.ts +249 -0
- package/src/server/errors.ts +38 -0
- package/src/server/index.ts +6 -0
- package/src/server/kvStore.ts +152 -0
- package/src/server/runtimeSecurity.ts +102 -0
- package/src/server/types.ts +60 -0
- package/src/types/executionContext.ts +16 -0
- package/tools/seed.ts +365 -0
- package/tools/test-endpoints.ts +174 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export interface TranslationRequest {
|
|
3
|
+
texto: string;
|
|
4
|
+
idioma_origem: string;
|
|
5
|
+
idioma_destino: string;
|
|
6
|
+
}
|
|
7
|
+
export interface TranslationResponse {
|
|
8
|
+
texto_traduzido: string;
|
|
9
|
+
metadados: {
|
|
10
|
+
modelo_utilizado: string;
|
|
11
|
+
tempo_processamento: number;
|
|
12
|
+
confianca: number;
|
|
13
|
+
idiomas_suportados?: string[];
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Erro de validação aprimorado com suporte a múltiplas falhas de validação
|
|
18
|
+
*/
|
|
19
|
+
export interface ValidationError {
|
|
20
|
+
campo: string;
|
|
21
|
+
mensagem: string;
|
|
22
|
+
codigo: string;
|
|
23
|
+
issues?: ValidationIssue[];
|
|
24
|
+
}
|
|
25
|
+
export interface ValidationIssue {
|
|
26
|
+
path: (string | number)[];
|
|
27
|
+
message: string;
|
|
28
|
+
type: string;
|
|
29
|
+
expected?: unknown;
|
|
30
|
+
received?: unknown;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Opções de configuração para comportamento de validação
|
|
34
|
+
*/
|
|
35
|
+
export interface ValidationOptions {
|
|
36
|
+
stripUnknown?: boolean;
|
|
37
|
+
abortEarly?: boolean;
|
|
38
|
+
allowExtraKeys?: boolean;
|
|
39
|
+
description?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Resultado de validação aprimorado com suporte a múltiplas falhas de validação
|
|
43
|
+
*/
|
|
44
|
+
export interface ValidationResult<T> {
|
|
45
|
+
success: boolean;
|
|
46
|
+
data?: T;
|
|
47
|
+
error?: ValidationError;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Interface de configuração para agentes
|
|
51
|
+
*/
|
|
52
|
+
export interface AgentConfig {
|
|
53
|
+
resource?: string;
|
|
54
|
+
cacheTTL?: number;
|
|
55
|
+
fallbackModels?: string[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Tipos para cache de schemas
|
|
59
|
+
*/
|
|
60
|
+
export interface SchemaCacheItem {
|
|
61
|
+
schema: z.ZodSchema;
|
|
62
|
+
timestamp: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Limitações de tradução
|
|
66
|
+
*/
|
|
67
|
+
export interface TranslationLimits {
|
|
68
|
+
maxTextLength?: number;
|
|
69
|
+
minTextLength?: number;
|
|
70
|
+
supportedLanguages?: string[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Opções de schema dinâmico
|
|
74
|
+
*/
|
|
75
|
+
export interface TranslationSchemaOptions {
|
|
76
|
+
maxTextLength?: number;
|
|
77
|
+
supportedLanguages?: string[];
|
|
78
|
+
requireMetadata?: boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Opções de schema de resposta
|
|
82
|
+
*/
|
|
83
|
+
export interface TranslationResponseSchemaOptions {
|
|
84
|
+
minConfidence?: number;
|
|
85
|
+
maxProcessingTime?: number;
|
|
86
|
+
includeLanguageSupport?: boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Opções de configuração de tradução
|
|
90
|
+
*/
|
|
91
|
+
export interface TranslationConfigOptions {
|
|
92
|
+
sourceLanguage: "pt" | "en" | "es" | "fr";
|
|
93
|
+
targetLanguage: "pt" | "en" | "es" | "fr";
|
|
94
|
+
preserveFormatting?: boolean;
|
|
95
|
+
enableCache?: boolean;
|
|
96
|
+
cacheTTL?: number;
|
|
97
|
+
fallbackModel?: string;
|
|
98
|
+
confidenceThreshold?: number;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=translation.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translation.types.d.ts","sourceRoot":"","sources":["../../../src/agents/types/translation.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE;QACT,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,cAAc,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translation.types.js","sourceRoot":"","sources":["../../../src/agents/types/translation.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ValidationOptions, ValidationResult } from "./types/translation.types";
|
|
3
|
+
export declare const translatorSchema: z.ZodObject<{
|
|
4
|
+
texto: z.ZodString;
|
|
5
|
+
idioma_origem: z.ZodString;
|
|
6
|
+
idioma_destino: z.ZodString;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
/**
|
|
9
|
+
* ValidatorAgent aprimorado com tratamento de erros abrangente
|
|
10
|
+
*/
|
|
11
|
+
export default class ValidatorAgent {
|
|
12
|
+
private static schemaCache;
|
|
13
|
+
private static readonly DEFAULT_OPTIONS;
|
|
14
|
+
/**
|
|
15
|
+
* Validação de entrada aprimorada com tratamento abrangente de erros e segurança de tipos
|
|
16
|
+
* @param schema - Schema Zod para validação
|
|
17
|
+
* @param data - Dados desconhecidos para validar
|
|
18
|
+
* @param options - Opções de comportamento de validação
|
|
19
|
+
* @returns Dados tipados validados
|
|
20
|
+
* @throws {ValidationError} com informações detalhadas do erro
|
|
21
|
+
*/
|
|
22
|
+
static validateInput<T>(schema: z.ZodSchema, data: unknown, options?: ValidationOptions): T;
|
|
23
|
+
/**
|
|
24
|
+
* Validação segura que retorna objeto de resultado ao invés de lançar erro
|
|
25
|
+
*/
|
|
26
|
+
static safeValidate<T>(schema: z.ZodSchema, data: unknown, options?: ValidationOptions): ValidationResult<T>;
|
|
27
|
+
/**
|
|
28
|
+
* Cria um validador de schema em cache para melhor performance
|
|
29
|
+
*/
|
|
30
|
+
static createCachedValidator(schema: z.ZodSchema, schemaId: string, options?: ValidationOptions): <T>(data: unknown) => T;
|
|
31
|
+
/**
|
|
32
|
+
* Cria um validador com schema pré-configurado
|
|
33
|
+
*/
|
|
34
|
+
static createValidator<T>(schema: z.ZodSchema, options?: ValidationOptions): (data: unknown) => T;
|
|
35
|
+
/**
|
|
36
|
+
* Constrói erro de validação abrangente a partir do ZodError
|
|
37
|
+
*/
|
|
38
|
+
private static buildValidationError;
|
|
39
|
+
static validateSchema(schema: z.ZodSchema): boolean;
|
|
40
|
+
}
|
|
41
|
+
export { ValidatorAgent };
|
|
42
|
+
//# sourceMappingURL=validator-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-agent.d.ts","sourceRoot":"","sources":["../../src/agents/validator-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAIL,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAkC;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAIrC;IAEF;;;;;;;OAOG;IACH,MAAM,CAAC,aAAa,CAAC,CAAC,EACpB,MAAM,EAAE,CAAC,CAAC,SAAS,EACnB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,CAAC;IAoBJ;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,EACnB,MAAM,EAAE,CAAC,CAAC,SAAS,EACnB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAAC,CAAC,CAAC;IA8BtB;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAC1B,MAAM,EAAE,CAAC,CAAC,SAAS,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,IAQF,CAAC,EAAE,MAAM,OAAO,KAAG,CAAC;IAK/C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,iBAAiB,IAC/C,MAAM,OAAO,KAAG,CAAC;IAK5C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAwBnC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS;CAM1C;AAGD,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ValidatorAgent = exports.translatorSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
// Exportação específica do translatorSchema para uso direto
|
|
6
|
+
exports.translatorSchema = zod_1.z.object({
|
|
7
|
+
texto: zod_1.z.string().min(1).max(10000),
|
|
8
|
+
idioma_origem: zod_1.z.string().regex(/^[a-z]{2}$/),
|
|
9
|
+
idioma_destino: zod_1.z.string().regex(/^[a-z]{2}$/),
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* ValidatorAgent aprimorado com tratamento de erros abrangente
|
|
13
|
+
*/
|
|
14
|
+
class ValidatorAgent {
|
|
15
|
+
/**
|
|
16
|
+
* Validação de entrada aprimorada com tratamento abrangente de erros e segurança de tipos
|
|
17
|
+
* @param schema - Schema Zod para validação
|
|
18
|
+
* @param data - Dados desconhecidos para validar
|
|
19
|
+
* @param options - Opções de comportamento de validação
|
|
20
|
+
* @returns Dados tipados validados
|
|
21
|
+
* @throws {ValidationError} com informações detalhadas do erro
|
|
22
|
+
*/
|
|
23
|
+
static validateInput(schema, data, options) {
|
|
24
|
+
const mergeOptions = { ...this.DEFAULT_OPTIONS, ...options };
|
|
25
|
+
try {
|
|
26
|
+
// Tentativa de parse com opções configuradas
|
|
27
|
+
const result = schema.parse(data);
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
32
|
+
const validationError = this.buildValidationError(error, mergeOptions);
|
|
33
|
+
throw validationError;
|
|
34
|
+
}
|
|
35
|
+
// Tratar erros não-Zod
|
|
36
|
+
throw new Error(`Erro inesperado durante validação: ${error.message}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Validação segura que retorna objeto de resultado ao invés de lançar erro
|
|
41
|
+
*/
|
|
42
|
+
static safeValidate(schema, data, options) {
|
|
43
|
+
try {
|
|
44
|
+
const result = this.validateInput(schema, data, options);
|
|
45
|
+
return {
|
|
46
|
+
success: true,
|
|
47
|
+
data: result,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
return {
|
|
52
|
+
success: false,
|
|
53
|
+
error: error.campo !== undefined
|
|
54
|
+
? error
|
|
55
|
+
: this.buildValidationError(new zod_1.z.ZodError([
|
|
56
|
+
{
|
|
57
|
+
message: error instanceof Error
|
|
58
|
+
? error.message
|
|
59
|
+
: "Erro de validação desconhecido",
|
|
60
|
+
code: "custom",
|
|
61
|
+
path: [],
|
|
62
|
+
},
|
|
63
|
+
]), options),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Cria um validador de schema em cache para melhor performance
|
|
69
|
+
*/
|
|
70
|
+
static createCachedValidator(schema, schemaId, options) {
|
|
71
|
+
let cachedSchema = this.schemaCache.get(schemaId);
|
|
72
|
+
if (!cachedSchema) {
|
|
73
|
+
cachedSchema = schema;
|
|
74
|
+
this.schemaCache.set(schemaId, cachedSchema);
|
|
75
|
+
}
|
|
76
|
+
return function validate(data) {
|
|
77
|
+
return ValidatorAgent.validateInput(cachedSchema, data, options);
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Cria um validador com schema pré-configurado
|
|
82
|
+
*/
|
|
83
|
+
static createValidator(schema, options) {
|
|
84
|
+
return function validate(data) {
|
|
85
|
+
return ValidatorAgent.validateInput(schema, data, options);
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Constrói erro de validação abrangente a partir do ZodError
|
|
90
|
+
*/
|
|
91
|
+
static buildValidationError(zodError, options) {
|
|
92
|
+
// Zod v4 tem API diferente - usar propriedade issues
|
|
93
|
+
const issues = zodError.issues?.map((issue) => ({
|
|
94
|
+
path: [...issue.path],
|
|
95
|
+
message: issue.message,
|
|
96
|
+
type: issue.code,
|
|
97
|
+
expected: issue.params?.expected,
|
|
98
|
+
received: issue.params?.received,
|
|
99
|
+
})) || [];
|
|
100
|
+
return {
|
|
101
|
+
campo: issues[0]?.path.join(".") || "root",
|
|
102
|
+
mensagem: `${issues.length} erro(s) de validação encontrado(s). ${issues[0]?.message || "Validação falhou"}`,
|
|
103
|
+
codigo: "VALIDATION_ERROR",
|
|
104
|
+
issues,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
static validateSchema(schema) {
|
|
108
|
+
if (schema._def?.typeName) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
throw new Error("Schema Zod inválido fornecido");
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.ValidatorAgent = ValidatorAgent;
|
|
115
|
+
ValidatorAgent.schemaCache = new Map();
|
|
116
|
+
ValidatorAgent.DEFAULT_OPTIONS = {
|
|
117
|
+
stripUnknown: false,
|
|
118
|
+
abortEarly: false,
|
|
119
|
+
allowExtraKeys: true,
|
|
120
|
+
};
|
|
121
|
+
exports.default = ValidatorAgent;
|
|
122
|
+
//# sourceMappingURL=validator-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-agent.js","sourceRoot":"","sources":["../../src/agents/validator-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audit Trail Service - SHA-256 Hash Tracking
|
|
3
|
+
* Logs operations com hash criptográfico para auditoria completa
|
|
4
|
+
*/
|
|
5
|
+
export interface AuditLog {
|
|
6
|
+
operationId: string;
|
|
7
|
+
tenantId: string;
|
|
8
|
+
operation: string;
|
|
9
|
+
data: any;
|
|
10
|
+
timestamp: Date;
|
|
11
|
+
success?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface AuditTrailEntry {
|
|
14
|
+
operationId: string;
|
|
15
|
+
tenantId: string;
|
|
16
|
+
operation: string;
|
|
17
|
+
hash: string;
|
|
18
|
+
timestamp: Date;
|
|
19
|
+
dataHash: string;
|
|
20
|
+
success: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare class AuditTrail {
|
|
23
|
+
private logs;
|
|
24
|
+
private readonly MAX_LOGS;
|
|
25
|
+
constructor();
|
|
26
|
+
/**
|
|
27
|
+
* Log operation with SHA-256 hash
|
|
28
|
+
*/
|
|
29
|
+
logOperation(auditLog: AuditLog): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Generate SHA-256 hash
|
|
32
|
+
*/
|
|
33
|
+
private generateSHA256;
|
|
34
|
+
/**
|
|
35
|
+
* Get all audit logs
|
|
36
|
+
*/
|
|
37
|
+
getAllLogs(): AuditTrailEntry[];
|
|
38
|
+
/**
|
|
39
|
+
* Get logs for specific tenant
|
|
40
|
+
*/
|
|
41
|
+
getTenantLogs(tenantId: string): AuditTrailEntry[];
|
|
42
|
+
/**
|
|
43
|
+
* Get logs for specific operation
|
|
44
|
+
*/
|
|
45
|
+
getOperationLogs(operation: string): AuditTrailEntry[];
|
|
46
|
+
/**
|
|
47
|
+
* Verify audit trail integrity
|
|
48
|
+
*/
|
|
49
|
+
verifyIntegrity(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Clear audit logs
|
|
52
|
+
*/
|
|
53
|
+
clearLogs(): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=auditTrail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auditTrail.d.ts","sourceRoot":"","sources":["../../src/audit/auditTrail.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;;IAMlC;;OAEG;IACU,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAsC9D;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACI,UAAU,IAAI,eAAe,EAAE;IAItC;;OAEG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IAIzD;;OAEG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE;IAI7D;;OAEG;IACI,eAAe,IAAI,OAAO;IAYjC;;OAEG;IACI,SAAS,IAAI,IAAI;CAGzB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Audit Trail Service - SHA-256 Hash Tracking
|
|
4
|
+
* Logs operations com hash criptográfico para auditoria completa
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AuditTrail = void 0;
|
|
8
|
+
class AuditTrail {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.logs = [];
|
|
11
|
+
this.MAX_LOGS = 10000;
|
|
12
|
+
this.logs = [];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Log operation with SHA-256 hash
|
|
16
|
+
*/
|
|
17
|
+
async logOperation(auditLog) {
|
|
18
|
+
const { operationId, tenantId, operation, data, timestamp, success = true, } = auditLog;
|
|
19
|
+
// Generate hash for audit trail
|
|
20
|
+
const dataString = JSON.stringify(data);
|
|
21
|
+
const hash = this.generateSHA256(`${operationId}-${tenantId}-${operation}-${dataString}-${timestamp.toISOString()}`);
|
|
22
|
+
const dataHash = this.generateSHA256(dataString);
|
|
23
|
+
const entry = {
|
|
24
|
+
operationId,
|
|
25
|
+
tenantId,
|
|
26
|
+
operation,
|
|
27
|
+
hash,
|
|
28
|
+
timestamp,
|
|
29
|
+
dataHash,
|
|
30
|
+
success,
|
|
31
|
+
};
|
|
32
|
+
// Store log
|
|
33
|
+
this.logs.push(entry);
|
|
34
|
+
// Maintain log size limit
|
|
35
|
+
if (this.logs.length > this.MAX_LOGS) {
|
|
36
|
+
this.logs = this.logs.slice(-this.MAX_LOGS);
|
|
37
|
+
}
|
|
38
|
+
return hash;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Generate SHA-256 hash
|
|
42
|
+
*/
|
|
43
|
+
generateSHA256(input) {
|
|
44
|
+
// In a real implementation, would use crypto module
|
|
45
|
+
// For now, simulate SHA-256 hash
|
|
46
|
+
return ("SHA256-" +
|
|
47
|
+
input
|
|
48
|
+
.split("")
|
|
49
|
+
.reduce((hash, char) => {
|
|
50
|
+
const charCode = char.charCodeAt(0);
|
|
51
|
+
return ((hash << 5) - hash + charCode) & 0xffffffff;
|
|
52
|
+
}, 0)
|
|
53
|
+
.toString(16));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get all audit logs
|
|
57
|
+
*/
|
|
58
|
+
getAllLogs() {
|
|
59
|
+
return [...this.logs];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get logs for specific tenant
|
|
63
|
+
*/
|
|
64
|
+
getTenantLogs(tenantId) {
|
|
65
|
+
return this.logs.filter((log) => log.tenantId === tenantId);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get logs for specific operation
|
|
69
|
+
*/
|
|
70
|
+
getOperationLogs(operation) {
|
|
71
|
+
return this.logs.filter((log) => log.operation === operation);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Verify audit trail integrity
|
|
75
|
+
*/
|
|
76
|
+
verifyIntegrity() {
|
|
77
|
+
for (const log of this.logs) {
|
|
78
|
+
const reconstructedHash = this.generateSHA256(`${log.operationId}-${log.tenantId}-${log.operation}-${log.dataHash}-`);
|
|
79
|
+
if (reconstructedHash !== log.hash) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Clear audit logs
|
|
87
|
+
*/
|
|
88
|
+
clearLogs() {
|
|
89
|
+
this.logs = [];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.AuditTrail = AuditTrail;
|
|
93
|
+
//# sourceMappingURL=auditTrail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auditTrail.js","sourceRoot":"","sources":["../../src/audit/auditTrail.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GDPR Compliance Engine v2025
|
|
3
|
+
* European data protection compliance automático
|
|
4
|
+
* Enhanced with SHA-256 audit trail integration
|
|
5
|
+
*/
|
|
6
|
+
import { AuditTrail } from "../audit/auditTrail";
|
|
7
|
+
export interface GDPRConfig {
|
|
8
|
+
tenantId: string;
|
|
9
|
+
dataAnonymization: boolean;
|
|
10
|
+
consentManagement: boolean;
|
|
11
|
+
rightToBeForgotten: boolean;
|
|
12
|
+
dataPortability: boolean;
|
|
13
|
+
dataRetentionDays: number;
|
|
14
|
+
}
|
|
15
|
+
export interface GDPRComplianceResult {
|
|
16
|
+
compliant: boolean;
|
|
17
|
+
violations: string[];
|
|
18
|
+
recommendations: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare class GDPRCompliance {
|
|
21
|
+
private auditTrail;
|
|
22
|
+
constructor(auditTrail?: AuditTrail);
|
|
23
|
+
/**
|
|
24
|
+
* Verify GDPR compliance for tenant
|
|
25
|
+
*/
|
|
26
|
+
verifyCompliance(config: GDPRConfig): Promise<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* Check full GDPR compliance with audit trail
|
|
29
|
+
*/
|
|
30
|
+
private checkCompliance;
|
|
31
|
+
/**
|
|
32
|
+
* Anonymize personal data
|
|
33
|
+
*/
|
|
34
|
+
anonymizeData(data: any): any;
|
|
35
|
+
/**
|
|
36
|
+
* Hash sensitive data using SHA-256 for GDPR compliance
|
|
37
|
+
*/
|
|
38
|
+
private hashSensitiveData;
|
|
39
|
+
/**
|
|
40
|
+
* Generate data portability export with SHA-256 checksum
|
|
41
|
+
*/
|
|
42
|
+
generateDataExport(tenantId: string): Promise<any>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=gdprEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gdprEngine.d.ts","sourceRoot":"","sources":["../../src/compliance/gdprEngine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,CAAC,EAAE,UAAU;IAInC;;OAEG;IACU,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnE;;OAEG;YACW,eAAe;IAgF7B;;OAEG;IACI,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG;IAgCpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAqChE"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GDPR Compliance Engine v2025
|
|
4
|
+
* European data protection compliance automático
|
|
5
|
+
* Enhanced with SHA-256 audit trail integration
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.GDPRCompliance = void 0;
|
|
9
|
+
const auditTrail_1 = require("../audit/auditTrail");
|
|
10
|
+
class GDPRCompliance {
|
|
11
|
+
constructor(auditTrail) {
|
|
12
|
+
this.auditTrail = auditTrail || new auditTrail_1.AuditTrail();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Verify GDPR compliance for tenant
|
|
16
|
+
*/
|
|
17
|
+
async verifyCompliance(config) {
|
|
18
|
+
const result = await this.checkCompliance(config);
|
|
19
|
+
return result.compliant;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Check full GDPR compliance with audit trail
|
|
23
|
+
*/
|
|
24
|
+
async checkCompliance(config) {
|
|
25
|
+
const violations = [];
|
|
26
|
+
const recommendations = [];
|
|
27
|
+
const operationId = `gdpr-check-${config.tenantId}-${Date.now()}`;
|
|
28
|
+
try {
|
|
29
|
+
// Check data anonymization
|
|
30
|
+
if (!config.dataAnonymization) {
|
|
31
|
+
violations.push("Data anonymization not enabled");
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
recommendations.push("Ensure anonymization algorithms are strong");
|
|
35
|
+
}
|
|
36
|
+
// Check consent management
|
|
37
|
+
if (!config.consentManagement) {
|
|
38
|
+
violations.push("Consent management system not implemented");
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
recommendations.push("Implement granular consent controls");
|
|
42
|
+
}
|
|
43
|
+
// Check right to be forgotten
|
|
44
|
+
if (!config.rightToBeForgotten) {
|
|
45
|
+
violations.push("Right to be forgotten not implemented");
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
recommendations.push("Ensure data deletion within 30 days");
|
|
49
|
+
}
|
|
50
|
+
// Check data portability
|
|
51
|
+
if (!config.dataPortability) {
|
|
52
|
+
violations.push("Data portability not enabled");
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
recommendations.push("Support JSON and XML export formats");
|
|
56
|
+
}
|
|
57
|
+
// Check data retention
|
|
58
|
+
if (config.dataRetentionDays > 2555) {
|
|
59
|
+
// 7 years max
|
|
60
|
+
violations.push("Data retention exceeds GDPR limits");
|
|
61
|
+
}
|
|
62
|
+
else if (config.dataRetentionDays > 730) {
|
|
63
|
+
// 2 years
|
|
64
|
+
recommendations.push("Consider reducing retention period");
|
|
65
|
+
}
|
|
66
|
+
// Log compliance check to audit trail
|
|
67
|
+
const auditHash = await this.auditTrail.logOperation({
|
|
68
|
+
operationId,
|
|
69
|
+
tenantId: config.tenantId,
|
|
70
|
+
operation: "gdpr_compliance_check",
|
|
71
|
+
data: {
|
|
72
|
+
compliant: violations.length === 0,
|
|
73
|
+
violationsCount: violations.length,
|
|
74
|
+
retentionDays: config.dataRetentionDays,
|
|
75
|
+
},
|
|
76
|
+
timestamp: new Date(),
|
|
77
|
+
});
|
|
78
|
+
const compliant = violations.length === 0;
|
|
79
|
+
return {
|
|
80
|
+
compliant,
|
|
81
|
+
violations,
|
|
82
|
+
recommendations,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
await this.auditTrail.logOperation({
|
|
87
|
+
operationId,
|
|
88
|
+
tenantId: config.tenantId,
|
|
89
|
+
operation: "gdpr_compliance_error",
|
|
90
|
+
data: {
|
|
91
|
+
error: error instanceof Error ? error.message : String(error),
|
|
92
|
+
},
|
|
93
|
+
timestamp: new Date(),
|
|
94
|
+
success: false,
|
|
95
|
+
});
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Anonymize personal data
|
|
101
|
+
*/
|
|
102
|
+
anonymizeData(data) {
|
|
103
|
+
if (typeof data !== "object" || data === null) {
|
|
104
|
+
return data;
|
|
105
|
+
}
|
|
106
|
+
const anonymized = { ...data };
|
|
107
|
+
// Anonymize common personal data fields
|
|
108
|
+
const personalFields = [
|
|
109
|
+
"name",
|
|
110
|
+
"email",
|
|
111
|
+
"phone",
|
|
112
|
+
"cpf",
|
|
113
|
+
"rg",
|
|
114
|
+
"passport",
|
|
115
|
+
"address",
|
|
116
|
+
"birthdate",
|
|
117
|
+
"nationality",
|
|
118
|
+
"photo",
|
|
119
|
+
"signature",
|
|
120
|
+
"voice",
|
|
121
|
+
];
|
|
122
|
+
for (const field of personalFields) {
|
|
123
|
+
if (anonymized[field]) {
|
|
124
|
+
anonymized[field] = this.hashSensitiveData(anonymized[field]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return anonymized;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Hash sensitive data using SHA-256 for GDPR compliance
|
|
131
|
+
*/
|
|
132
|
+
hashSensitiveData(data) {
|
|
133
|
+
if (typeof data === "string") {
|
|
134
|
+
// Use SHA-256 hash (simulated for now - in production use crypto.createHash)
|
|
135
|
+
const crypto = require("crypto");
|
|
136
|
+
return crypto.createHash("sha256").update(data).digest("hex");
|
|
137
|
+
}
|
|
138
|
+
return "GDPR_HASH_COMPLEX_" + this.hashSensitiveData(JSON.stringify(data));
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Generate data portability export with SHA-256 checksum
|
|
142
|
+
*/
|
|
143
|
+
async generateDataExport(tenantId) {
|
|
144
|
+
const exportData = {
|
|
145
|
+
tenantId,
|
|
146
|
+
exportDate: new Date().toISOString(),
|
|
147
|
+
format: "JSON",
|
|
148
|
+
data: {
|
|
149
|
+
profile: "user_data_exported",
|
|
150
|
+
preferences: "export_data_placeholder",
|
|
151
|
+
activities: "user_activities_exported",
|
|
152
|
+
},
|
|
153
|
+
gdprVersion: "2025.1",
|
|
154
|
+
};
|
|
155
|
+
// Generate SHA-256 checksum for data integrity
|
|
156
|
+
const crypto = require("crypto");
|
|
157
|
+
const checksum = crypto
|
|
158
|
+
.createHash("sha256")
|
|
159
|
+
.update(JSON.stringify(exportData))
|
|
160
|
+
.digest("hex");
|
|
161
|
+
const result = {
|
|
162
|
+
...exportData,
|
|
163
|
+
checksum,
|
|
164
|
+
};
|
|
165
|
+
// Log export operation to audit trail
|
|
166
|
+
const operationId = `gdpr-export-${tenantId}-${Date.now()}`;
|
|
167
|
+
await this.auditTrail.logOperation({
|
|
168
|
+
operationId,
|
|
169
|
+
tenantId,
|
|
170
|
+
operation: "gdpr_data_export",
|
|
171
|
+
data: { checksum, exportDate: result.exportDate },
|
|
172
|
+
timestamp: new Date(),
|
|
173
|
+
});
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.GDPRCompliance = GDPRCompliance;
|
|
178
|
+
//# sourceMappingURL=gdprEngine.js.map
|