@freshguard/freshguard-core 0.13.2 → 0.15.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 (196) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/README.md +74 -1
  3. package/SKILL.md +229 -0
  4. package/dist/cli/index.d.ts +13 -0
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +74 -1
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/connectors/azure-sql.d.ts +121 -0
  9. package/dist/connectors/azure-sql.d.ts.map +1 -0
  10. package/dist/connectors/azure-sql.js +489 -0
  11. package/dist/connectors/azure-sql.js.map +1 -0
  12. package/dist/connectors/base-connector.d.ts +139 -0
  13. package/dist/connectors/base-connector.d.ts.map +1 -1
  14. package/dist/connectors/base-connector.js +160 -3
  15. package/dist/connectors/base-connector.js.map +1 -1
  16. package/dist/connectors/bigquery.d.ts +100 -0
  17. package/dist/connectors/bigquery.d.ts.map +1 -1
  18. package/dist/connectors/bigquery.js +143 -2
  19. package/dist/connectors/bigquery.js.map +1 -1
  20. package/dist/connectors/duckdb.d.ts +96 -0
  21. package/dist/connectors/duckdb.d.ts.map +1 -1
  22. package/dist/connectors/duckdb.js +144 -7
  23. package/dist/connectors/duckdb.js.map +1 -1
  24. package/dist/connectors/index.d.ts +28 -0
  25. package/dist/connectors/index.d.ts.map +1 -1
  26. package/dist/connectors/index.js +28 -0
  27. package/dist/connectors/index.js.map +1 -1
  28. package/dist/connectors/mssql.d.ts +119 -0
  29. package/dist/connectors/mssql.d.ts.map +1 -0
  30. package/dist/connectors/mssql.js +483 -0
  31. package/dist/connectors/mssql.js.map +1 -0
  32. package/dist/connectors/mysql.d.ts +85 -0
  33. package/dist/connectors/mysql.d.ts.map +1 -1
  34. package/dist/connectors/mysql.js +118 -3
  35. package/dist/connectors/mysql.js.map +1 -1
  36. package/dist/connectors/postgres.d.ts +85 -0
  37. package/dist/connectors/postgres.d.ts.map +1 -1
  38. package/dist/connectors/postgres.js +113 -6
  39. package/dist/connectors/postgres.js.map +1 -1
  40. package/dist/connectors/redshift.d.ts +90 -0
  41. package/dist/connectors/redshift.d.ts.map +1 -1
  42. package/dist/connectors/redshift.js +131 -7
  43. package/dist/connectors/redshift.js.map +1 -1
  44. package/dist/connectors/snowflake.d.ts +108 -0
  45. package/dist/connectors/snowflake.d.ts.map +1 -1
  46. package/dist/connectors/snowflake.js +137 -3
  47. package/dist/connectors/snowflake.js.map +1 -1
  48. package/dist/connectors/synapse.d.ts +123 -0
  49. package/dist/connectors/synapse.d.ts.map +1 -0
  50. package/dist/connectors/synapse.js +495 -0
  51. package/dist/connectors/synapse.js.map +1 -0
  52. package/dist/db/index.d.ts +25 -0
  53. package/dist/db/index.d.ts.map +1 -1
  54. package/dist/db/index.js +23 -0
  55. package/dist/db/index.js.map +1 -1
  56. package/dist/db/migrate.d.ts +23 -0
  57. package/dist/db/migrate.d.ts.map +1 -1
  58. package/dist/db/migrate.js +38 -0
  59. package/dist/db/migrate.js.map +1 -1
  60. package/dist/db/schema.d.ts +11 -0
  61. package/dist/db/schema.d.ts.map +1 -1
  62. package/dist/db/schema.js +70 -0
  63. package/dist/db/schema.js.map +1 -1
  64. package/dist/errors/debug-factory.d.ts +38 -0
  65. package/dist/errors/debug-factory.d.ts.map +1 -1
  66. package/dist/errors/debug-factory.js +40 -0
  67. package/dist/errors/debug-factory.js.map +1 -1
  68. package/dist/errors/index.d.ts +59 -0
  69. package/dist/errors/index.d.ts.map +1 -1
  70. package/dist/errors/index.js +110 -7
  71. package/dist/errors/index.js.map +1 -1
  72. package/dist/index.d.ts +32 -1
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +37 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/metadata/duckdb-storage.d.ts +3 -0
  77. package/dist/metadata/duckdb-storage.d.ts.map +1 -1
  78. package/dist/metadata/duckdb-storage.js +6 -0
  79. package/dist/metadata/duckdb-storage.js.map +1 -1
  80. package/dist/metadata/factory.d.ts +30 -0
  81. package/dist/metadata/factory.d.ts.map +1 -1
  82. package/dist/metadata/factory.js +31 -0
  83. package/dist/metadata/factory.js.map +1 -1
  84. package/dist/metadata/index.d.ts +26 -0
  85. package/dist/metadata/index.d.ts.map +1 -1
  86. package/dist/metadata/index.js +26 -0
  87. package/dist/metadata/index.js.map +1 -1
  88. package/dist/metadata/interface.d.ts +33 -0
  89. package/dist/metadata/interface.d.ts.map +1 -1
  90. package/dist/metadata/interface.js +3 -0
  91. package/dist/metadata/interface.js.map +1 -1
  92. package/dist/metadata/postgresql-storage.d.ts +3 -0
  93. package/dist/metadata/postgresql-storage.d.ts.map +1 -1
  94. package/dist/metadata/postgresql-storage.js +12 -2
  95. package/dist/metadata/postgresql-storage.js.map +1 -1
  96. package/dist/metadata/schema-config.d.ts +53 -0
  97. package/dist/metadata/schema-config.d.ts.map +1 -1
  98. package/dist/metadata/schema-config.js +64 -0
  99. package/dist/metadata/schema-config.js.map +1 -1
  100. package/dist/metadata/types.d.ts +3 -0
  101. package/dist/metadata/types.d.ts.map +1 -1
  102. package/dist/metadata/types.js +3 -0
  103. package/dist/metadata/types.js.map +1 -1
  104. package/dist/monitor/baseline-calculator.d.ts +56 -0
  105. package/dist/monitor/baseline-calculator.d.ts.map +1 -1
  106. package/dist/monitor/baseline-calculator.js +72 -0
  107. package/dist/monitor/baseline-calculator.js.map +1 -1
  108. package/dist/monitor/baseline-config.d.ts +77 -0
  109. package/dist/monitor/baseline-config.d.ts.map +1 -1
  110. package/dist/monitor/baseline-config.js +79 -1
  111. package/dist/monitor/baseline-config.js.map +1 -1
  112. package/dist/monitor/freshness.d.ts +40 -0
  113. package/dist/monitor/freshness.d.ts.map +1 -1
  114. package/dist/monitor/freshness.js +82 -3
  115. package/dist/monitor/freshness.js.map +1 -1
  116. package/dist/monitor/index.d.ts +29 -0
  117. package/dist/monitor/index.d.ts.map +1 -1
  118. package/dist/monitor/index.js +29 -0
  119. package/dist/monitor/index.js.map +1 -1
  120. package/dist/monitor/schema-baseline.d.ts +45 -0
  121. package/dist/monitor/schema-baseline.d.ts.map +1 -1
  122. package/dist/monitor/schema-baseline.js +63 -5
  123. package/dist/monitor/schema-baseline.js.map +1 -1
  124. package/dist/monitor/schema-changes.d.ts +45 -0
  125. package/dist/monitor/schema-changes.d.ts.map +1 -1
  126. package/dist/monitor/schema-changes.js +85 -0
  127. package/dist/monitor/schema-changes.js.map +1 -1
  128. package/dist/monitor/volume.d.ts +43 -0
  129. package/dist/monitor/volume.d.ts.map +1 -1
  130. package/dist/monitor/volume.js +89 -0
  131. package/dist/monitor/volume.js.map +1 -1
  132. package/dist/observability/logger.d.ts +91 -0
  133. package/dist/observability/logger.d.ts.map +1 -1
  134. package/dist/observability/logger.js +108 -0
  135. package/dist/observability/logger.js.map +1 -1
  136. package/dist/observability/metrics.d.ts +140 -0
  137. package/dist/observability/metrics.d.ts.map +1 -1
  138. package/dist/observability/metrics.js +184 -7
  139. package/dist/observability/metrics.js.map +1 -1
  140. package/dist/resilience/circuit-breaker.d.ts +112 -2
  141. package/dist/resilience/circuit-breaker.d.ts.map +1 -1
  142. package/dist/resilience/circuit-breaker.js +140 -6
  143. package/dist/resilience/circuit-breaker.js.map +1 -1
  144. package/dist/resilience/index.d.ts +9 -0
  145. package/dist/resilience/index.d.ts.map +1 -1
  146. package/dist/resilience/index.js +13 -0
  147. package/dist/resilience/index.js.map +1 -1
  148. package/dist/resilience/retry-policy.d.ts +105 -0
  149. package/dist/resilience/retry-policy.d.ts.map +1 -1
  150. package/dist/resilience/retry-policy.js +158 -7
  151. package/dist/resilience/retry-policy.js.map +1 -1
  152. package/dist/resilience/timeout-manager.d.ts +137 -0
  153. package/dist/resilience/timeout-manager.d.ts.map +1 -1
  154. package/dist/resilience/timeout-manager.js +151 -4
  155. package/dist/resilience/timeout-manager.js.map +1 -1
  156. package/dist/security/query-analyzer.d.ts +124 -0
  157. package/dist/security/query-analyzer.d.ts.map +1 -1
  158. package/dist/security/query-analyzer.js +150 -9
  159. package/dist/security/query-analyzer.js.map +1 -1
  160. package/dist/security/schema-cache.d.ts +152 -0
  161. package/dist/security/schema-cache.d.ts.map +1 -1
  162. package/dist/security/schema-cache.js +144 -12
  163. package/dist/security/schema-cache.js.map +1 -1
  164. package/dist/types/connector.d.ts +68 -1
  165. package/dist/types/connector.d.ts.map +1 -1
  166. package/dist/types/connector.js +38 -15
  167. package/dist/types/connector.js.map +1 -1
  168. package/dist/types/driver-results.d.ts +28 -0
  169. package/dist/types/driver-results.d.ts.map +1 -1
  170. package/dist/types/driver-results.js +12 -0
  171. package/dist/types/driver-results.js.map +1 -1
  172. package/dist/types.d.ts +113 -1
  173. package/dist/types.d.ts.map +1 -1
  174. package/dist/types.js +8 -0
  175. package/dist/types.js.map +1 -1
  176. package/dist/validation/index.d.ts +8 -0
  177. package/dist/validation/index.d.ts.map +1 -1
  178. package/dist/validation/index.js +12 -0
  179. package/dist/validation/index.js.map +1 -1
  180. package/dist/validation/runtime-validator.d.ts +98 -0
  181. package/dist/validation/runtime-validator.d.ts.map +1 -1
  182. package/dist/validation/runtime-validator.js +114 -1
  183. package/dist/validation/runtime-validator.js.map +1 -1
  184. package/dist/validation/sanitizers.d.ts +59 -0
  185. package/dist/validation/sanitizers.d.ts.map +1 -1
  186. package/dist/validation/sanitizers.js +104 -20
  187. package/dist/validation/sanitizers.js.map +1 -1
  188. package/dist/validation/schemas.d.ts +73 -0
  189. package/dist/validation/schemas.d.ts.map +1 -1
  190. package/dist/validation/schemas.js +132 -5
  191. package/dist/validation/schemas.js.map +1 -1
  192. package/dist/validators/index.d.ts +54 -0
  193. package/dist/validators/index.d.ts.map +1 -1
  194. package/dist/validators/index.js +93 -2
  195. package/dist/validators/index.js.map +1 -1
  196. package/package.json +6 -2
@@ -1,5 +1,16 @@
1
+ /**
2
+ * Runtime validation utilities for FreshGuard Core Phase 2
3
+ *
4
+ * Provides structured error handling and runtime validation using Zod schemas
5
+ * with enhanced error formatting and type safety.
6
+ *
7
+ * @license MIT
8
+ */
1
9
  import { z } from 'zod';
2
10
  import { schemas } from './schemas.js';
11
+ /**
12
+ * Enhanced error class for validation failures
13
+ */
3
14
  export class ValidationException extends Error {
4
15
  errors;
5
16
  timestamp;
@@ -10,11 +21,17 @@ export class ValidationException extends Error {
10
21
  this.errors = errors;
11
22
  this.timestamp = new Date();
12
23
  }
24
+ /**
25
+ * Get error messages as a formatted string
26
+ */
13
27
  getFormattedErrors() {
14
28
  return this.errors
15
29
  .map(error => `${error.field}: ${error.message}`)
16
30
  .join(', ');
17
31
  }
32
+ /**
33
+ * Convert to JSON for logging/API responses
34
+ */
18
35
  toJSON() {
19
36
  return {
20
37
  name: this.name,
@@ -24,14 +41,26 @@ export class ValidationException extends Error {
24
41
  };
25
42
  }
26
43
  }
44
+ // ==============================================
45
+ // Error Formatting Utilities
46
+ // ==============================================
47
+ /**
48
+ * Format Zod errors into structured validation errors
49
+ */
27
50
  function formatZodErrors(zodError) {
28
51
  return zodError.issues.map((issue) => ({
29
52
  field: issue.path.join('.') || 'root',
30
53
  code: issue.code,
31
54
  message: issue.message,
32
- value: issue.path.length > 0 ? undefined : ('received' in issue ? issue.received : undefined)
55
+ value: issue.path.length > 0 ? undefined : ('received' in issue ? issue.received : undefined) // Don't include sensitive values
33
56
  }));
34
57
  }
58
+ // ==============================================
59
+ // Runtime Validator Class
60
+ // ==============================================
61
+ /**
62
+ * Runtime validator with structured error handling and caching
63
+ */
35
64
  export class RuntimeValidator {
36
65
  schemaCache = new Map();
37
66
  validationStats = {
@@ -40,6 +69,7 @@ export class RuntimeValidator {
40
69
  failures: 0
41
70
  };
42
71
  constructor() {
72
+ // Pre-populate schema cache with commonly used schemas
43
73
  this.schemaCache.set('TableName', schemas.TableNameSchema);
44
74
  this.schemaCache.set('ColumnName', schemas.ColumnNameSchema);
45
75
  this.schemaCache.set('BaseConnectorConfig', schemas.BaseConnectorConfigSchema);
@@ -48,6 +78,9 @@ export class RuntimeValidator {
48
78
  this.schemaCache.set('BigQueryConnectorConfig', schemas.BigQueryConnectorConfigSchema);
49
79
  this.schemaCache.set('SnowflakeConnectorConfig', schemas.SnowflakeConnectorConfigSchema);
50
80
  }
81
+ /**
82
+ * Validate data against a Zod schema with structured error handling
83
+ */
51
84
  validate(schema, data) {
52
85
  this.validationStats.total++;
53
86
  try {
@@ -67,6 +100,7 @@ export class RuntimeValidator {
67
100
  errors: validationErrors
68
101
  };
69
102
  }
103
+ // Handle non-Zod errors
70
104
  return {
71
105
  success: false,
72
106
  errors: [{
@@ -77,6 +111,9 @@ export class RuntimeValidator {
77
111
  };
78
112
  }
79
113
  }
114
+ /**
115
+ * Validate and throw exception on failure (for convenience)
116
+ */
80
117
  validateOrThrow(schema, data, context) {
81
118
  const result = this.validate(schema, data);
82
119
  if (!result.success) {
@@ -87,16 +124,28 @@ export class RuntimeValidator {
87
124
  }
88
125
  return result.data;
89
126
  }
127
+ /**
128
+ * Validate table name
129
+ */
90
130
  validateTableName(name) {
91
131
  return this.validate(schemas.TableNameSchema, name);
92
132
  }
133
+ /**
134
+ * Validate column name
135
+ */
93
136
  validateColumnName(name) {
94
137
  return this.validate(schemas.ColumnNameSchema, name);
95
138
  }
139
+ /**
140
+ * Validate database identifier (table or column)
141
+ */
96
142
  validateDatabaseIdentifier(identifier, type = 'table') {
97
143
  const schema = type === 'table' ? schemas.TableNameSchema : schemas.ColumnNameSchema;
98
144
  return this.validate(schema, identifier);
99
145
  }
146
+ /**
147
+ * Validate connector configuration
148
+ */
100
149
  validateConnectorConfig(config, type) {
101
150
  let schema;
102
151
  switch (type) {
@@ -117,21 +166,39 @@ export class RuntimeValidator {
117
166
  }
118
167
  return this.validate(schema, config);
119
168
  }
169
+ /**
170
+ * Validate and sanitize string input
171
+ */
120
172
  validateSanitizedString(input) {
121
173
  return this.validate(schemas.SanitizedStringSchema, input);
122
174
  }
175
+ /**
176
+ * Validate SQL LIMIT value
177
+ */
123
178
  validateLimit(limit) {
124
179
  return this.validate(schemas.LimitSchema, limit);
125
180
  }
181
+ /**
182
+ * Validate connection string
183
+ */
126
184
  validateConnectionString(connectionString) {
127
185
  return this.validate(schemas.ConnectionStringSchema, connectionString);
128
186
  }
187
+ /**
188
+ * Validate freshness monitoring rule
189
+ */
129
190
  validateFreshnessRule(rule) {
130
191
  return this.validate(schemas.FreshnessRuleSchema, rule);
131
192
  }
193
+ /**
194
+ * Validate volume anomaly monitoring rule
195
+ */
132
196
  validateVolumeRule(rule) {
133
197
  return this.validate(schemas.VolumeRuleSchema, rule);
134
198
  }
199
+ /**
200
+ * Validate multiple values at once
201
+ */
135
202
  validateBatch(schema, items) {
136
203
  const valid = [];
137
204
  const invalid = [];
@@ -146,6 +213,9 @@ export class RuntimeValidator {
146
213
  });
147
214
  return { valid, invalid };
148
215
  }
216
+ /**
217
+ * Get validation statistics
218
+ */
149
219
  getStats() {
150
220
  return {
151
221
  ...this.validationStats,
@@ -154,6 +224,9 @@ export class RuntimeValidator {
154
224
  : '0%'
155
225
  };
156
226
  }
227
+ /**
228
+ * Reset validation statistics
229
+ */
157
230
  resetStats() {
158
231
  this.validationStats = {
159
232
  total: 0,
@@ -161,21 +234,40 @@ export class RuntimeValidator {
161
234
  failures: 0
162
235
  };
163
236
  }
237
+ /**
238
+ * Clear schema cache
239
+ */
164
240
  clearCache() {
165
241
  this.schemaCache.clear();
166
242
  }
167
243
  }
244
+ // ==============================================
245
+ // Convenience Functions
246
+ // ==============================================
247
+ // Global validator instance (can be replaced with DI in production)
168
248
  const globalValidator = new RuntimeValidator();
249
+ /**
250
+ * Validate table name (convenience function)
251
+ */
169
252
  export function validateTableName(name) {
170
253
  return globalValidator.validateOrThrow(schemas.TableNameSchema, name, 'table name');
171
254
  }
255
+ /**
256
+ * Validate column name (convenience function)
257
+ */
172
258
  export function validateColumnName(name) {
173
259
  return globalValidator.validateOrThrow(schemas.ColumnNameSchema, name, 'column name');
174
260
  }
261
+ /**
262
+ * Validate database identifier (convenience function)
263
+ */
175
264
  export function validateDatabaseIdentifier(identifier, type = 'table') {
176
265
  const schema = type === 'table' ? schemas.TableNameSchema : schemas.ColumnNameSchema;
177
266
  return globalValidator.validateOrThrow(schema, identifier, `${type} identifier`);
178
267
  }
268
+ /**
269
+ * Validate connector configuration (convenience function)
270
+ */
179
271
  export function validateConnectorConfig(config, type) {
180
272
  const result = globalValidator.validateConnectorConfig(config, type);
181
273
  if (!result.success) {
@@ -183,24 +275,45 @@ export function validateConnectorConfig(config, type) {
183
275
  }
184
276
  return result.data;
185
277
  }
278
+ /**
279
+ * Sanitize string input (convenience function)
280
+ */
186
281
  export function sanitizeString(input) {
187
282
  return globalValidator.validateOrThrow(schemas.SanitizedStringSchema, input, 'string input');
188
283
  }
284
+ /**
285
+ * Validate SQL LIMIT value (convenience function)
286
+ */
189
287
  export function validateLimit(limit) {
190
288
  return globalValidator.validateOrThrow(schemas.LimitSchema, limit, 'LIMIT value');
191
289
  }
290
+ /**
291
+ * Validate connection string (convenience function)
292
+ */
192
293
  export function validateConnectionString(connectionString) {
193
294
  return globalValidator.validateOrThrow(schemas.ConnectionStringSchema, connectionString, 'connection string');
194
295
  }
296
+ // ==============================================
297
+ // Middleware Functions
298
+ // ==============================================
299
+ /**
300
+ * Create validation middleware for automatic validation
301
+ */
195
302
  export function createValidationMiddleware(schema) {
196
303
  return (data) => {
197
304
  return globalValidator.validateOrThrow(schema, data);
198
305
  };
199
306
  }
307
+ /**
308
+ * Create async validation middleware
309
+ */
200
310
  export function createAsyncValidationMiddleware(schema) {
201
311
  return (data) => {
202
312
  return Promise.resolve(globalValidator.validateOrThrow(schema, data));
203
313
  };
204
314
  }
315
+ // ==============================================
316
+ // Export everything
317
+ // ==============================================
205
318
  export { globalValidator as validator, schemas };
206
319
  //# sourceMappingURL=runtime-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-validator.js","sourceRoot":"","sources":["../../src/validation/runtime-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-validator.js","sourceRoot":"","sources":["../../src/validation/runtime-validator.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,76 @@
1
+ /**
2
+ * Input sanitization utilities for FreshGuard Core Phase 2
3
+ *
4
+ * Provides advanced sanitization functions for secure input handling
5
+ * with configurable security policies and logging.
6
+ *
7
+ * @license MIT
8
+ */
9
+ /**
10
+ * Sanitization policy configuration
11
+ */
1
12
  export interface SanitizationPolicy {
13
+ /** Remove control characters (0x00-0x1F, 0x7F) */
2
14
  removeControlCharacters: boolean;
15
+ /** Remove SQL comment patterns (-- and /* *\/) */
3
16
  removeSqlComments: boolean;
17
+ /** Remove dangerous SQL operators (;, etc.) */
4
18
  removeSqlOperators: boolean;
19
+ /** Maximum allowed length */
5
20
  maxLength: number;
21
+ /** Whether to throw on empty result after sanitization */
6
22
  throwOnEmpty: boolean;
23
+ /** Custom patterns to remove */
7
24
  customPatterns?: RegExp[];
25
+ /** Allow Unicode characters */
8
26
  allowUnicode: boolean;
9
27
  }
28
+ /**
29
+ * Result of sanitization operation
30
+ */
10
31
  export interface SanitizationResult {
32
+ /** The sanitized value */
11
33
  value: string;
34
+ /** Whether any changes were made */
12
35
  wasModified: boolean;
36
+ /** List of modifications made */
13
37
  modifications: string[];
38
+ /** Original length */
14
39
  originalLength: number;
40
+ /** Final length */
15
41
  finalLength: number;
16
42
  }
43
+ /**
44
+ * Sanitize string input with configurable policy
45
+ */
17
46
  export declare function sanitizeString(input: unknown, policy?: Partial<SanitizationPolicy>): SanitizationResult;
47
+ /**
48
+ * Sanitize SQL identifier (table name, column name)
49
+ */
18
50
  export declare function sanitizeIdentifier(input: unknown): SanitizationResult;
51
+ /**
52
+ * Sanitize user input (lenient approach)
53
+ */
19
54
  export declare function sanitizeUserInput(input: unknown, maxLength?: number): SanitizationResult;
55
+ /**
56
+ * Sanitize filename/path (prevent directory traversal)
57
+ */
20
58
  export declare function sanitizePath(input: unknown): SanitizationResult;
59
+ /**
60
+ * Sanitize email address
61
+ */
21
62
  export declare function sanitizeEmail(input: unknown): SanitizationResult;
63
+ /**
64
+ * Sanitize URL
65
+ */
22
66
  export declare function sanitizeUrl(input: unknown): SanitizationResult;
67
+ /**
68
+ * Sanitize JSON string (for configuration)
69
+ */
23
70
  export declare function sanitizeJson(input: unknown): SanitizationResult;
71
+ /**
72
+ * Sanitize multiple strings with the same policy
73
+ */
24
74
  export declare function sanitizeBatch(inputs: unknown[], policy?: Partial<SanitizationPolicy>): {
25
75
  results: SanitizationResult[];
26
76
  summary: {
@@ -29,11 +79,20 @@ export declare function sanitizeBatch(inputs: unknown[], policy?: Partial<Saniti
29
79
  errors: number;
30
80
  };
31
81
  };
82
+ /**
83
+ * Check if string contains dangerous patterns
84
+ */
32
85
  export declare function containsDangerousPatterns(input: string): {
33
86
  isDangerous: boolean;
34
87
  patterns: string[];
35
88
  };
89
+ /**
90
+ * Escape string for use in SQL queries (additional safety)
91
+ */
36
92
  export declare function escapeForSql(input: string): string;
93
+ /**
94
+ * Create safe string for logging (redact sensitive info)
95
+ */
37
96
  export declare function createLogSafeString(input: string, maxLength?: number): string;
38
97
  export declare const sanitizers: {
39
98
  readonly sanitizeString: typeof sanitizeString;
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizers.d.ts","sourceRoot":"","sources":["../../src/validation/sanitizers.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,kBAAkB;IAEjC,uBAAuB,EAAE,OAAO,CAAC;IAEjC,iBAAiB,EAAE,OAAO,CAAC;IAE3B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,SAAS,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,OAAO,CAAC;IAEtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,YAAY,EAAE,OAAO,CAAC;CACvB;AAiDD,MAAM,WAAW,kBAAkB;IAEjC,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW,EAAE,OAAO,CAAC;IAErB,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,cAAc,EAAE,MAAM,CAAC;IAEvB,WAAW,EAAE,MAAM,CAAC;CACrB;AASD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACvC,kBAAkB,CA2FpB;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAErE;AAKD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAO,GAAG,kBAAkB,CAKtF;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAiB/D;AASD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAqBhE;AAKD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAuB9D;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAsB/D;AASD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,OAAO,EAAE,EACjB,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACvC;IACD,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAiCA;AASD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG;IACxD,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAqBA;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUlD;AAKD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAc1E;AAMD,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;CAIX,CAAC"}
1
+ {"version":3,"file":"sanitizers.d.ts","sourceRoot":"","sources":["../../src/validation/sanitizers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,uBAAuB,EAAE,OAAO,CAAC;IACjC,kDAAkD;IAClD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,+CAA+C;IAC/C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,+BAA+B;IAC/B,YAAY,EAAE,OAAO,CAAC;CACvB;AA8CD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,iCAAiC;IACjC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACvC,kBAAkB,CA2FpB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAErE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAO,GAAG,kBAAkB,CAKtF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAiB/D;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAqBhE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAuB9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAsB/D;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,OAAO,EAAE,EACjB,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACvC;IACD,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAiCA;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG;IACxD,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAqBA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAc1E;AAMD,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;CAIX,CAAC"}