@sparkleideas/security 3.0.0-alpha.22 → 3.0.0-alpha.49

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 (54) hide show
  1. package/dist/CVE-REMEDIATION.d.ts +86 -0
  2. package/dist/CVE-REMEDIATION.d.ts.map +1 -0
  3. package/dist/CVE-REMEDIATION.js +221 -0
  4. package/dist/CVE-REMEDIATION.js.map +1 -0
  5. package/dist/application/index.d.ts +7 -0
  6. package/dist/application/index.d.ts.map +1 -0
  7. package/dist/application/index.js +7 -0
  8. package/dist/application/index.js.map +1 -0
  9. package/dist/application/services/security-application-service.d.ts +71 -0
  10. package/dist/application/services/security-application-service.d.ts.map +1 -0
  11. package/dist/application/services/security-application-service.js +153 -0
  12. package/dist/application/services/security-application-service.js.map +1 -0
  13. package/dist/credential-generator.d.ts +176 -0
  14. package/dist/credential-generator.d.ts.map +1 -0
  15. package/dist/credential-generator.js +272 -0
  16. package/dist/credential-generator.js.map +1 -0
  17. package/dist/domain/entities/security-context.d.ts +68 -0
  18. package/dist/domain/entities/security-context.d.ts.map +1 -0
  19. package/dist/domain/entities/security-context.js +132 -0
  20. package/dist/domain/entities/security-context.js.map +1 -0
  21. package/dist/domain/index.d.ts +8 -0
  22. package/dist/domain/index.d.ts.map +1 -0
  23. package/dist/domain/index.js +8 -0
  24. package/dist/domain/index.js.map +1 -0
  25. package/dist/domain/services/security-domain-service.d.ts +71 -0
  26. package/dist/domain/services/security-domain-service.d.ts.map +1 -0
  27. package/dist/domain/services/security-domain-service.js +237 -0
  28. package/dist/domain/services/security-domain-service.js.map +1 -0
  29. package/dist/index.d.ts +119 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +145 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/input-validator.d.ts +338 -0
  34. package/dist/input-validator.d.ts.map +1 -0
  35. package/dist/input-validator.js +393 -0
  36. package/dist/input-validator.js.map +1 -0
  37. package/dist/password-hasher.d.ts +128 -0
  38. package/dist/password-hasher.d.ts.map +1 -0
  39. package/dist/password-hasher.js +183 -0
  40. package/dist/password-hasher.js.map +1 -0
  41. package/dist/path-validator.d.ts +148 -0
  42. package/dist/path-validator.d.ts.map +1 -0
  43. package/dist/path-validator.js +421 -0
  44. package/dist/path-validator.js.map +1 -0
  45. package/dist/safe-executor.d.ts +173 -0
  46. package/dist/safe-executor.d.ts.map +1 -0
  47. package/dist/safe-executor.js +370 -0
  48. package/dist/safe-executor.js.map +1 -0
  49. package/dist/token-generator.d.ts +224 -0
  50. package/dist/token-generator.d.ts.map +1 -0
  51. package/dist/token-generator.js +351 -0
  52. package/dist/token-generator.js.map +1 -0
  53. package/package.json +1 -1
  54. package/tsconfig.build.tsbuildinfo +1 -0
@@ -0,0 +1,338 @@
1
+ /**
2
+ * Input Validator - Comprehensive Input Validation
3
+ *
4
+ * Provides Zod-based validation schemas for all security-critical inputs.
5
+ *
6
+ * Security Properties:
7
+ * - Type-safe validation
8
+ * - Custom error messages
9
+ * - Sanitization transforms
10
+ * - Reusable schemas
11
+ *
12
+ * @module v3/security/input-validator
13
+ */
14
+ import { z } from 'zod';
15
+ /**
16
+ * Common validation patterns as reusable regex
17
+ */
18
+ declare const PATTERNS: {
19
+ SAFE_IDENTIFIER: RegExp;
20
+ SAFE_FILENAME: RegExp;
21
+ SAFE_PATH_SEGMENT: RegExp;
22
+ NO_SHELL_CHARS: RegExp;
23
+ SEMVER: RegExp;
24
+ };
25
+ /**
26
+ * Validation limits
27
+ */
28
+ declare const LIMITS: {
29
+ MIN_PASSWORD_LENGTH: number;
30
+ MAX_PASSWORD_LENGTH: number;
31
+ MAX_EMAIL_LENGTH: number;
32
+ MAX_IDENTIFIER_LENGTH: number;
33
+ MAX_PATH_LENGTH: number;
34
+ MAX_CONTENT_LENGTH: number;
35
+ MAX_ARRAY_LENGTH: number;
36
+ MAX_OBJECT_KEYS: number;
37
+ };
38
+ /**
39
+ * Safe string that cannot contain shell metacharacters
40
+ */
41
+ export declare const SafeStringSchema: z.ZodString;
42
+ /**
43
+ * Safe identifier for IDs, names, etc.
44
+ */
45
+ export declare const IdentifierSchema: z.ZodString;
46
+ /**
47
+ * Safe filename
48
+ */
49
+ export declare const FilenameSchema: z.ZodString;
50
+ /**
51
+ * Email schema with length limit
52
+ */
53
+ export declare const EmailSchema: z.ZodString;
54
+ /**
55
+ * Password schema with complexity requirements
56
+ */
57
+ export declare const PasswordSchema: z.ZodString;
58
+ /**
59
+ * UUID schema
60
+ */
61
+ export declare const UUIDSchema: z.ZodString;
62
+ /**
63
+ * URL schema with HTTPS enforcement
64
+ */
65
+ export declare const HttpsUrlSchema: z.ZodString;
66
+ /**
67
+ * URL schema (allows HTTP for development)
68
+ */
69
+ export declare const UrlSchema: z.ZodString;
70
+ /**
71
+ * Semantic version schema
72
+ */
73
+ export declare const SemverSchema: z.ZodString;
74
+ /**
75
+ * Port number schema
76
+ */
77
+ export declare const PortSchema: z.ZodNumber;
78
+ /**
79
+ * IP address schema (v4)
80
+ */
81
+ export declare const IPv4Schema: any;
82
+ /**
83
+ * IP address schema (v4 or v6)
84
+ */
85
+ export declare const IPSchema: any;
86
+ /**
87
+ * User role schema
88
+ */
89
+ export declare const UserRoleSchema: z.ZodEnum<{
90
+ admin: "admin";
91
+ operator: "operator";
92
+ developer: "developer";
93
+ viewer: "viewer";
94
+ service: "service";
95
+ }>;
96
+ /**
97
+ * Permission schema
98
+ */
99
+ export declare const PermissionSchema: z.ZodEnum<{
100
+ "swarm.create": "swarm.create";
101
+ "swarm.read": "swarm.read";
102
+ "swarm.update": "swarm.update";
103
+ "swarm.delete": "swarm.delete";
104
+ "swarm.scale": "swarm.scale";
105
+ "agent.spawn": "agent.spawn";
106
+ "agent.read": "agent.read";
107
+ "agent.terminate": "agent.terminate";
108
+ "task.create": "task.create";
109
+ "task.read": "task.read";
110
+ "task.cancel": "task.cancel";
111
+ "metrics.read": "metrics.read";
112
+ "system.admin": "system.admin";
113
+ "api.access": "api.access";
114
+ }>;
115
+ /**
116
+ * Login request schema
117
+ */
118
+ export declare const LoginRequestSchema: z.ZodObject<{
119
+ email: z.ZodString;
120
+ password: z.ZodString;
121
+ mfaCode: z.ZodOptional<z.ZodString>;
122
+ }, z.core.$strip>;
123
+ /**
124
+ * User creation schema
125
+ */
126
+ export declare const CreateUserSchema: z.ZodObject<{
127
+ email: z.ZodString;
128
+ password: z.ZodString;
129
+ role: z.ZodEnum<{
130
+ admin: "admin";
131
+ operator: "operator";
132
+ developer: "developer";
133
+ viewer: "viewer";
134
+ service: "service";
135
+ }>;
136
+ permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
137
+ "swarm.create": "swarm.create";
138
+ "swarm.read": "swarm.read";
139
+ "swarm.update": "swarm.update";
140
+ "swarm.delete": "swarm.delete";
141
+ "swarm.scale": "swarm.scale";
142
+ "agent.spawn": "agent.spawn";
143
+ "agent.read": "agent.read";
144
+ "agent.terminate": "agent.terminate";
145
+ "task.create": "task.create";
146
+ "task.read": "task.read";
147
+ "task.cancel": "task.cancel";
148
+ "metrics.read": "metrics.read";
149
+ "system.admin": "system.admin";
150
+ "api.access": "api.access";
151
+ }>>>;
152
+ isActive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
153
+ }, z.core.$strip>;
154
+ /**
155
+ * API key creation schema
156
+ */
157
+ export declare const CreateApiKeySchema: z.ZodObject<{
158
+ name: z.ZodString;
159
+ permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
160
+ "swarm.create": "swarm.create";
161
+ "swarm.read": "swarm.read";
162
+ "swarm.update": "swarm.update";
163
+ "swarm.delete": "swarm.delete";
164
+ "swarm.scale": "swarm.scale";
165
+ "agent.spawn": "agent.spawn";
166
+ "agent.read": "agent.read";
167
+ "agent.terminate": "agent.terminate";
168
+ "task.create": "task.create";
169
+ "task.read": "task.read";
170
+ "task.cancel": "task.cancel";
171
+ "metrics.read": "metrics.read";
172
+ "system.admin": "system.admin";
173
+ "api.access": "api.access";
174
+ }>>>;
175
+ expiresAt: z.ZodOptional<z.ZodDate>;
176
+ }, z.core.$strip>;
177
+ /**
178
+ * Agent type schema
179
+ */
180
+ export declare const AgentTypeSchema: z.ZodEnum<{
181
+ coder: "coder";
182
+ reviewer: "reviewer";
183
+ tester: "tester";
184
+ planner: "planner";
185
+ researcher: "researcher";
186
+ "security-architect": "security-architect";
187
+ "security-auditor": "security-auditor";
188
+ "memory-specialist": "memory-specialist";
189
+ "swarm-specialist": "swarm-specialist";
190
+ "integration-architect": "integration-architect";
191
+ "performance-engineer": "performance-engineer";
192
+ "core-architect": "core-architect";
193
+ "test-architect": "test-architect";
194
+ "queen-coordinator": "queen-coordinator";
195
+ "project-coordinator": "project-coordinator";
196
+ }>;
197
+ /**
198
+ * Agent spawn request schema
199
+ */
200
+ export declare const SpawnAgentSchema: z.ZodObject<{
201
+ type: z.ZodEnum<{
202
+ coder: "coder";
203
+ reviewer: "reviewer";
204
+ tester: "tester";
205
+ planner: "planner";
206
+ researcher: "researcher";
207
+ "security-architect": "security-architect";
208
+ "security-auditor": "security-auditor";
209
+ "memory-specialist": "memory-specialist";
210
+ "swarm-specialist": "swarm-specialist";
211
+ "integration-architect": "integration-architect";
212
+ "performance-engineer": "performance-engineer";
213
+ "core-architect": "core-architect";
214
+ "test-architect": "test-architect";
215
+ "queen-coordinator": "queen-coordinator";
216
+ "project-coordinator": "project-coordinator";
217
+ }>;
218
+ id: z.ZodOptional<z.ZodString>;
219
+ config: z.ZodOptional<z.ZodRecord<z.core.$ZodRecordKey, z.core.SomeType>>;
220
+ timeout: z.ZodOptional<z.ZodNumber>;
221
+ }, z.core.$strip>;
222
+ /**
223
+ * Task input schema
224
+ */
225
+ export declare const TaskInputSchema: z.ZodObject<{
226
+ taskId: z.ZodString;
227
+ content: z.ZodString;
228
+ agentType: z.ZodEnum<{
229
+ coder: "coder";
230
+ reviewer: "reviewer";
231
+ tester: "tester";
232
+ planner: "planner";
233
+ researcher: "researcher";
234
+ "security-architect": "security-architect";
235
+ "security-auditor": "security-auditor";
236
+ "memory-specialist": "memory-specialist";
237
+ "swarm-specialist": "swarm-specialist";
238
+ "integration-architect": "integration-architect";
239
+ "performance-engineer": "performance-engineer";
240
+ "core-architect": "core-architect";
241
+ "test-architect": "test-architect";
242
+ "queen-coordinator": "queen-coordinator";
243
+ "project-coordinator": "project-coordinator";
244
+ }>;
245
+ priority: z.ZodOptional<z.ZodEnum<{
246
+ critical: "critical";
247
+ high: "high";
248
+ medium: "medium";
249
+ low: "low";
250
+ }>>;
251
+ metadata: z.ZodOptional<z.ZodRecord<z.core.$ZodRecordKey, z.core.SomeType>>;
252
+ }, z.core.$strip>;
253
+ /**
254
+ * Command argument schema
255
+ */
256
+ export declare const CommandArgumentSchema: z.ZodString;
257
+ /**
258
+ * Path schema
259
+ */
260
+ export declare const PathSchema: z.ZodString;
261
+ /**
262
+ * Security configuration schema
263
+ */
264
+ export declare const SecurityConfigSchema: z.ZodObject<{
265
+ bcryptRounds: z.ZodDefault<z.ZodNumber>;
266
+ jwtExpiresIn: z.ZodDefault<z.ZodString>;
267
+ sessionTimeout: z.ZodDefault<z.ZodNumber>;
268
+ maxLoginAttempts: z.ZodDefault<z.ZodNumber>;
269
+ lockoutDuration: z.ZodDefault<z.ZodNumber>;
270
+ requireMFA: z.ZodDefault<z.ZodBoolean>;
271
+ }, z.core.$strip>;
272
+ /**
273
+ * Executor configuration schema
274
+ */
275
+ export declare const ExecutorConfigSchema: z.ZodObject<{
276
+ allowedCommands: z.ZodArray<z.ZodString>;
277
+ blockedPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
278
+ timeout: z.ZodDefault<z.ZodNumber>;
279
+ maxBuffer: z.ZodDefault<z.ZodNumber>;
280
+ cwd: z.ZodOptional<z.ZodString>;
281
+ allowSudo: z.ZodDefault<z.ZodBoolean>;
282
+ }, z.core.$strip>;
283
+ /**
284
+ * Sanitizes a string by removing dangerous characters
285
+ */
286
+ export declare function sanitizeString(input: string): string;
287
+ /**
288
+ * Sanitizes HTML entities
289
+ */
290
+ export declare function sanitizeHtml(input: string): string;
291
+ /**
292
+ * Sanitizes a path by removing traversal patterns
293
+ */
294
+ export declare function sanitizePath(input: string): string;
295
+ export declare class InputValidator {
296
+ /**
297
+ * Validates input against a schema
298
+ */
299
+ static validate<T>(schema: z.ZodSchema<T>, input: unknown): T;
300
+ /**
301
+ * Safely validates input, returning result
302
+ */
303
+ static safeParse<T>(schema: z.ZodSchema<T>, input: unknown): z.SafeParseReturnType<unknown, T>;
304
+ /**
305
+ * Validates email
306
+ */
307
+ static validateEmail(email: string): string;
308
+ /**
309
+ * Validates password
310
+ */
311
+ static validatePassword(password: string): string;
312
+ /**
313
+ * Validates identifier
314
+ */
315
+ static validateIdentifier(id: string): string;
316
+ /**
317
+ * Validates path
318
+ */
319
+ static validatePath(path: string): string;
320
+ /**
321
+ * Validates command argument
322
+ */
323
+ static validateCommandArg(arg: string): string;
324
+ /**
325
+ * Validates login request
326
+ */
327
+ static validateLoginRequest(data: unknown): z.infer<typeof LoginRequestSchema>;
328
+ /**
329
+ * Validates user creation request
330
+ */
331
+ static validateCreateUser(data: unknown): z.infer<typeof CreateUserSchema>;
332
+ /**
333
+ * Validates task input
334
+ */
335
+ static validateTaskInput(data: unknown): z.infer<typeof TaskInputSchema>;
336
+ }
337
+ export { z, PATTERNS, LIMITS, };
338
+ //# sourceMappingURL=input-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-validator.d.ts","sourceRoot":"","sources":["../src/input-validator.ts"],"names":[],"mappings":"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"}