@freshguard/freshguard-core 0.11.2
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/LICENSE +21 -0
- package/README.md +644 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +350 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/connectors/base-connector.d.ts +62 -0
- package/dist/connectors/base-connector.d.ts.map +1 -0
- package/dist/connectors/base-connector.js +549 -0
- package/dist/connectors/base-connector.js.map +1 -0
- package/dist/connectors/bigquery.d.ts +38 -0
- package/dist/connectors/bigquery.d.ts.map +1 -0
- package/dist/connectors/bigquery.js +406 -0
- package/dist/connectors/bigquery.js.map +1 -0
- package/dist/connectors/duckdb.d.ts +36 -0
- package/dist/connectors/duckdb.d.ts.map +1 -0
- package/dist/connectors/duckdb.js +364 -0
- package/dist/connectors/duckdb.js.map +1 -0
- package/dist/connectors/index.d.ts +7 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +7 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/mysql.d.ts +32 -0
- package/dist/connectors/mysql.d.ts.map +1 -0
- package/dist/connectors/mysql.js +348 -0
- package/dist/connectors/mysql.js.map +1 -0
- package/dist/connectors/postgres.d.ts +31 -0
- package/dist/connectors/postgres.d.ts.map +1 -0
- package/dist/connectors/postgres.js +326 -0
- package/dist/connectors/postgres.js.map +1 -0
- package/dist/connectors/redshift.d.ts +32 -0
- package/dist/connectors/redshift.d.ts.map +1 -0
- package/dist/connectors/redshift.js +366 -0
- package/dist/connectors/redshift.js.map +1 -0
- package/dist/connectors/snowflake.d.ts +43 -0
- package/dist/connectors/snowflake.d.ts.map +1 -0
- package/dist/connectors/snowflake.js +442 -0
- package/dist/connectors/snowflake.js.map +1 -0
- package/dist/db/index.d.ts +9 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +10 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrate.d.ts +12 -0
- package/dist/db/migrate.d.ts.map +1 -0
- package/dist/db/migrate.js +114 -0
- package/dist/db/migrate.js.map +1 -0
- package/dist/db/schema.d.ts +2053 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +164 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/errors/debug-factory.d.ts +23 -0
- package/dist/errors/debug-factory.d.ts.map +1 -0
- package/dist/errors/debug-factory.js +149 -0
- package/dist/errors/debug-factory.js.map +1 -0
- package/dist/errors/index.d.ts +119 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +341 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata/duckdb-storage.d.ts +31 -0
- package/dist/metadata/duckdb-storage.d.ts.map +1 -0
- package/dist/metadata/duckdb-storage.js +230 -0
- package/dist/metadata/duckdb-storage.js.map +1 -0
- package/dist/metadata/factory.d.ts +4 -0
- package/dist/metadata/factory.d.ts.map +1 -0
- package/dist/metadata/factory.js +23 -0
- package/dist/metadata/factory.js.map +1 -0
- package/dist/metadata/index.d.ts +6 -0
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/index.js +4 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/interface.d.ts +26 -0
- package/dist/metadata/interface.d.ts.map +1 -0
- package/dist/metadata/interface.js +2 -0
- package/dist/metadata/interface.js.map +1 -0
- package/dist/metadata/postgresql-storage.d.ts +32 -0
- package/dist/metadata/postgresql-storage.d.ts.map +1 -0
- package/dist/metadata/postgresql-storage.js +242 -0
- package/dist/metadata/postgresql-storage.js.map +1 -0
- package/dist/metadata/schema-config.d.ts +30 -0
- package/dist/metadata/schema-config.d.ts.map +1 -0
- package/dist/metadata/schema-config.js +94 -0
- package/dist/metadata/schema-config.js.map +1 -0
- package/dist/metadata/types.d.ts +35 -0
- package/dist/metadata/types.d.ts.map +1 -0
- package/dist/metadata/types.js +2 -0
- package/dist/metadata/types.js.map +1 -0
- package/dist/monitor/baseline-calculator.d.ts +30 -0
- package/dist/monitor/baseline-calculator.d.ts.map +1 -0
- package/dist/monitor/baseline-calculator.js +192 -0
- package/dist/monitor/baseline-calculator.js.map +1 -0
- package/dist/monitor/baseline-config.d.ts +37 -0
- package/dist/monitor/baseline-config.d.ts.map +1 -0
- package/dist/monitor/baseline-config.js +156 -0
- package/dist/monitor/baseline-config.js.map +1 -0
- package/dist/monitor/freshness.d.ts +5 -0
- package/dist/monitor/freshness.d.ts.map +1 -0
- package/dist/monitor/freshness.js +239 -0
- package/dist/monitor/freshness.js.map +1 -0
- package/dist/monitor/index.d.ts +5 -0
- package/dist/monitor/index.d.ts.map +1 -0
- package/dist/monitor/index.js +5 -0
- package/dist/monitor/index.js.map +1 -0
- package/dist/monitor/schema-baseline.d.ts +22 -0
- package/dist/monitor/schema-baseline.d.ts.map +1 -0
- package/dist/monitor/schema-baseline.js +211 -0
- package/dist/monitor/schema-baseline.js.map +1 -0
- package/dist/monitor/schema-changes.d.ts +5 -0
- package/dist/monitor/schema-changes.d.ts.map +1 -0
- package/dist/monitor/schema-changes.js +289 -0
- package/dist/monitor/schema-changes.js.map +1 -0
- package/dist/monitor/volume.d.ts +5 -0
- package/dist/monitor/volume.d.ts.map +1 -0
- package/dist/monitor/volume.js +262 -0
- package/dist/monitor/volume.js.map +1 -0
- package/dist/observability/logger.d.ts +63 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +282 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +106 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +441 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/query-analyzer.js +526 -0
- package/dist/resilience/circuit-breaker.d.ts +94 -0
- package/dist/resilience/circuit-breaker.d.ts.map +1 -0
- package/dist/resilience/circuit-breaker.js +379 -0
- package/dist/resilience/circuit-breaker.js.map +1 -0
- package/dist/resilience/index.d.ts +7 -0
- package/dist/resilience/index.d.ts.map +1 -0
- package/dist/resilience/index.js +7 -0
- package/dist/resilience/index.js.map +1 -0
- package/dist/resilience/retry-policy.d.ts +87 -0
- package/dist/resilience/retry-policy.d.ts.map +1 -0
- package/dist/resilience/retry-policy.js +423 -0
- package/dist/resilience/retry-policy.js.map +1 -0
- package/dist/resilience/timeout-manager.d.ts +97 -0
- package/dist/resilience/timeout-manager.d.ts.map +1 -0
- package/dist/resilience/timeout-manager.js +339 -0
- package/dist/resilience/timeout-manager.js.map +1 -0
- package/dist/security/query-analyzer.d.ts +82 -0
- package/dist/security/query-analyzer.d.ts.map +1 -0
- package/dist/security/query-analyzer.js +381 -0
- package/dist/security/query-analyzer.js.map +1 -0
- package/dist/security/schema-cache.d.ts +95 -0
- package/dist/security/schema-cache.d.ts.map +1 -0
- package/dist/security/schema-cache.js +344 -0
- package/dist/security/schema-cache.js.map +1 -0
- package/dist/types/connector.d.ts +68 -0
- package/dist/types/connector.d.ts.map +1 -0
- package/dist/types/connector.js +26 -0
- package/dist/types/connector.js.map +1 -0
- package/dist/types.d.ts +244 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validation/index.d.ts +7 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +5 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/runtime-validator.d.ts +70 -0
- package/dist/validation/runtime-validator.d.ts.map +1 -0
- package/dist/validation/runtime-validator.js +206 -0
- package/dist/validation/runtime-validator.js.map +1 -0
- package/dist/validation/sanitizers.d.ts +56 -0
- package/dist/validation/sanitizers.d.ts.map +1 -0
- package/dist/validation/sanitizers.js +264 -0
- package/dist/validation/sanitizers.js.map +1 -0
- package/dist/validation/schemas.d.ts +224 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +263 -0
- package/dist/validation/schemas.js.map +1 -0
- package/dist/validators/index.d.ts +18 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +209 -0
- package/dist/validators/index.js.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
const DEFAULT_POLICY = {
|
|
2
|
+
removeControlCharacters: true,
|
|
3
|
+
removeSqlComments: true,
|
|
4
|
+
removeSqlOperators: true,
|
|
5
|
+
maxLength: 256,
|
|
6
|
+
throwOnEmpty: true,
|
|
7
|
+
allowUnicode: false
|
|
8
|
+
};
|
|
9
|
+
const LENIENT_POLICY = {
|
|
10
|
+
removeControlCharacters: true,
|
|
11
|
+
removeSqlComments: false,
|
|
12
|
+
removeSqlOperators: false,
|
|
13
|
+
maxLength: 1024,
|
|
14
|
+
throwOnEmpty: false,
|
|
15
|
+
allowUnicode: true
|
|
16
|
+
};
|
|
17
|
+
const STRICT_POLICY = {
|
|
18
|
+
removeControlCharacters: true,
|
|
19
|
+
removeSqlComments: true,
|
|
20
|
+
removeSqlOperators: true,
|
|
21
|
+
maxLength: 64,
|
|
22
|
+
throwOnEmpty: true,
|
|
23
|
+
allowUnicode: false,
|
|
24
|
+
customPatterns: [
|
|
25
|
+
/[^\w\s\-\.]/g,
|
|
26
|
+
/\s{2,}/g
|
|
27
|
+
]
|
|
28
|
+
};
|
|
29
|
+
export function sanitizeString(input, policy = {}) {
|
|
30
|
+
const activePolicy = { ...DEFAULT_POLICY, ...policy };
|
|
31
|
+
let value = String(input ?? '');
|
|
32
|
+
const originalLength = value.length;
|
|
33
|
+
const modifications = [];
|
|
34
|
+
if (value.length > activePolicy.maxLength) {
|
|
35
|
+
value = value.substring(0, activePolicy.maxLength);
|
|
36
|
+
modifications.push(`Truncated to ${activePolicy.maxLength} characters`);
|
|
37
|
+
}
|
|
38
|
+
const trimmed = value.trim();
|
|
39
|
+
if (trimmed !== value) {
|
|
40
|
+
value = trimmed;
|
|
41
|
+
modifications.push('Trimmed whitespace');
|
|
42
|
+
}
|
|
43
|
+
if (activePolicy.removeControlCharacters) {
|
|
44
|
+
const beforeControl = value;
|
|
45
|
+
value = value.replace(/[\x00-\x1F\x7F]/g, '');
|
|
46
|
+
if (value !== beforeControl) {
|
|
47
|
+
modifications.push('Removed control characters');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (activePolicy.removeSqlComments) {
|
|
51
|
+
const beforeComments = value;
|
|
52
|
+
value = value.replace(/--.*$/gm, '').replace(/\/\*[\s\S]*?\*\//g, '');
|
|
53
|
+
if (value !== beforeComments) {
|
|
54
|
+
modifications.push('Removed SQL comments');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (activePolicy.removeSqlOperators) {
|
|
58
|
+
const beforeOperators = value;
|
|
59
|
+
value = value.replace(/[;]/g, '');
|
|
60
|
+
if (value !== beforeOperators) {
|
|
61
|
+
modifications.push('Removed SQL operators');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (!activePolicy.allowUnicode) {
|
|
65
|
+
const beforeUnicode = value;
|
|
66
|
+
value = value.replace(/[^\x20-\x7E]/g, '');
|
|
67
|
+
if (value !== beforeUnicode) {
|
|
68
|
+
modifications.push('Removed non-ASCII characters');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (activePolicy.customPatterns) {
|
|
72
|
+
for (const pattern of activePolicy.customPatterns) {
|
|
73
|
+
const beforeCustom = value;
|
|
74
|
+
value = value.replace(pattern, ' ').replace(/\s+/g, ' ').trim();
|
|
75
|
+
if (value !== beforeCustom) {
|
|
76
|
+
modifications.push(`Applied custom pattern: ${pattern.toString()}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (activePolicy.throwOnEmpty && value.length === 0) {
|
|
81
|
+
throw new Error('Input is empty after sanitization');
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
value,
|
|
85
|
+
wasModified: modifications.length > 0,
|
|
86
|
+
modifications,
|
|
87
|
+
originalLength,
|
|
88
|
+
finalLength: value.length
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export function sanitizeIdentifier(input) {
|
|
92
|
+
return sanitizeString(input, STRICT_POLICY);
|
|
93
|
+
}
|
|
94
|
+
export function sanitizeUserInput(input, maxLength = 1024) {
|
|
95
|
+
return sanitizeString(input, {
|
|
96
|
+
...LENIENT_POLICY,
|
|
97
|
+
maxLength
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
export function sanitizePath(input) {
|
|
101
|
+
const pathPolicy = {
|
|
102
|
+
removeControlCharacters: true,
|
|
103
|
+
removeSqlComments: true,
|
|
104
|
+
removeSqlOperators: true,
|
|
105
|
+
maxLength: 1024,
|
|
106
|
+
throwOnEmpty: true,
|
|
107
|
+
allowUnicode: false,
|
|
108
|
+
customPatterns: [
|
|
109
|
+
/\.\./g,
|
|
110
|
+
/\/+/g,
|
|
111
|
+
/^\/+|\/+$/g,
|
|
112
|
+
/[<>:"|?*]/g
|
|
113
|
+
]
|
|
114
|
+
};
|
|
115
|
+
return sanitizeString(input, pathPolicy);
|
|
116
|
+
}
|
|
117
|
+
export function sanitizeEmail(input) {
|
|
118
|
+
const emailPolicy = {
|
|
119
|
+
removeControlCharacters: true,
|
|
120
|
+
removeSqlComments: true,
|
|
121
|
+
removeSqlOperators: true,
|
|
122
|
+
maxLength: 320,
|
|
123
|
+
throwOnEmpty: true,
|
|
124
|
+
allowUnicode: false,
|
|
125
|
+
customPatterns: [
|
|
126
|
+
/[^a-zA-Z0-9@.\-_+]/g
|
|
127
|
+
]
|
|
128
|
+
};
|
|
129
|
+
const result = sanitizeString(input, emailPolicy);
|
|
130
|
+
if (result.value && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(result.value)) {
|
|
131
|
+
throw new Error('Invalid email format after sanitization');
|
|
132
|
+
}
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
135
|
+
export function sanitizeUrl(input) {
|
|
136
|
+
const urlPolicy = {
|
|
137
|
+
removeControlCharacters: true,
|
|
138
|
+
removeSqlComments: false,
|
|
139
|
+
removeSqlOperators: false,
|
|
140
|
+
maxLength: 2048,
|
|
141
|
+
throwOnEmpty: true,
|
|
142
|
+
allowUnicode: true,
|
|
143
|
+
customPatterns: [
|
|
144
|
+
/javascript:/gi,
|
|
145
|
+
/data:/gi,
|
|
146
|
+
/vbscript:/gi
|
|
147
|
+
]
|
|
148
|
+
};
|
|
149
|
+
const result = sanitizeString(input, urlPolicy);
|
|
150
|
+
if (result.value && !(/^https?:\/\//i.exec(result.value))) {
|
|
151
|
+
throw new Error('URL must start with http:// or https://');
|
|
152
|
+
}
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
export function sanitizeJson(input) {
|
|
156
|
+
const jsonPolicy = {
|
|
157
|
+
removeControlCharacters: false,
|
|
158
|
+
removeSqlComments: false,
|
|
159
|
+
removeSqlOperators: false,
|
|
160
|
+
maxLength: 65536,
|
|
161
|
+
throwOnEmpty: true,
|
|
162
|
+
allowUnicode: true
|
|
163
|
+
};
|
|
164
|
+
const result = sanitizeString(input, jsonPolicy);
|
|
165
|
+
if (result.value) {
|
|
166
|
+
try {
|
|
167
|
+
JSON.parse(result.value);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
throw new Error('Invalid JSON format after sanitization');
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
175
|
+
export function sanitizeBatch(inputs, policy = {}) {
|
|
176
|
+
const results = [];
|
|
177
|
+
let modified = 0;
|
|
178
|
+
let errors = 0;
|
|
179
|
+
for (const input of inputs) {
|
|
180
|
+
try {
|
|
181
|
+
const result = sanitizeString(input, policy);
|
|
182
|
+
results.push(result);
|
|
183
|
+
if (result.wasModified) {
|
|
184
|
+
modified++;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
errors++;
|
|
189
|
+
results.push({
|
|
190
|
+
value: '',
|
|
191
|
+
wasModified: false,
|
|
192
|
+
modifications: [`Error: ${error instanceof Error ? error.message : 'Unknown error'}`],
|
|
193
|
+
originalLength: String(input ?? '').length,
|
|
194
|
+
finalLength: 0
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
results,
|
|
200
|
+
summary: {
|
|
201
|
+
total: inputs.length,
|
|
202
|
+
modified,
|
|
203
|
+
errors
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
export function containsDangerousPatterns(input) {
|
|
208
|
+
const dangerousPatterns = [
|
|
209
|
+
{ name: 'SQL Injection', pattern: /(\b(SELECT|INSERT|UPDATE|DELETE|DROP|ALTER|CREATE|EXEC|EXECUTE)\b)|(\-\-)|(\;)|(\'\s*(OR|AND)\s*\w+\s*=)/i },
|
|
210
|
+
{ name: 'Script Injection', pattern: /<script[\s\S]*?>[\s\S]*?<\/script>/i },
|
|
211
|
+
{ name: 'Command Injection', pattern: /(\||\&\&|\|\||\;)\s*(rm|del|format|cat|type|echo|curl|wget|powershell|cmd|bash|sh)/i },
|
|
212
|
+
{ name: 'Path Traversal', pattern: /(\.\.[\/\\])|(\.\.[\/\\].*[\/\\])/i },
|
|
213
|
+
{ name: 'XSS Patterns', pattern: /(javascript\s*:)|(on\w+\s*=)|(expression\s*\()/i }
|
|
214
|
+
];
|
|
215
|
+
const foundPatterns = [];
|
|
216
|
+
for (const { name, pattern } of dangerousPatterns) {
|
|
217
|
+
if (pattern.test(input)) {
|
|
218
|
+
foundPatterns.push(name);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
isDangerous: foundPatterns.length > 0,
|
|
223
|
+
patterns: foundPatterns
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
export function escapeForSql(input) {
|
|
227
|
+
return input
|
|
228
|
+
.replace(/'/g, "''")
|
|
229
|
+
.replace(/\\/g, '\\\\')
|
|
230
|
+
.replace(/\x00/g, '\\0')
|
|
231
|
+
.replace(/\n/g, '\\n')
|
|
232
|
+
.replace(/\r/g, '\\r')
|
|
233
|
+
.replace(/\x1a/g, '\\Z');
|
|
234
|
+
}
|
|
235
|
+
export function createLogSafeString(input, maxLength = 100) {
|
|
236
|
+
let safe = input
|
|
237
|
+
.replace(/password\s*[:=]\s*['"]\w+['"]/gi, 'password="[REDACTED]"')
|
|
238
|
+
.replace(/token\s*[:=]\s*['"]\w+['"]/gi, 'token="[REDACTED]"')
|
|
239
|
+
.replace(/key\s*[:=]\s*['"]\w+['"]/gi, 'key="[REDACTED]"')
|
|
240
|
+
.replace(/secret\s*[:=]\s*['"]\w+['"]/gi, 'secret="[REDACTED]"');
|
|
241
|
+
if (safe.length > maxLength) {
|
|
242
|
+
safe = safe.substring(0, maxLength - 3) + '...';
|
|
243
|
+
}
|
|
244
|
+
return safe;
|
|
245
|
+
}
|
|
246
|
+
export const sanitizers = {
|
|
247
|
+
sanitizeString,
|
|
248
|
+
sanitizeIdentifier,
|
|
249
|
+
sanitizeUserInput,
|
|
250
|
+
sanitizePath,
|
|
251
|
+
sanitizeEmail,
|
|
252
|
+
sanitizeUrl,
|
|
253
|
+
sanitizeJson,
|
|
254
|
+
sanitizeBatch,
|
|
255
|
+
containsDangerousPatterns,
|
|
256
|
+
escapeForSql,
|
|
257
|
+
createLogSafeString
|
|
258
|
+
};
|
|
259
|
+
export const policies = {
|
|
260
|
+
DEFAULT_POLICY,
|
|
261
|
+
LENIENT_POLICY,
|
|
262
|
+
STRICT_POLICY
|
|
263
|
+
};
|
|
264
|
+
//# sourceMappingURL=sanitizers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizers.js","sourceRoot":"","sources":["../../src/validation/sanitizers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const TableNameSchema: z.ZodString;
|
|
3
|
+
export declare const ColumnNameSchema: z.ZodString;
|
|
4
|
+
export declare const DatabaseIdentifierSchema: z.ZodPipe<z.ZodObject<{
|
|
5
|
+
identifier: z.ZodString;
|
|
6
|
+
type: z.ZodDefault<z.ZodEnum<{
|
|
7
|
+
table: "table";
|
|
8
|
+
column: "column";
|
|
9
|
+
}>>;
|
|
10
|
+
}, z.core.$strip>, z.ZodTransform<string, {
|
|
11
|
+
identifier: string;
|
|
12
|
+
type: "table" | "column";
|
|
13
|
+
}>>;
|
|
14
|
+
export declare const HostnameSchema: z.ZodString;
|
|
15
|
+
export declare const PortSchema: z.ZodNumber;
|
|
16
|
+
export declare const TimeoutSchema: z.ZodNumber;
|
|
17
|
+
export declare const QueryTimeoutSchema: z.ZodNumber;
|
|
18
|
+
export declare const MaxRowsSchema: z.ZodNumber;
|
|
19
|
+
export declare const DatabaseCredentialsSchema: z.ZodObject<{
|
|
20
|
+
username: z.ZodString;
|
|
21
|
+
password: z.ZodString;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export declare const DatabaseNameSchema: z.ZodString;
|
|
24
|
+
export declare const BaseConnectorConfigSchema: z.ZodObject<{
|
|
25
|
+
host: z.ZodString;
|
|
26
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
database: z.ZodString;
|
|
28
|
+
username: z.ZodString;
|
|
29
|
+
password: z.ZodString;
|
|
30
|
+
ssl: z.ZodDefault<z.ZodBoolean>;
|
|
31
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
applicationName: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export declare const PostgresConnectorConfigSchema: z.ZodObject<{
|
|
37
|
+
host: z.ZodString;
|
|
38
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
39
|
+
database: z.ZodString;
|
|
40
|
+
username: z.ZodString;
|
|
41
|
+
password: z.ZodString;
|
|
42
|
+
ssl: z.ZodDefault<z.ZodBoolean>;
|
|
43
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
44
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
45
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
applicationName: z.ZodOptional<z.ZodString>;
|
|
47
|
+
schema: z.ZodOptional<z.ZodString>;
|
|
48
|
+
sslMode: z.ZodDefault<z.ZodEnum<{
|
|
49
|
+
disable: "disable";
|
|
50
|
+
require: "require";
|
|
51
|
+
"verify-ca": "verify-ca";
|
|
52
|
+
"verify-full": "verify-full";
|
|
53
|
+
allow: "allow";
|
|
54
|
+
prefer: "prefer";
|
|
55
|
+
}>>;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
export declare const DuckDBConnectorConfigSchema: z.ZodObject<{
|
|
58
|
+
database: z.ZodString;
|
|
59
|
+
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
60
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
61
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
export declare const BigQueryConnectorConfigSchema: z.ZodObject<{
|
|
65
|
+
projectId: z.ZodString;
|
|
66
|
+
keyFilename: z.ZodOptional<z.ZodString>;
|
|
67
|
+
credentials: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
68
|
+
dataset: z.ZodOptional<z.ZodString>;
|
|
69
|
+
location: z.ZodOptional<z.ZodString>;
|
|
70
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
71
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
export declare const SnowflakeConnectorConfigSchema: z.ZodObject<{
|
|
75
|
+
account: z.ZodString;
|
|
76
|
+
username: z.ZodString;
|
|
77
|
+
password: z.ZodString;
|
|
78
|
+
warehouse: z.ZodOptional<z.ZodString>;
|
|
79
|
+
database: z.ZodString;
|
|
80
|
+
schema: z.ZodOptional<z.ZodString>;
|
|
81
|
+
role: z.ZodOptional<z.ZodString>;
|
|
82
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
83
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
84
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
85
|
+
}, z.core.$strip>;
|
|
86
|
+
export declare const SanitizedStringSchema: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<string, string>>;
|
|
87
|
+
export declare const LimitSchema: z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>;
|
|
88
|
+
export declare const ConnectionStringSchema: z.ZodString;
|
|
89
|
+
export declare const FreshnessRuleSchema: z.ZodObject<{
|
|
90
|
+
id: z.ZodOptional<z.ZodString>;
|
|
91
|
+
sourceId: z.ZodString;
|
|
92
|
+
tableName: z.ZodString;
|
|
93
|
+
columnName: z.ZodString;
|
|
94
|
+
toleranceMinutes: z.ZodNumber;
|
|
95
|
+
checkIntervalMinutes: z.ZodNumber;
|
|
96
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
97
|
+
}, z.core.$strip>;
|
|
98
|
+
export declare const VolumeRuleSchema: z.ZodObject<{
|
|
99
|
+
id: z.ZodOptional<z.ZodString>;
|
|
100
|
+
sourceId: z.ZodString;
|
|
101
|
+
tableName: z.ZodString;
|
|
102
|
+
baselineWindowDays: z.ZodNumber;
|
|
103
|
+
deviationThreshold: z.ZodPipe<z.ZodNumber, z.ZodTransform<number, number>>;
|
|
104
|
+
checkIntervalMinutes: z.ZodNumber;
|
|
105
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
106
|
+
}, z.core.$strip>;
|
|
107
|
+
export declare const schemas: {
|
|
108
|
+
readonly TableNameSchema: z.ZodString;
|
|
109
|
+
readonly ColumnNameSchema: z.ZodString;
|
|
110
|
+
readonly DatabaseIdentifierSchema: z.ZodPipe<z.ZodObject<{
|
|
111
|
+
identifier: z.ZodString;
|
|
112
|
+
type: z.ZodDefault<z.ZodEnum<{
|
|
113
|
+
table: "table";
|
|
114
|
+
column: "column";
|
|
115
|
+
}>>;
|
|
116
|
+
}, z.core.$strip>, z.ZodTransform<string, {
|
|
117
|
+
identifier: string;
|
|
118
|
+
type: "table" | "column";
|
|
119
|
+
}>>;
|
|
120
|
+
readonly HostnameSchema: z.ZodString;
|
|
121
|
+
readonly PortSchema: z.ZodNumber;
|
|
122
|
+
readonly TimeoutSchema: z.ZodNumber;
|
|
123
|
+
readonly QueryTimeoutSchema: z.ZodNumber;
|
|
124
|
+
readonly MaxRowsSchema: z.ZodNumber;
|
|
125
|
+
readonly BaseConnectorConfigSchema: z.ZodObject<{
|
|
126
|
+
host: z.ZodString;
|
|
127
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
128
|
+
database: z.ZodString;
|
|
129
|
+
username: z.ZodString;
|
|
130
|
+
password: z.ZodString;
|
|
131
|
+
ssl: z.ZodDefault<z.ZodBoolean>;
|
|
132
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
133
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
134
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
135
|
+
applicationName: z.ZodOptional<z.ZodString>;
|
|
136
|
+
}, z.core.$strip>;
|
|
137
|
+
readonly PostgresConnectorConfigSchema: z.ZodObject<{
|
|
138
|
+
host: z.ZodString;
|
|
139
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
140
|
+
database: z.ZodString;
|
|
141
|
+
username: z.ZodString;
|
|
142
|
+
password: z.ZodString;
|
|
143
|
+
ssl: z.ZodDefault<z.ZodBoolean>;
|
|
144
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
145
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
146
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
147
|
+
applicationName: z.ZodOptional<z.ZodString>;
|
|
148
|
+
schema: z.ZodOptional<z.ZodString>;
|
|
149
|
+
sslMode: z.ZodDefault<z.ZodEnum<{
|
|
150
|
+
disable: "disable";
|
|
151
|
+
require: "require";
|
|
152
|
+
"verify-ca": "verify-ca";
|
|
153
|
+
"verify-full": "verify-full";
|
|
154
|
+
allow: "allow";
|
|
155
|
+
prefer: "prefer";
|
|
156
|
+
}>>;
|
|
157
|
+
}, z.core.$strip>;
|
|
158
|
+
readonly DuckDBConnectorConfigSchema: z.ZodObject<{
|
|
159
|
+
database: z.ZodString;
|
|
160
|
+
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
161
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
162
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
163
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
164
|
+
}, z.core.$strip>;
|
|
165
|
+
readonly BigQueryConnectorConfigSchema: z.ZodObject<{
|
|
166
|
+
projectId: z.ZodString;
|
|
167
|
+
keyFilename: z.ZodOptional<z.ZodString>;
|
|
168
|
+
credentials: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
169
|
+
dataset: z.ZodOptional<z.ZodString>;
|
|
170
|
+
location: z.ZodOptional<z.ZodString>;
|
|
171
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
172
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
173
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
174
|
+
}, z.core.$strip>;
|
|
175
|
+
readonly SnowflakeConnectorConfigSchema: z.ZodObject<{
|
|
176
|
+
account: z.ZodString;
|
|
177
|
+
username: z.ZodString;
|
|
178
|
+
password: z.ZodString;
|
|
179
|
+
warehouse: z.ZodOptional<z.ZodString>;
|
|
180
|
+
database: z.ZodString;
|
|
181
|
+
schema: z.ZodOptional<z.ZodString>;
|
|
182
|
+
role: z.ZodOptional<z.ZodString>;
|
|
183
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
184
|
+
queryTimeout: z.ZodOptional<z.ZodNumber>;
|
|
185
|
+
maxRows: z.ZodOptional<z.ZodNumber>;
|
|
186
|
+
}, z.core.$strip>;
|
|
187
|
+
readonly DatabaseCredentialsSchema: z.ZodObject<{
|
|
188
|
+
username: z.ZodString;
|
|
189
|
+
password: z.ZodString;
|
|
190
|
+
}, z.core.$strip>;
|
|
191
|
+
readonly DatabaseNameSchema: z.ZodString;
|
|
192
|
+
readonly SanitizedStringSchema: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<string, string>>;
|
|
193
|
+
readonly LimitSchema: z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>;
|
|
194
|
+
readonly ConnectionStringSchema: z.ZodString;
|
|
195
|
+
readonly FreshnessRuleSchema: z.ZodObject<{
|
|
196
|
+
id: z.ZodOptional<z.ZodString>;
|
|
197
|
+
sourceId: z.ZodString;
|
|
198
|
+
tableName: z.ZodString;
|
|
199
|
+
columnName: z.ZodString;
|
|
200
|
+
toleranceMinutes: z.ZodNumber;
|
|
201
|
+
checkIntervalMinutes: z.ZodNumber;
|
|
202
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
203
|
+
}, z.core.$strip>;
|
|
204
|
+
readonly VolumeRuleSchema: z.ZodObject<{
|
|
205
|
+
id: z.ZodOptional<z.ZodString>;
|
|
206
|
+
sourceId: z.ZodString;
|
|
207
|
+
tableName: z.ZodString;
|
|
208
|
+
baselineWindowDays: z.ZodNumber;
|
|
209
|
+
deviationThreshold: z.ZodPipe<z.ZodNumber, z.ZodTransform<number, number>>;
|
|
210
|
+
checkIntervalMinutes: z.ZodNumber;
|
|
211
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
212
|
+
}, z.core.$strip>;
|
|
213
|
+
};
|
|
214
|
+
export type TableName = z.infer<typeof TableNameSchema>;
|
|
215
|
+
export type ColumnName = z.infer<typeof ColumnNameSchema>;
|
|
216
|
+
export type DatabaseIdentifier = z.infer<typeof DatabaseIdentifierSchema>;
|
|
217
|
+
export type BaseConnectorConfig = z.infer<typeof BaseConnectorConfigSchema>;
|
|
218
|
+
export type PostgresConnectorConfig = z.infer<typeof PostgresConnectorConfigSchema>;
|
|
219
|
+
export type DuckDBConnectorConfig = z.infer<typeof DuckDBConnectorConfigSchema>;
|
|
220
|
+
export type BigQueryConnectorConfig = z.infer<typeof BigQueryConnectorConfigSchema>;
|
|
221
|
+
export type SnowflakeConnectorConfig = z.infer<typeof SnowflakeConnectorConfigSchema>;
|
|
222
|
+
export type FreshnessRule = z.infer<typeof FreshnessRuleSchema>;
|
|
223
|
+
export type VolumeRule = z.infer<typeof VolumeRuleSchema>;
|
|
224
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/validation/schemas.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyDxB,eAAO,MAAM,eAAe,aAiBoB,CAAC;AAMjD,eAAO,MAAM,gBAAgB,aAKzB,CAAC;AAKL,eAAO,MAAM,wBAAwB;;;;;;;;;GASnC,CAAC;AASH,eAAO,MAAM,cAAc,aAQ4B,CAAC;AAKxD,eAAO,MAAM,UAAU,aAQmC,CAAC;AAK3D,eAAO,MAAM,aAAa,aAGkC,CAAC;AAK7D,eAAO,MAAM,kBAAkB,aAGgC,CAAC;AAKhE,eAAO,MAAM,aAAa,aAGmB,CAAC;AAS9C,eAAO,MAAM,yBAAyB;;;iBAYpC,CAAC;AAKH,eAAO,MAAM,kBAAkB,aAMuB,CAAC;AAKvD,eAAO,MAAM,yBAAyB;;;;;;;;;;;iBAoBpC,CAAC;AAKH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;iBAGxC,CAAC;AAKH,eAAO,MAAM,2BAA2B;;;;;;iBAoBtC,CAAC;AAKH,eAAO,MAAM,6BAA6B;;;;;;;;;iBAkBxC,CAAC;AAKH,eAAO,MAAM,8BAA8B;;;;;;;;;;;iBAgBzC,CAAC;AASH,eAAO,MAAM,qBAAqB,mGAS0D,CAAC;AAK7F,eAAO,MAAM,WAAW,4FAStB,CAAC;AAKH,eAAO,MAAM,sBAAsB,aAUsB,CAAC;AAS1D,eAAO,MAAM,mBAAmB;;;;;;;;iBAc9B,CAAC;AAKH,eAAO,MAAM,gBAAgB;;;;;;;;iBAiB3B,CAAC;AAMH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BV,CAAC;AAKX,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|