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,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeclarativeSchemaCompiler = exports.DeclarativeSchemaValidationError = exports.SchemaCompilationError = void 0;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const zod_1 = require("zod");
6
+ class SchemaCompilationError extends Error {
7
+ constructor(message) {
8
+ super(message);
9
+ this.name = "SchemaCompilationError";
10
+ }
11
+ }
12
+ exports.SchemaCompilationError = SchemaCompilationError;
13
+ class DeclarativeSchemaValidationError extends Error {
14
+ constructor(message, phase, issues) {
15
+ super(message);
16
+ this.phase = phase;
17
+ this.issues = issues;
18
+ this.name = "DeclarativeSchemaValidationError";
19
+ }
20
+ }
21
+ exports.DeclarativeSchemaValidationError = DeclarativeSchemaValidationError;
22
+ class DeclarativeSchemaCompiler {
23
+ constructor() {
24
+ this.cache = new Map();
25
+ }
26
+ compile(definition, path) {
27
+ const cacheKey = this.createCacheKey(definition, path);
28
+ const cached = this.cache.get(cacheKey);
29
+ if (cached) {
30
+ return cached;
31
+ }
32
+ const schema = this.buildSchema(definition, path);
33
+ this.cache.set(cacheKey, schema);
34
+ return schema;
35
+ }
36
+ clear() {
37
+ this.cache.clear();
38
+ }
39
+ get size() {
40
+ return this.cache.size;
41
+ }
42
+ createCacheKey(definition, path) {
43
+ const serialized = JSON.stringify(definition) ?? "undefined";
44
+ const signature = (0, node_crypto_1.createHash)("sha256").update(serialized).digest("hex");
45
+ return `${path}:${signature}`;
46
+ }
47
+ buildSchema(definition, path) {
48
+ if (!definition ||
49
+ typeof definition !== "object" ||
50
+ Array.isArray(definition)) {
51
+ throw new SchemaCompilationError(`Invalid schema at ${path}: expected object definition`);
52
+ }
53
+ const typedDefinition = definition;
54
+ if (!typedDefinition.type || typeof typedDefinition.type !== "string") {
55
+ throw new SchemaCompilationError(`Schema at ${path} must declare a string 'type'`);
56
+ }
57
+ switch (typedDefinition.type) {
58
+ case "object":
59
+ return this.buildObjectSchema(typedDefinition, path);
60
+ case "array":
61
+ return this.buildArraySchema(typedDefinition, path);
62
+ case "string":
63
+ return this.buildStringSchema(typedDefinition, path);
64
+ case "number":
65
+ return zod_1.z.number();
66
+ case "integer":
67
+ return zod_1.z.number().int();
68
+ case "boolean":
69
+ return zod_1.z.boolean();
70
+ case "any":
71
+ return zod_1.z.any();
72
+ case "unknown":
73
+ return zod_1.z.unknown();
74
+ default:
75
+ if (typedDefinition.enum) {
76
+ return this.buildEnumSchema(typedDefinition.enum, path);
77
+ }
78
+ throw new SchemaCompilationError(`Unsupported schema type '${typedDefinition.type}' at ${path}`);
79
+ }
80
+ }
81
+ buildObjectSchema(definition, path) {
82
+ const properties = definition.properties || {};
83
+ if (typeof properties !== "object") {
84
+ throw new SchemaCompilationError(`Object schema at ${path} must define 'properties' as an object`);
85
+ }
86
+ const requiredFields = new Set(definition.required || []);
87
+ const shape = {};
88
+ for (const [key, childDefinition] of Object.entries(properties)) {
89
+ const childPath = `${path}.properties.${key}`;
90
+ const childSchema = this.buildSchema(childDefinition, childPath);
91
+ shape[key] = requiredFields.has(key)
92
+ ? childSchema
93
+ : childSchema.optional();
94
+ }
95
+ let objectSchema = zod_1.z.object(shape);
96
+ if (definition.additionalProperties) {
97
+ objectSchema = objectSchema.catchall(zod_1.z.any());
98
+ }
99
+ else {
100
+ objectSchema = objectSchema.strict();
101
+ }
102
+ return objectSchema;
103
+ }
104
+ buildArraySchema(definition, path) {
105
+ if (!definition.items) {
106
+ throw new SchemaCompilationError(`Array schema at ${path} must define 'items'`);
107
+ }
108
+ const itemSchema = this.buildSchema(definition.items, `${path}.items`);
109
+ let arraySchema = zod_1.z.array(itemSchema);
110
+ if (typeof definition.minItems === "number") {
111
+ arraySchema = arraySchema.min(definition.minItems);
112
+ }
113
+ if (typeof definition.maxItems === "number") {
114
+ arraySchema = arraySchema.max(definition.maxItems);
115
+ }
116
+ return arraySchema;
117
+ }
118
+ buildStringSchema(definition, path) {
119
+ let stringSchema = zod_1.z.string();
120
+ if (typeof definition.minLength === "number") {
121
+ stringSchema = stringSchema.min(definition.minLength);
122
+ }
123
+ if (typeof definition.maxLength === "number") {
124
+ stringSchema = stringSchema.max(definition.maxLength);
125
+ }
126
+ if (definition.enum) {
127
+ return this.buildEnumSchema(definition.enum, path);
128
+ }
129
+ return stringSchema;
130
+ }
131
+ buildEnumSchema(values, path) {
132
+ if (!Array.isArray(values) || values.length === 0) {
133
+ throw new SchemaCompilationError(`Enum at ${path} must be a non-empty array`);
134
+ }
135
+ const literals = values.map((value) => {
136
+ if (typeof value === "string" ||
137
+ typeof value === "number" ||
138
+ typeof value === "boolean") {
139
+ return zod_1.z.literal(value);
140
+ }
141
+ throw new SchemaCompilationError(`Enum at ${path} only supports string, number, or boolean values`);
142
+ });
143
+ if (literals.length === 1) {
144
+ return literals[0];
145
+ }
146
+ const [first, second, ...rest] = literals;
147
+ return zod_1.z.union([first, second, ...rest]);
148
+ }
149
+ }
150
+ exports.DeclarativeSchemaCompiler = DeclarativeSchemaCompiler;
151
+ //# sourceMappingURL=schemaCompiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaCompiler.js","sourceRoot":"","sources":["../../src/runtime/schemaCompiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { RuntimeConfig } from "../config";
2
+ export interface ExecutionResult<T = any> {
3
+ success: boolean;
4
+ result?: T;
5
+ error?: string;
6
+ executionTime: number;
7
+ memoryUsed: number;
8
+ timestamp: Date;
9
+ }
10
+ export interface ExecutionOptions {
11
+ code: string;
12
+ context?: Record<string, any>;
13
+ securityProfile?: string;
14
+ timeout?: number;
15
+ memoryLimit?: number;
16
+ tenantId?: string;
17
+ }
18
+ export declare class IsolatedRuntimeError extends Error {
19
+ readonly code: string;
20
+ constructor(message: string, code: string);
21
+ }
22
+ /**
23
+ * Simple Isolated Runtime Manager
24
+ * Provides basic isolated execution functionality
25
+ */
26
+ export declare class SimpleIsolatedRuntimeManager {
27
+ private config;
28
+ private metrics;
29
+ constructor(config?: RuntimeConfig);
30
+ /**
31
+ * Execute code in isolated environment
32
+ */
33
+ execute<T = any>(options: ExecutionOptions): Promise<ExecutionResult<T>>;
34
+ /**
35
+ * Execute code in isolated context
36
+ */
37
+ private executeInIsolate;
38
+ /**
39
+ * Get memory usage for isolate
40
+ */
41
+ private getMemoryUsage;
42
+ /**
43
+ * Validate execution options
44
+ */
45
+ private validateExecutionOptions;
46
+ /**
47
+ * Update metrics tracking
48
+ */
49
+ private updateMetrics;
50
+ /**
51
+ * Get current metrics
52
+ */
53
+ getMetrics(): Record<string, number[]>;
54
+ }
55
+ export declare const runtimeManager: SimpleIsolatedRuntimeManager;
56
+ export default SimpleIsolatedRuntimeManager;
57
+ //# sourceMappingURL=simpleRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpleRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/simpleRuntime.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmC,aAAa,EAAE,MAAM,WAAW,CAAC;AAE3E,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aACA,IAAI,EAAE,MAAM;gBAA7C,OAAO,EAAE,MAAM,EAAkB,IAAI,EAAE,MAAM;CAI1D;AAED;;;GAGG;AACH,qBAAa,4BAA4B;IAG3B,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,OAAO,CAAoC;gBAE/B,MAAM,GAAE,aAA6B;IAEzD;;OAEG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAmC9B;;OAEG;YACW,gBAAgB;IAiD9B;;OAEG;YACW,cAAc;IAS5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAG9C;AAGD,eAAO,MAAM,cAAc,8BAAqC,CAAC;AACjE,eAAe,4BAA4B,CAAC"}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runtimeManager = exports.SimpleIsolatedRuntimeManager = exports.IsolatedRuntimeError = void 0;
37
+ /**
38
+ * Simple Isolated Runtime - Isolated VM v5 Implementation
39
+ * Provides ultra-secure isolated execution environment with zero-trust architecture
40
+ * Simplified version with core functionality
41
+ */
42
+ const ivm = __importStar(require("isolated-vm"));
43
+ const config_1 = require("../config");
44
+ class IsolatedRuntimeError extends Error {
45
+ constructor(message, code) {
46
+ super(message);
47
+ this.code = code;
48
+ this.name = "IsolatedRuntimeError";
49
+ }
50
+ }
51
+ exports.IsolatedRuntimeError = IsolatedRuntimeError;
52
+ /**
53
+ * Simple Isolated Runtime Manager
54
+ * Provides basic isolated execution functionality
55
+ */
56
+ class SimpleIsolatedRuntimeManager {
57
+ constructor(config = config_1.runtimeConfig) {
58
+ this.config = config;
59
+ this.metrics = new Map();
60
+ }
61
+ /**
62
+ * Execute code in isolated environment
63
+ */
64
+ async execute(options) {
65
+ const startTime = Date.now();
66
+ try {
67
+ // Validate input
68
+ this.validateExecutionOptions(options);
69
+ // Get security profile
70
+ const profileName = options.securityProfile || this.config.defaultSecurityProfile;
71
+ const securityProfile = config_1.securityProfiles[profileName];
72
+ // Create isolated environment
73
+ const result = await this.executeInIsolate(options, securityProfile);
74
+ const executionTime = Date.now() - startTime;
75
+ result.executionTime = executionTime;
76
+ this.updateMetrics("executionTime", executionTime);
77
+ this.updateMetrics("successRate", result.success ? 1 : 0);
78
+ return result;
79
+ }
80
+ catch (error) {
81
+ const executionTime = Date.now() - startTime;
82
+ return {
83
+ success: false,
84
+ error: error instanceof Error ? error.message : String(error),
85
+ executionTime,
86
+ memoryUsed: 0,
87
+ timestamp: new Date(),
88
+ };
89
+ }
90
+ }
91
+ /**
92
+ * Execute code in isolated context
93
+ */
94
+ async executeInIsolate(options, securityProfile) {
95
+ const startTime = Date.now();
96
+ try {
97
+ // Create isolate with memory limit
98
+ const isolate = new ivm.Isolate({
99
+ memoryLimit: securityProfile.memoryLimit,
100
+ });
101
+ // Create context
102
+ const context = await isolate.createContext();
103
+ try {
104
+ // Setup execution
105
+ const script = await isolate.compileScript(options.code);
106
+ // Execute script
107
+ const result = await script.run(context, {
108
+ timeout: options.timeout || securityProfile.timeout,
109
+ });
110
+ // Get memory usage
111
+ const memoryUsed = await this.getMemoryUsage(isolate);
112
+ return {
113
+ success: true,
114
+ result: result,
115
+ executionTime: Date.now() - startTime,
116
+ memoryUsed,
117
+ timestamp: new Date(),
118
+ };
119
+ }
120
+ finally {
121
+ // Always dispose isolate
122
+ isolate.dispose();
123
+ }
124
+ }
125
+ catch (error) {
126
+ return {
127
+ success: false,
128
+ error: error instanceof Error ? error.message : String(error),
129
+ executionTime: Date.now() - startTime,
130
+ memoryUsed: 0,
131
+ timestamp: new Date(),
132
+ };
133
+ }
134
+ }
135
+ /**
136
+ * Get memory usage for isolate
137
+ */
138
+ async getMemoryUsage(isolate) {
139
+ try {
140
+ const stats = await isolate.getHeapStatistics();
141
+ return (stats.used_heap_size || 0) / (1024 * 1024); // MB
142
+ }
143
+ catch (error) {
144
+ return 0;
145
+ }
146
+ }
147
+ /**
148
+ * Validate execution options
149
+ */
150
+ validateExecutionOptions(options) {
151
+ if (!options.code || typeof options.code !== "string") {
152
+ throw new IsolatedRuntimeError("Code must be a non-empty string", "INVALID_CODE");
153
+ }
154
+ if (options.code.length > 1024 * 1024) {
155
+ throw new IsolatedRuntimeError("Code exceeds maximum size limit (1MB)", "CODE_TOO_LARGE");
156
+ }
157
+ const memoryLimit = options.memoryLimit || this.config.memoryLimit;
158
+ if (memoryLimit > 8) {
159
+ throw new IsolatedRuntimeError("Memory limit exceeds maximum allowed (8MB)", "MEMORY_LIMIT_EXCEEDED");
160
+ }
161
+ }
162
+ /**
163
+ * Update metrics tracking
164
+ */
165
+ updateMetrics(metric, value) {
166
+ if (!this.metrics.has(metric)) {
167
+ this.metrics.set(metric, []);
168
+ }
169
+ const values = this.metrics.get(metric);
170
+ values.push(value);
171
+ // Keep only last 100 values
172
+ if (values.length > 100) {
173
+ values.shift();
174
+ }
175
+ }
176
+ /**
177
+ * Get current metrics
178
+ */
179
+ getMetrics() {
180
+ return Object.fromEntries(this.metrics);
181
+ }
182
+ }
183
+ exports.SimpleIsolatedRuntimeManager = SimpleIsolatedRuntimeManager;
184
+ // Singleton instance
185
+ exports.runtimeManager = new SimpleIsolatedRuntimeManager();
186
+ exports.default = SimpleIsolatedRuntimeManager;
187
+ //# sourceMappingURL=simpleRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpleRuntime.js","sourceRoot":"","sources":["../../src/runtime/simpleRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { SecurityEvent } from "./monitor";
2
+ import { ThreatAnalysis } from "./threatDetector";
3
+ export interface DashboardConfig {
4
+ refreshInterval: number;
5
+ maxDisplayEvents: number;
6
+ highlightThreshold: number;
7
+ enableRealTimeUpdates: boolean;
8
+ }
9
+ export interface SecurityMetric {
10
+ timestamp: Date;
11
+ tenantId: string;
12
+ metricType: string;
13
+ value: number;
14
+ riskLevel: "low" | "medium" | "high" | "critical";
15
+ description: string;
16
+ }
17
+ export interface SecurityDashboardData {
18
+ summary: SecuritySummary;
19
+ activeAlerts: SecurityEvent[];
20
+ recentThreats: ThreatAnalysis[];
21
+ tenantMetrics: TenantMetrics;
22
+ complianceStatus: ComplianceStatus;
23
+ realTimeChart: RealTimeChartData;
24
+ }
25
+ export interface SecuritySummary {
26
+ totalEvents: number;
27
+ totalAlerts: number;
28
+ threatEvents: number;
29
+ blockedOperations: number;
30
+ securityScore: number;
31
+ lastUpdate: Date;
32
+ }
33
+ export interface TenantMetrics {
34
+ [tenantId: string]: {
35
+ totalOperations: number;
36
+ threatCount: number;
37
+ riskScore: number;
38
+ lastActivity: Date;
39
+ alerts: SecurityEvent[];
40
+ };
41
+ }
42
+ export interface ComplianceStatus {
43
+ lgpd: ComplianceMetric;
44
+ gdpr: ComplianceMetric;
45
+ audit: ComplianceMetric;
46
+ }
47
+ export interface ComplianceMetric {
48
+ status: "compliant" | "warning" | "violation";
49
+ events: number;
50
+ lastCheck: Date;
51
+ score: number;
52
+ }
53
+ export interface RealTimeChartData {
54
+ labels: string[];
55
+ datasets: {
56
+ label: string;
57
+ data: number[];
58
+ borderColor: string;
59
+ backgroundColor: string;
60
+ }[];
61
+ }
62
+ export declare class SecurityDashboard {
63
+ private config;
64
+ private events;
65
+ private metrics;
66
+ private startTime;
67
+ private updateInterval;
68
+ constructor(config?: Partial<DashboardConfig>);
69
+ initialize(): void;
70
+ private startRealTimeUpdates;
71
+ stopRealTimeUpdates(): void;
72
+ addEvent(event: SecurityEvent): void;
73
+ addMetric(metric: SecurityMetric): void;
74
+ generateMetrics(): void;
75
+ private calculateSecurityScore;
76
+ private generateTenantMetrics;
77
+ private calculateTenantRiskScore;
78
+ private generateComplianceStatus;
79
+ private generateRealTimeChart;
80
+ private getActiveAlerts;
81
+ private getRecentThreats;
82
+ private logDashboardUpdate;
83
+ getDashboardData(): SecurityDashboardData;
84
+ getSecurityMetrics(): SecurityMetric[];
85
+ getEventHistory(limit?: number): SecurityEvent[];
86
+ exportDashboardReport(): string;
87
+ }
88
+ export declare const securityDashboard: SecurityDashboard;
89
+ //# sourceMappingURL=dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/security/dashboard.ts"],"names":[],"mappings":"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"}