@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.
Files changed (180) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +644 -0
  3. package/dist/cli/index.d.ts +3 -0
  4. package/dist/cli/index.d.ts.map +1 -0
  5. package/dist/cli/index.js +350 -0
  6. package/dist/cli/index.js.map +1 -0
  7. package/dist/connectors/base-connector.d.ts +62 -0
  8. package/dist/connectors/base-connector.d.ts.map +1 -0
  9. package/dist/connectors/base-connector.js +549 -0
  10. package/dist/connectors/base-connector.js.map +1 -0
  11. package/dist/connectors/bigquery.d.ts +38 -0
  12. package/dist/connectors/bigquery.d.ts.map +1 -0
  13. package/dist/connectors/bigquery.js +406 -0
  14. package/dist/connectors/bigquery.js.map +1 -0
  15. package/dist/connectors/duckdb.d.ts +36 -0
  16. package/dist/connectors/duckdb.d.ts.map +1 -0
  17. package/dist/connectors/duckdb.js +364 -0
  18. package/dist/connectors/duckdb.js.map +1 -0
  19. package/dist/connectors/index.d.ts +7 -0
  20. package/dist/connectors/index.d.ts.map +1 -0
  21. package/dist/connectors/index.js +7 -0
  22. package/dist/connectors/index.js.map +1 -0
  23. package/dist/connectors/mysql.d.ts +32 -0
  24. package/dist/connectors/mysql.d.ts.map +1 -0
  25. package/dist/connectors/mysql.js +348 -0
  26. package/dist/connectors/mysql.js.map +1 -0
  27. package/dist/connectors/postgres.d.ts +31 -0
  28. package/dist/connectors/postgres.d.ts.map +1 -0
  29. package/dist/connectors/postgres.js +326 -0
  30. package/dist/connectors/postgres.js.map +1 -0
  31. package/dist/connectors/redshift.d.ts +32 -0
  32. package/dist/connectors/redshift.d.ts.map +1 -0
  33. package/dist/connectors/redshift.js +366 -0
  34. package/dist/connectors/redshift.js.map +1 -0
  35. package/dist/connectors/snowflake.d.ts +43 -0
  36. package/dist/connectors/snowflake.d.ts.map +1 -0
  37. package/dist/connectors/snowflake.js +442 -0
  38. package/dist/connectors/snowflake.js.map +1 -0
  39. package/dist/db/index.d.ts +9 -0
  40. package/dist/db/index.d.ts.map +1 -0
  41. package/dist/db/index.js +10 -0
  42. package/dist/db/index.js.map +1 -0
  43. package/dist/db/migrate.d.ts +12 -0
  44. package/dist/db/migrate.d.ts.map +1 -0
  45. package/dist/db/migrate.js +114 -0
  46. package/dist/db/migrate.js.map +1 -0
  47. package/dist/db/schema.d.ts +2053 -0
  48. package/dist/db/schema.d.ts.map +1 -0
  49. package/dist/db/schema.js +164 -0
  50. package/dist/db/schema.js.map +1 -0
  51. package/dist/errors/debug-factory.d.ts +23 -0
  52. package/dist/errors/debug-factory.d.ts.map +1 -0
  53. package/dist/errors/debug-factory.js +149 -0
  54. package/dist/errors/debug-factory.js.map +1 -0
  55. package/dist/errors/index.d.ts +119 -0
  56. package/dist/errors/index.d.ts.map +1 -0
  57. package/dist/errors/index.js +341 -0
  58. package/dist/errors/index.js.map +1 -0
  59. package/dist/index.d.ts +9 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +6 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/metadata/duckdb-storage.d.ts +31 -0
  64. package/dist/metadata/duckdb-storage.d.ts.map +1 -0
  65. package/dist/metadata/duckdb-storage.js +230 -0
  66. package/dist/metadata/duckdb-storage.js.map +1 -0
  67. package/dist/metadata/factory.d.ts +4 -0
  68. package/dist/metadata/factory.d.ts.map +1 -0
  69. package/dist/metadata/factory.js +23 -0
  70. package/dist/metadata/factory.js.map +1 -0
  71. package/dist/metadata/index.d.ts +6 -0
  72. package/dist/metadata/index.d.ts.map +1 -0
  73. package/dist/metadata/index.js +4 -0
  74. package/dist/metadata/index.js.map +1 -0
  75. package/dist/metadata/interface.d.ts +26 -0
  76. package/dist/metadata/interface.d.ts.map +1 -0
  77. package/dist/metadata/interface.js +2 -0
  78. package/dist/metadata/interface.js.map +1 -0
  79. package/dist/metadata/postgresql-storage.d.ts +32 -0
  80. package/dist/metadata/postgresql-storage.d.ts.map +1 -0
  81. package/dist/metadata/postgresql-storage.js +242 -0
  82. package/dist/metadata/postgresql-storage.js.map +1 -0
  83. package/dist/metadata/schema-config.d.ts +30 -0
  84. package/dist/metadata/schema-config.d.ts.map +1 -0
  85. package/dist/metadata/schema-config.js +94 -0
  86. package/dist/metadata/schema-config.js.map +1 -0
  87. package/dist/metadata/types.d.ts +35 -0
  88. package/dist/metadata/types.d.ts.map +1 -0
  89. package/dist/metadata/types.js +2 -0
  90. package/dist/metadata/types.js.map +1 -0
  91. package/dist/monitor/baseline-calculator.d.ts +30 -0
  92. package/dist/monitor/baseline-calculator.d.ts.map +1 -0
  93. package/dist/monitor/baseline-calculator.js +192 -0
  94. package/dist/monitor/baseline-calculator.js.map +1 -0
  95. package/dist/monitor/baseline-config.d.ts +37 -0
  96. package/dist/monitor/baseline-config.d.ts.map +1 -0
  97. package/dist/monitor/baseline-config.js +156 -0
  98. package/dist/monitor/baseline-config.js.map +1 -0
  99. package/dist/monitor/freshness.d.ts +5 -0
  100. package/dist/monitor/freshness.d.ts.map +1 -0
  101. package/dist/monitor/freshness.js +239 -0
  102. package/dist/monitor/freshness.js.map +1 -0
  103. package/dist/monitor/index.d.ts +5 -0
  104. package/dist/monitor/index.d.ts.map +1 -0
  105. package/dist/monitor/index.js +5 -0
  106. package/dist/monitor/index.js.map +1 -0
  107. package/dist/monitor/schema-baseline.d.ts +22 -0
  108. package/dist/monitor/schema-baseline.d.ts.map +1 -0
  109. package/dist/monitor/schema-baseline.js +211 -0
  110. package/dist/monitor/schema-baseline.js.map +1 -0
  111. package/dist/monitor/schema-changes.d.ts +5 -0
  112. package/dist/monitor/schema-changes.d.ts.map +1 -0
  113. package/dist/monitor/schema-changes.js +289 -0
  114. package/dist/monitor/schema-changes.js.map +1 -0
  115. package/dist/monitor/volume.d.ts +5 -0
  116. package/dist/monitor/volume.d.ts.map +1 -0
  117. package/dist/monitor/volume.js +262 -0
  118. package/dist/monitor/volume.js.map +1 -0
  119. package/dist/observability/logger.d.ts +63 -0
  120. package/dist/observability/logger.d.ts.map +1 -0
  121. package/dist/observability/logger.js +282 -0
  122. package/dist/observability/logger.js.map +1 -0
  123. package/dist/observability/metrics.d.ts +106 -0
  124. package/dist/observability/metrics.d.ts.map +1 -0
  125. package/dist/observability/metrics.js +441 -0
  126. package/dist/observability/metrics.js.map +1 -0
  127. package/dist/query-analyzer.js +526 -0
  128. package/dist/resilience/circuit-breaker.d.ts +94 -0
  129. package/dist/resilience/circuit-breaker.d.ts.map +1 -0
  130. package/dist/resilience/circuit-breaker.js +379 -0
  131. package/dist/resilience/circuit-breaker.js.map +1 -0
  132. package/dist/resilience/index.d.ts +7 -0
  133. package/dist/resilience/index.d.ts.map +1 -0
  134. package/dist/resilience/index.js +7 -0
  135. package/dist/resilience/index.js.map +1 -0
  136. package/dist/resilience/retry-policy.d.ts +87 -0
  137. package/dist/resilience/retry-policy.d.ts.map +1 -0
  138. package/dist/resilience/retry-policy.js +423 -0
  139. package/dist/resilience/retry-policy.js.map +1 -0
  140. package/dist/resilience/timeout-manager.d.ts +97 -0
  141. package/dist/resilience/timeout-manager.d.ts.map +1 -0
  142. package/dist/resilience/timeout-manager.js +339 -0
  143. package/dist/resilience/timeout-manager.js.map +1 -0
  144. package/dist/security/query-analyzer.d.ts +82 -0
  145. package/dist/security/query-analyzer.d.ts.map +1 -0
  146. package/dist/security/query-analyzer.js +381 -0
  147. package/dist/security/query-analyzer.js.map +1 -0
  148. package/dist/security/schema-cache.d.ts +95 -0
  149. package/dist/security/schema-cache.d.ts.map +1 -0
  150. package/dist/security/schema-cache.js +344 -0
  151. package/dist/security/schema-cache.js.map +1 -0
  152. package/dist/types/connector.d.ts +68 -0
  153. package/dist/types/connector.d.ts.map +1 -0
  154. package/dist/types/connector.js +26 -0
  155. package/dist/types/connector.js.map +1 -0
  156. package/dist/types.d.ts +244 -0
  157. package/dist/types.d.ts.map +1 -0
  158. package/dist/types.js +2 -0
  159. package/dist/types.js.map +1 -0
  160. package/dist/validation/index.d.ts +7 -0
  161. package/dist/validation/index.d.ts.map +1 -0
  162. package/dist/validation/index.js +5 -0
  163. package/dist/validation/index.js.map +1 -0
  164. package/dist/validation/runtime-validator.d.ts +70 -0
  165. package/dist/validation/runtime-validator.d.ts.map +1 -0
  166. package/dist/validation/runtime-validator.js +206 -0
  167. package/dist/validation/runtime-validator.js.map +1 -0
  168. package/dist/validation/sanitizers.d.ts +56 -0
  169. package/dist/validation/sanitizers.d.ts.map +1 -0
  170. package/dist/validation/sanitizers.js +264 -0
  171. package/dist/validation/sanitizers.js.map +1 -0
  172. package/dist/validation/schemas.d.ts +224 -0
  173. package/dist/validation/schemas.d.ts.map +1 -0
  174. package/dist/validation/schemas.js +263 -0
  175. package/dist/validation/schemas.js.map +1 -0
  176. package/dist/validators/index.d.ts +18 -0
  177. package/dist/validators/index.d.ts.map +1 -0
  178. package/dist/validators/index.js +209 -0
  179. package/dist/validators/index.js.map +1 -0
  180. 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"}