@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.
- package/dist/CVE-REMEDIATION.d.ts +86 -0
- package/dist/CVE-REMEDIATION.d.ts.map +1 -0
- package/dist/CVE-REMEDIATION.js +221 -0
- package/dist/CVE-REMEDIATION.js.map +1 -0
- package/dist/application/index.d.ts +7 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +7 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/services/security-application-service.d.ts +71 -0
- package/dist/application/services/security-application-service.d.ts.map +1 -0
- package/dist/application/services/security-application-service.js +153 -0
- package/dist/application/services/security-application-service.js.map +1 -0
- package/dist/credential-generator.d.ts +176 -0
- package/dist/credential-generator.d.ts.map +1 -0
- package/dist/credential-generator.js +272 -0
- package/dist/credential-generator.js.map +1 -0
- package/dist/domain/entities/security-context.d.ts +68 -0
- package/dist/domain/entities/security-context.d.ts.map +1 -0
- package/dist/domain/entities/security-context.js +132 -0
- package/dist/domain/entities/security-context.js.map +1 -0
- package/dist/domain/index.d.ts +8 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +8 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/services/security-domain-service.d.ts +71 -0
- package/dist/domain/services/security-domain-service.d.ts.map +1 -0
- package/dist/domain/services/security-domain-service.js +237 -0
- package/dist/domain/services/security-domain-service.js.map +1 -0
- package/dist/index.d.ts +119 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +145 -0
- package/dist/index.js.map +1 -0
- package/dist/input-validator.d.ts +338 -0
- package/dist/input-validator.d.ts.map +1 -0
- package/dist/input-validator.js +393 -0
- package/dist/input-validator.js.map +1 -0
- package/dist/password-hasher.d.ts +128 -0
- package/dist/password-hasher.d.ts.map +1 -0
- package/dist/password-hasher.js +183 -0
- package/dist/password-hasher.js.map +1 -0
- package/dist/path-validator.d.ts +148 -0
- package/dist/path-validator.d.ts.map +1 -0
- package/dist/path-validator.js +421 -0
- package/dist/path-validator.js.map +1 -0
- package/dist/safe-executor.d.ts +173 -0
- package/dist/safe-executor.d.ts.map +1 -0
- package/dist/safe-executor.js +370 -0
- package/dist/safe-executor.js.map +1 -0
- package/dist/token-generator.d.ts +224 -0
- package/dist/token-generator.d.ts.map +1 -0
- package/dist/token-generator.js +351 -0
- package/dist/token-generator.js.map +1 -0
- package/package.json +1 -1
- 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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"}
|