@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.
- package/CHANGELOG.md +15 -1
- package/README.md +74 -1
- package/SKILL.md +229 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +74 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/connectors/azure-sql.d.ts +121 -0
- package/dist/connectors/azure-sql.d.ts.map +1 -0
- package/dist/connectors/azure-sql.js +489 -0
- package/dist/connectors/azure-sql.js.map +1 -0
- package/dist/connectors/base-connector.d.ts +139 -0
- package/dist/connectors/base-connector.d.ts.map +1 -1
- package/dist/connectors/base-connector.js +160 -3
- package/dist/connectors/base-connector.js.map +1 -1
- package/dist/connectors/bigquery.d.ts +100 -0
- package/dist/connectors/bigquery.d.ts.map +1 -1
- package/dist/connectors/bigquery.js +143 -2
- package/dist/connectors/bigquery.js.map +1 -1
- package/dist/connectors/duckdb.d.ts +96 -0
- package/dist/connectors/duckdb.d.ts.map +1 -1
- package/dist/connectors/duckdb.js +144 -7
- package/dist/connectors/duckdb.js.map +1 -1
- package/dist/connectors/index.d.ts +28 -0
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/index.js +28 -0
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/mssql.d.ts +119 -0
- package/dist/connectors/mssql.d.ts.map +1 -0
- package/dist/connectors/mssql.js +483 -0
- package/dist/connectors/mssql.js.map +1 -0
- package/dist/connectors/mysql.d.ts +85 -0
- package/dist/connectors/mysql.d.ts.map +1 -1
- package/dist/connectors/mysql.js +118 -3
- package/dist/connectors/mysql.js.map +1 -1
- package/dist/connectors/postgres.d.ts +85 -0
- package/dist/connectors/postgres.d.ts.map +1 -1
- package/dist/connectors/postgres.js +113 -6
- package/dist/connectors/postgres.js.map +1 -1
- package/dist/connectors/redshift.d.ts +90 -0
- package/dist/connectors/redshift.d.ts.map +1 -1
- package/dist/connectors/redshift.js +131 -7
- package/dist/connectors/redshift.js.map +1 -1
- package/dist/connectors/snowflake.d.ts +108 -0
- package/dist/connectors/snowflake.d.ts.map +1 -1
- package/dist/connectors/snowflake.js +137 -3
- package/dist/connectors/snowflake.js.map +1 -1
- package/dist/connectors/synapse.d.ts +123 -0
- package/dist/connectors/synapse.d.ts.map +1 -0
- package/dist/connectors/synapse.js +495 -0
- package/dist/connectors/synapse.js.map +1 -0
- package/dist/db/index.d.ts +25 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +23 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrate.d.ts +23 -0
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +38 -0
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/schema.d.ts +11 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +70 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/errors/debug-factory.d.ts +38 -0
- package/dist/errors/debug-factory.d.ts.map +1 -1
- package/dist/errors/debug-factory.js +40 -0
- package/dist/errors/debug-factory.js.map +1 -1
- package/dist/errors/index.d.ts +59 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +110 -7
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +32 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata/duckdb-storage.d.ts +3 -0
- package/dist/metadata/duckdb-storage.d.ts.map +1 -1
- package/dist/metadata/duckdb-storage.js +6 -0
- package/dist/metadata/duckdb-storage.js.map +1 -1
- package/dist/metadata/factory.d.ts +30 -0
- package/dist/metadata/factory.d.ts.map +1 -1
- package/dist/metadata/factory.js +31 -0
- package/dist/metadata/factory.js.map +1 -1
- package/dist/metadata/index.d.ts +26 -0
- package/dist/metadata/index.d.ts.map +1 -1
- package/dist/metadata/index.js +26 -0
- package/dist/metadata/index.js.map +1 -1
- package/dist/metadata/interface.d.ts +33 -0
- package/dist/metadata/interface.d.ts.map +1 -1
- package/dist/metadata/interface.js +3 -0
- package/dist/metadata/interface.js.map +1 -1
- package/dist/metadata/postgresql-storage.d.ts +3 -0
- package/dist/metadata/postgresql-storage.d.ts.map +1 -1
- package/dist/metadata/postgresql-storage.js +12 -2
- package/dist/metadata/postgresql-storage.js.map +1 -1
- package/dist/metadata/schema-config.d.ts +53 -0
- package/dist/metadata/schema-config.d.ts.map +1 -1
- package/dist/metadata/schema-config.js +64 -0
- package/dist/metadata/schema-config.js.map +1 -1
- package/dist/metadata/types.d.ts +3 -0
- package/dist/metadata/types.d.ts.map +1 -1
- package/dist/metadata/types.js +3 -0
- package/dist/metadata/types.js.map +1 -1
- package/dist/monitor/baseline-calculator.d.ts +56 -0
- package/dist/monitor/baseline-calculator.d.ts.map +1 -1
- package/dist/monitor/baseline-calculator.js +72 -0
- package/dist/monitor/baseline-calculator.js.map +1 -1
- package/dist/monitor/baseline-config.d.ts +77 -0
- package/dist/monitor/baseline-config.d.ts.map +1 -1
- package/dist/monitor/baseline-config.js +79 -1
- package/dist/monitor/baseline-config.js.map +1 -1
- package/dist/monitor/freshness.d.ts +40 -0
- package/dist/monitor/freshness.d.ts.map +1 -1
- package/dist/monitor/freshness.js +82 -3
- package/dist/monitor/freshness.js.map +1 -1
- package/dist/monitor/index.d.ts +29 -0
- package/dist/monitor/index.d.ts.map +1 -1
- package/dist/monitor/index.js +29 -0
- package/dist/monitor/index.js.map +1 -1
- package/dist/monitor/schema-baseline.d.ts +45 -0
- package/dist/monitor/schema-baseline.d.ts.map +1 -1
- package/dist/monitor/schema-baseline.js +63 -5
- package/dist/monitor/schema-baseline.js.map +1 -1
- package/dist/monitor/schema-changes.d.ts +45 -0
- package/dist/monitor/schema-changes.d.ts.map +1 -1
- package/dist/monitor/schema-changes.js +85 -0
- package/dist/monitor/schema-changes.js.map +1 -1
- package/dist/monitor/volume.d.ts +43 -0
- package/dist/monitor/volume.d.ts.map +1 -1
- package/dist/monitor/volume.js +89 -0
- package/dist/monitor/volume.js.map +1 -1
- package/dist/observability/logger.d.ts +91 -0
- package/dist/observability/logger.d.ts.map +1 -1
- package/dist/observability/logger.js +108 -0
- package/dist/observability/logger.js.map +1 -1
- package/dist/observability/metrics.d.ts +140 -0
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +184 -7
- package/dist/observability/metrics.js.map +1 -1
- package/dist/resilience/circuit-breaker.d.ts +112 -2
- package/dist/resilience/circuit-breaker.d.ts.map +1 -1
- package/dist/resilience/circuit-breaker.js +140 -6
- package/dist/resilience/circuit-breaker.js.map +1 -1
- package/dist/resilience/index.d.ts +9 -0
- package/dist/resilience/index.d.ts.map +1 -1
- package/dist/resilience/index.js +13 -0
- package/dist/resilience/index.js.map +1 -1
- package/dist/resilience/retry-policy.d.ts +105 -0
- package/dist/resilience/retry-policy.d.ts.map +1 -1
- package/dist/resilience/retry-policy.js +158 -7
- package/dist/resilience/retry-policy.js.map +1 -1
- package/dist/resilience/timeout-manager.d.ts +137 -0
- package/dist/resilience/timeout-manager.d.ts.map +1 -1
- package/dist/resilience/timeout-manager.js +151 -4
- package/dist/resilience/timeout-manager.js.map +1 -1
- package/dist/security/query-analyzer.d.ts +124 -0
- package/dist/security/query-analyzer.d.ts.map +1 -1
- package/dist/security/query-analyzer.js +150 -9
- package/dist/security/query-analyzer.js.map +1 -1
- package/dist/security/schema-cache.d.ts +152 -0
- package/dist/security/schema-cache.d.ts.map +1 -1
- package/dist/security/schema-cache.js +144 -12
- package/dist/security/schema-cache.js.map +1 -1
- package/dist/types/connector.d.ts +68 -1
- package/dist/types/connector.d.ts.map +1 -1
- package/dist/types/connector.js +38 -15
- package/dist/types/connector.js.map +1 -1
- package/dist/types/driver-results.d.ts +28 -0
- package/dist/types/driver-results.d.ts.map +1 -1
- package/dist/types/driver-results.js +12 -0
- package/dist/types/driver-results.js.map +1 -1
- package/dist/types.d.ts +113 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -1
- package/dist/validation/index.d.ts +8 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +12 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/runtime-validator.d.ts +98 -0
- package/dist/validation/runtime-validator.d.ts.map +1 -1
- package/dist/validation/runtime-validator.js +114 -1
- package/dist/validation/runtime-validator.js.map +1 -1
- package/dist/validation/sanitizers.d.ts +59 -0
- package/dist/validation/sanitizers.d.ts.map +1 -1
- package/dist/validation/sanitizers.js +104 -20
- package/dist/validation/sanitizers.js.map +1 -1
- package/dist/validation/schemas.d.ts +73 -0
- package/dist/validation/schemas.d.ts.map +1 -1
- package/dist/validation/schemas.js +132 -5
- package/dist/validation/schemas.js.map +1 -1
- package/dist/validators/index.d.ts +54 -0
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +93 -2
- package/dist/validators/index.js.map +1 -1
- package/package.json +6 -2
|
@@ -1,33 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secure MySQL connector for FreshGuard Core
|
|
3
|
+
* Extends BaseConnector with security built-in
|
|
4
|
+
*
|
|
5
|
+
* @module @freshguard/freshguard-core/connectors/mysql
|
|
6
|
+
*/
|
|
1
7
|
import { BaseConnector } from './base-connector.js';
|
|
2
8
|
import type { ConnectorConfig, TableSchema, SecurityConfig } from '../types/connector.js';
|
|
3
9
|
import { type QueryResultRow } from '../types/driver-results.js';
|
|
4
10
|
import type { SourceCredentials } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Secure MySQL connector
|
|
13
|
+
*
|
|
14
|
+
* Features:
|
|
15
|
+
* - SQL injection prevention
|
|
16
|
+
* - Connection timeouts
|
|
17
|
+
* - SSL enforcement
|
|
18
|
+
* - Read-only query patterns
|
|
19
|
+
* - Secure error handling
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { MySQLConnector } from '@freshguard/freshguard-core';
|
|
24
|
+
*
|
|
25
|
+
* const connector = new MySQLConnector({
|
|
26
|
+
* host: 'mysql.example.com', port: 3306,
|
|
27
|
+
* database: 'analytics',
|
|
28
|
+
* username: 'readonly',
|
|
29
|
+
* password: process.env.MYSQL_PASSWORD!,
|
|
30
|
+
* ssl: true,
|
|
31
|
+
* });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
5
34
|
export declare class MySQLConnector extends BaseConnector {
|
|
6
35
|
private connection;
|
|
7
36
|
private connected;
|
|
37
|
+
/**
|
|
38
|
+
* @param config - Database connection settings (host, port, database, credentials)
|
|
39
|
+
* @param securityConfig - Optional overrides for query timeouts, max rows, SSL, and blocked keywords
|
|
40
|
+
*/
|
|
8
41
|
constructor(config: ConnectorConfig, securityConfig?: Partial<SecurityConfig>);
|
|
42
|
+
/**
|
|
43
|
+
* Connect to MySQL database with security validation
|
|
44
|
+
*/
|
|
9
45
|
private connect;
|
|
46
|
+
/**
|
|
47
|
+
* Execute a validated SQL query with security measures
|
|
48
|
+
*/
|
|
10
49
|
protected executeQuery(sql: string): Promise<QueryResultRow[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Execute a parameterized SQL query using prepared statements
|
|
52
|
+
*/
|
|
11
53
|
protected executeParameterizedQuery(sql: string, parameters?: unknown[]): Promise<QueryResultRow[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Test database connection with security validation
|
|
56
|
+
*/
|
|
12
57
|
testConnection(debugConfig?: import('../types.js').DebugConfig): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Helper method to merge debug configuration
|
|
60
|
+
*/
|
|
13
61
|
private mergeDebugConfig;
|
|
62
|
+
/**
|
|
63
|
+
* Generate connection suggestions based on error
|
|
64
|
+
*/
|
|
14
65
|
private generateConnectionSuggestion;
|
|
66
|
+
/**
|
|
67
|
+
* List all tables in the database
|
|
68
|
+
*/
|
|
15
69
|
listTables(): Promise<string[]>;
|
|
70
|
+
/**
|
|
71
|
+
* Get table schema information securely
|
|
72
|
+
*/
|
|
16
73
|
getTableSchema(table: string): Promise<TableSchema>;
|
|
74
|
+
/**
|
|
75
|
+
* Get last modified timestamp using MySQL-specific methods
|
|
76
|
+
*/
|
|
17
77
|
getLastModified(table: string): Promise<Date | null>;
|
|
78
|
+
/**
|
|
79
|
+
* Close the database connection
|
|
80
|
+
*/
|
|
18
81
|
close(): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Map MySQL data types to standard types
|
|
84
|
+
*/
|
|
19
85
|
private mapMySQLType;
|
|
86
|
+
/**
|
|
87
|
+
* Override escapeIdentifier for MySQL backtick syntax
|
|
88
|
+
*/
|
|
20
89
|
protected escapeIdentifier(identifier: string): string;
|
|
90
|
+
/**
|
|
91
|
+
* Legacy connect method for backward compatibility
|
|
92
|
+
* @deprecated Use constructor with ConnectorConfig instead
|
|
93
|
+
*/
|
|
21
94
|
connectLegacy(credentials: SourceCredentials): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Legacy test connection method for backward compatibility
|
|
97
|
+
* @deprecated Use testConnection() instead
|
|
98
|
+
*/
|
|
22
99
|
testConnectionLegacy(): Promise<{
|
|
23
100
|
success: boolean;
|
|
24
101
|
tableCount?: number;
|
|
25
102
|
error?: string;
|
|
26
103
|
}>;
|
|
104
|
+
/**
|
|
105
|
+
* Legacy get table metadata method for backward compatibility
|
|
106
|
+
* @deprecated Use getRowCount() and getMaxTimestamp() instead
|
|
107
|
+
*/
|
|
27
108
|
getTableMetadata(tableName: string, timestampColumn?: string): Promise<{
|
|
28
109
|
rowCount: number;
|
|
29
110
|
lastUpdate?: Date;
|
|
30
111
|
}>;
|
|
112
|
+
/**
|
|
113
|
+
* Legacy query method for backward compatibility
|
|
114
|
+
* @deprecated Direct SQL queries are not allowed for security reasons
|
|
115
|
+
*/
|
|
31
116
|
query<T = unknown>(_sql: string): Promise<T[]>;
|
|
32
117
|
}
|
|
33
118
|
//# sourceMappingURL=mysql.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/connectors/mysql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/connectors/mysql.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,SAAS,CAAS;IAE1B;;;OAGG;gBACS,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAM7E;;OAEG;YACW,OAAO;IAyCrB;;OAEG;cACa,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIpE;;OAEG;cACa,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAqC7G;;OAEG;IACG,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAgEvF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA8BpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBrC;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA+CzD;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAqC1D;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAsDpB;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAmBtD;;;OAGG;IACG,aAAa,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlE;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA2BhG;;;OAGG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,eAAe,SAAe,GAC7B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;IAqBnD;;;OAGG;IAEG,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAKrD"}
|
package/dist/connectors/mysql.js
CHANGED
|
@@ -1,33 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secure MySQL connector for FreshGuard Core
|
|
3
|
+
* Extends BaseConnector with security built-in
|
|
4
|
+
*
|
|
5
|
+
* @module @freshguard/freshguard-core/connectors/mysql
|
|
6
|
+
*/
|
|
1
7
|
import mysql from 'mysql2/promise';
|
|
2
8
|
import { BaseConnector } from './base-connector.js';
|
|
3
9
|
import { rowString } from '../types/driver-results.js';
|
|
4
10
|
import { ConnectionError, TimeoutError, QueryError, ErrorHandler } from '../errors/index.js';
|
|
5
11
|
import { validateConnectorConfig } from '../validators/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Secure MySQL connector
|
|
14
|
+
*
|
|
15
|
+
* Features:
|
|
16
|
+
* - SQL injection prevention
|
|
17
|
+
* - Connection timeouts
|
|
18
|
+
* - SSL enforcement
|
|
19
|
+
* - Read-only query patterns
|
|
20
|
+
* - Secure error handling
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* import { MySQLConnector } from '@freshguard/freshguard-core';
|
|
25
|
+
*
|
|
26
|
+
* const connector = new MySQLConnector({
|
|
27
|
+
* host: 'mysql.example.com', port: 3306,
|
|
28
|
+
* database: 'analytics',
|
|
29
|
+
* username: 'readonly',
|
|
30
|
+
* password: process.env.MYSQL_PASSWORD!,
|
|
31
|
+
* ssl: true,
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
6
35
|
export class MySQLConnector extends BaseConnector {
|
|
7
36
|
connection = null;
|
|
8
37
|
connected = false;
|
|
38
|
+
/**
|
|
39
|
+
* @param config - Database connection settings (host, port, database, credentials)
|
|
40
|
+
* @param securityConfig - Optional overrides for query timeouts, max rows, SSL, and blocked keywords
|
|
41
|
+
*/
|
|
9
42
|
constructor(config, securityConfig) {
|
|
43
|
+
// Validate configuration before proceeding
|
|
10
44
|
validateConnectorConfig(config);
|
|
11
45
|
super(config, securityConfig);
|
|
12
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Connect to MySQL database with security validation
|
|
49
|
+
*/
|
|
13
50
|
async connect() {
|
|
14
51
|
if (this.connected && this.connection) {
|
|
15
|
-
return;
|
|
52
|
+
return; // Already connected
|
|
16
53
|
}
|
|
17
54
|
try {
|
|
55
|
+
// Enforce SSL by default for security
|
|
18
56
|
const connectionConfig = {
|
|
19
57
|
host: this.config.host,
|
|
20
58
|
port: this.config.port ?? 3306,
|
|
21
59
|
database: this.config.database,
|
|
22
60
|
user: this.config.username,
|
|
23
61
|
password: this.config.password,
|
|
62
|
+
// Security timeouts (mysql2 uses milliseconds)
|
|
24
63
|
connectTimeout: this.connectionTimeout,
|
|
64
|
+
// MySQL-specific settings
|
|
25
65
|
charset: 'utf8mb4',
|
|
26
|
-
timezone: 'Z',
|
|
27
|
-
dateStrings: false,
|
|
66
|
+
timezone: 'Z', // Use UTC
|
|
67
|
+
dateStrings: false, // Return Date objects
|
|
28
68
|
supportBigNumbers: true,
|
|
29
69
|
bigNumberStrings: false
|
|
30
70
|
};
|
|
71
|
+
// Add SSL configuration if enabled
|
|
31
72
|
if (this.requireSSL && this.config.ssl !== false) {
|
|
32
73
|
connectionConfig.ssl = { rejectUnauthorized: true };
|
|
33
74
|
}
|
|
@@ -38,9 +79,15 @@ export class MySQLConnector extends BaseConnector {
|
|
|
38
79
|
throw new ConnectionError('Failed to connect to MySQL', this.config.host, this.config.port, error instanceof Error ? error : undefined);
|
|
39
80
|
}
|
|
40
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Execute a validated SQL query with security measures
|
|
84
|
+
*/
|
|
41
85
|
async executeQuery(sql) {
|
|
42
86
|
return this.executeParameterizedQuery(sql, []);
|
|
43
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Execute a parameterized SQL query using prepared statements
|
|
90
|
+
*/
|
|
44
91
|
async executeParameterizedQuery(sql, parameters = []) {
|
|
45
92
|
await this.connect();
|
|
46
93
|
if (!this.connection) {
|
|
@@ -48,11 +95,13 @@ export class MySQLConnector extends BaseConnector {
|
|
|
48
95
|
}
|
|
49
96
|
try {
|
|
50
97
|
const result = await this.executeWithTimeout(async () => {
|
|
98
|
+
// Use execute for parameterized queries
|
|
51
99
|
if (!this.connection)
|
|
52
100
|
throw new ConnectionError('Database connection not available');
|
|
53
101
|
const [rows] = await this.connection.execute(sql, parameters);
|
|
54
102
|
return (Array.isArray(rows) ? rows : [rows]);
|
|
55
103
|
}, this.queryTimeout);
|
|
104
|
+
// Validate result size for security
|
|
56
105
|
this.validateResultSize(result);
|
|
57
106
|
return result;
|
|
58
107
|
}
|
|
@@ -60,9 +109,13 @@ export class MySQLConnector extends BaseConnector {
|
|
|
60
109
|
if (error instanceof TimeoutError) {
|
|
61
110
|
throw error;
|
|
62
111
|
}
|
|
112
|
+
// Sanitize and re-throw as QueryError
|
|
63
113
|
throw new QueryError(ErrorHandler.getUserMessage(error), 'query_execution', undefined, error instanceof Error ? error : undefined);
|
|
64
114
|
}
|
|
65
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Test database connection with security validation
|
|
118
|
+
*/
|
|
66
119
|
async testConnection(debugConfig) {
|
|
67
120
|
const mergedDebugConfig = this.mergeDebugConfig(debugConfig);
|
|
68
121
|
const debugId = `mysql-test-${Date.now().toString(36)}-${Math.random().toString(36).substr(2, 5)}`;
|
|
@@ -82,6 +135,7 @@ export class MySQLConnector extends BaseConnector {
|
|
|
82
135
|
});
|
|
83
136
|
return false;
|
|
84
137
|
}
|
|
138
|
+
// Test with a simple, safe query (skip validation for connection test)
|
|
85
139
|
const sql = 'SELECT 1 as test';
|
|
86
140
|
await this.executeWithTimeout(async () => {
|
|
87
141
|
if (!this.connection)
|
|
@@ -110,9 +164,13 @@ export class MySQLConnector extends BaseConnector {
|
|
|
110
164
|
duration,
|
|
111
165
|
suggestion: this.generateConnectionSuggestion(error)
|
|
112
166
|
});
|
|
167
|
+
// Don't throw - this method should return boolean
|
|
113
168
|
return false;
|
|
114
169
|
}
|
|
115
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Helper method to merge debug configuration
|
|
173
|
+
*/
|
|
116
174
|
mergeDebugConfig(debugConfig) {
|
|
117
175
|
return {
|
|
118
176
|
enabled: debugConfig?.enabled ?? (process.env.NODE_ENV === 'development'),
|
|
@@ -121,6 +179,9 @@ export class MySQLConnector extends BaseConnector {
|
|
|
121
179
|
logLevel: debugConfig?.logLevel ?? 'debug'
|
|
122
180
|
};
|
|
123
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Generate connection suggestions based on error
|
|
184
|
+
*/
|
|
124
185
|
generateConnectionSuggestion(error) {
|
|
125
186
|
if (!(error instanceof Error)) {
|
|
126
187
|
return 'Check database connection configuration';
|
|
@@ -143,6 +204,9 @@ export class MySQLConnector extends BaseConnector {
|
|
|
143
204
|
}
|
|
144
205
|
return `Connection failed to ${this.config.host}:${this.config.port}. Check host, port, credentials, and network connectivity.`;
|
|
145
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* List all tables in the database
|
|
209
|
+
*/
|
|
146
210
|
async listTables() {
|
|
147
211
|
const sql = `
|
|
148
212
|
SELECT table_name
|
|
@@ -160,7 +224,11 @@ export class MySQLConnector extends BaseConnector {
|
|
|
160
224
|
throw new QueryError('Failed to list tables', 'table_listing', undefined, error instanceof Error ? error : undefined);
|
|
161
225
|
}
|
|
162
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Get table schema information securely
|
|
229
|
+
*/
|
|
163
230
|
async getTableSchema(table) {
|
|
231
|
+
// Validate table name (identifiers cannot be parameterized)
|
|
164
232
|
this.escapeIdentifier(table);
|
|
165
233
|
const sql = `
|
|
166
234
|
SELECT
|
|
@@ -195,7 +263,11 @@ export class MySQLConnector extends BaseConnector {
|
|
|
195
263
|
throw new QueryError('Failed to get table schema', 'schema_query', table, error instanceof Error ? error : undefined);
|
|
196
264
|
}
|
|
197
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* Get last modified timestamp using MySQL-specific methods
|
|
268
|
+
*/
|
|
198
269
|
async getLastModified(table) {
|
|
270
|
+
// Try common timestamp columns
|
|
199
271
|
const timestampColumns = ['updated_at', 'modified_at', 'last_modified', 'timestamp'];
|
|
200
272
|
for (const column of timestampColumns) {
|
|
201
273
|
try {
|
|
@@ -205,9 +277,11 @@ export class MySQLConnector extends BaseConnector {
|
|
|
205
277
|
}
|
|
206
278
|
}
|
|
207
279
|
catch {
|
|
280
|
+
// Column doesn't exist, try next one
|
|
208
281
|
continue;
|
|
209
282
|
}
|
|
210
283
|
}
|
|
284
|
+
// Fallback: use MySQL information schema to get table modification time
|
|
211
285
|
try {
|
|
212
286
|
const sql = `
|
|
213
287
|
SELECT update_time as last_modified
|
|
@@ -221,15 +295,20 @@ export class MySQLConnector extends BaseConnector {
|
|
|
221
295
|
}
|
|
222
296
|
}
|
|
223
297
|
catch {
|
|
298
|
+
// Information schema query failed, return null
|
|
224
299
|
}
|
|
225
300
|
return null;
|
|
226
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Close the database connection
|
|
304
|
+
*/
|
|
227
305
|
async close() {
|
|
228
306
|
if (this.connection) {
|
|
229
307
|
try {
|
|
230
308
|
await this.connection.end();
|
|
231
309
|
}
|
|
232
310
|
catch (error) {
|
|
311
|
+
// Log error but don't throw - closing should be safe
|
|
233
312
|
console.warn('Warning: Error closing MySQL connection:', ErrorHandler.getUserMessage(error));
|
|
234
313
|
}
|
|
235
314
|
finally {
|
|
@@ -238,8 +317,12 @@ export class MySQLConnector extends BaseConnector {
|
|
|
238
317
|
}
|
|
239
318
|
}
|
|
240
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Map MySQL data types to standard types
|
|
322
|
+
*/
|
|
241
323
|
mapMySQLType(mysqlType) {
|
|
242
324
|
const typeMap = {
|
|
325
|
+
// Numeric types
|
|
243
326
|
'tinyint': 'integer',
|
|
244
327
|
'smallint': 'integer',
|
|
245
328
|
'mediumint': 'integer',
|
|
@@ -252,6 +335,7 @@ export class MySQLConnector extends BaseConnector {
|
|
|
252
335
|
'double': 'float',
|
|
253
336
|
'real': 'float',
|
|
254
337
|
'bit': 'integer',
|
|
338
|
+
// String types
|
|
255
339
|
'char': 'text',
|
|
256
340
|
'varchar': 'text',
|
|
257
341
|
'binary': 'text',
|
|
@@ -266,11 +350,13 @@ export class MySQLConnector extends BaseConnector {
|
|
|
266
350
|
'longblob': 'text',
|
|
267
351
|
'enum': 'text',
|
|
268
352
|
'set': 'text',
|
|
353
|
+
// Date/time types
|
|
269
354
|
'date': 'date',
|
|
270
355
|
'time': 'time',
|
|
271
356
|
'datetime': 'timestamp',
|
|
272
357
|
'timestamp': 'timestamp',
|
|
273
358
|
'year': 'integer',
|
|
359
|
+
// JSON and special types
|
|
274
360
|
'json': 'json',
|
|
275
361
|
'geometry': 'text',
|
|
276
362
|
'point': 'text',
|
|
@@ -283,17 +369,31 @@ export class MySQLConnector extends BaseConnector {
|
|
|
283
369
|
};
|
|
284
370
|
return typeMap[mysqlType.toLowerCase()] ?? 'unknown';
|
|
285
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* Override escapeIdentifier for MySQL backtick syntax
|
|
374
|
+
*/
|
|
286
375
|
escapeIdentifier(identifier) {
|
|
376
|
+
// Only allow alphanumeric, underscore, and dot (for database.table)
|
|
287
377
|
if (!/^[a-zA-Z0-9_.]+$/.test(identifier)) {
|
|
288
378
|
throw new Error(`Invalid identifier: ${identifier}`);
|
|
289
379
|
}
|
|
380
|
+
// Additional length check
|
|
290
381
|
if (identifier.length > 256) {
|
|
291
382
|
throw new Error('Identifier too long');
|
|
292
383
|
}
|
|
384
|
+
// Return with backticks for MySQL
|
|
293
385
|
return `\`${identifier}\``;
|
|
294
386
|
}
|
|
387
|
+
// ==============================================
|
|
388
|
+
// Legacy API compatibility methods
|
|
389
|
+
// ==============================================
|
|
390
|
+
/**
|
|
391
|
+
* Legacy connect method for backward compatibility
|
|
392
|
+
* @deprecated Use constructor with ConnectorConfig instead
|
|
393
|
+
*/
|
|
295
394
|
async connectLegacy(credentials) {
|
|
296
395
|
console.warn('Warning: connectLegacy is deprecated. Use constructor with ConnectorConfig instead.');
|
|
396
|
+
// Convert legacy credentials to new format
|
|
297
397
|
const config = {
|
|
298
398
|
host: credentials.host ?? '',
|
|
299
399
|
port: credentials.port ?? 3306,
|
|
@@ -302,15 +402,21 @@ export class MySQLConnector extends BaseConnector {
|
|
|
302
402
|
password: credentials.password ?? '',
|
|
303
403
|
ssl: credentials.sslMode !== 'disable'
|
|
304
404
|
};
|
|
405
|
+
// Validate and reconnect
|
|
305
406
|
validateConnectorConfig(config);
|
|
306
407
|
this.config = { ...this.config, ...config };
|
|
307
408
|
await this.connect();
|
|
308
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Legacy test connection method for backward compatibility
|
|
412
|
+
* @deprecated Use testConnection() instead
|
|
413
|
+
*/
|
|
309
414
|
async testConnectionLegacy() {
|
|
310
415
|
console.warn('Warning: testConnectionLegacy is deprecated. Use testConnection() instead.');
|
|
311
416
|
try {
|
|
312
417
|
const success = await this.testConnection();
|
|
313
418
|
if (success) {
|
|
419
|
+
// Get table count for legacy compatibility
|
|
314
420
|
const tables = await this.listTables();
|
|
315
421
|
return {
|
|
316
422
|
success: true,
|
|
@@ -331,6 +437,10 @@ export class MySQLConnector extends BaseConnector {
|
|
|
331
437
|
};
|
|
332
438
|
}
|
|
333
439
|
}
|
|
440
|
+
/**
|
|
441
|
+
* Legacy get table metadata method for backward compatibility
|
|
442
|
+
* @deprecated Use getRowCount() and getMaxTimestamp() instead
|
|
443
|
+
*/
|
|
334
444
|
async getTableMetadata(tableName, timestampColumn = 'updated_at') {
|
|
335
445
|
console.warn('Warning: getTableMetadata is deprecated. Use getRowCount() and getMaxTimestamp() instead.');
|
|
336
446
|
try {
|
|
@@ -345,6 +455,11 @@ export class MySQLConnector extends BaseConnector {
|
|
|
345
455
|
throw new QueryError('Failed to get table metadata', 'metadata_query', tableName, error instanceof Error ? error : undefined);
|
|
346
456
|
}
|
|
347
457
|
}
|
|
458
|
+
/**
|
|
459
|
+
* Legacy query method for backward compatibility
|
|
460
|
+
* @deprecated Direct SQL queries are not allowed for security reasons
|
|
461
|
+
*/
|
|
462
|
+
// eslint-disable-next-line @typescript-eslint/require-await -- deprecated stub that always throws
|
|
348
463
|
async query(_sql) {
|
|
349
464
|
throw new Error('Direct SQL queries are not allowed for security reasons. Use specific methods like getRowCount(), getMaxTimestamp(), etc.');
|
|
350
465
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/connectors/mysql.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/connectors/mysql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secure PostgreSQL connector for FreshGuard Core
|
|
3
|
+
* Extends BaseConnector with security built-in
|
|
4
|
+
*
|
|
5
|
+
* @module @freshguard/freshguard-core/connectors/postgres
|
|
6
|
+
*/
|
|
1
7
|
import { BaseConnector } from './base-connector.js';
|
|
2
8
|
import type { ConnectorConfig, TableSchema, SecurityConfig } from '../types/connector.js';
|
|
3
9
|
import type { QueryResultRow } from '../types/driver-results.js';
|
|
4
10
|
import type { SourceCredentials } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Secure PostgreSQL connector
|
|
13
|
+
*
|
|
14
|
+
* Features:
|
|
15
|
+
* - SQL injection prevention
|
|
16
|
+
* - Connection timeouts
|
|
17
|
+
* - SSL enforcement
|
|
18
|
+
* - Read-only query patterns
|
|
19
|
+
* - Secure error handling
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { PostgresConnector } from '@freshguard/freshguard-core';
|
|
24
|
+
*
|
|
25
|
+
* const connector = new PostgresConnector({
|
|
26
|
+
* host: 'localhost', port: 5432,
|
|
27
|
+
* database: 'analytics',
|
|
28
|
+
* username: 'readonly_user',
|
|
29
|
+
* password: process.env.DB_PASSWORD!,
|
|
30
|
+
* ssl: true,
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* const ok = await connector.testConnection();
|
|
34
|
+
* const tables = await connector.listTables();
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
5
37
|
export declare class PostgresConnector extends BaseConnector {
|
|
6
38
|
private client;
|
|
7
39
|
private connected;
|
|
40
|
+
/**
|
|
41
|
+
* @param config - Database connection settings (host, port, database, credentials)
|
|
42
|
+
* @param securityConfig - Optional overrides for query timeouts, max rows, SSL, and blocked keywords
|
|
43
|
+
*/
|
|
8
44
|
constructor(config: ConnectorConfig, securityConfig?: Partial<SecurityConfig>);
|
|
45
|
+
/**
|
|
46
|
+
* Connect to PostgreSQL database with security validation
|
|
47
|
+
*/
|
|
9
48
|
private connect;
|
|
49
|
+
/**
|
|
50
|
+
* Execute a validated SQL query with security measures
|
|
51
|
+
*/
|
|
10
52
|
protected executeQuery(sql: string): Promise<QueryResultRow[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Execute a parameterized SQL query using prepared statements
|
|
55
|
+
*/
|
|
11
56
|
protected executeParameterizedQuery(sql: string, parameters?: unknown[]): Promise<QueryResultRow[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Test database connection with security validation
|
|
59
|
+
*/
|
|
12
60
|
testConnection(debugConfig?: import('../types.js').DebugConfig): Promise<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Helper method to merge debug configuration
|
|
63
|
+
*/
|
|
13
64
|
private mergeDebugConfig;
|
|
65
|
+
/**
|
|
66
|
+
* Generate connection suggestions based on error
|
|
67
|
+
*/
|
|
14
68
|
private generateConnectionSuggestion;
|
|
69
|
+
/**
|
|
70
|
+
* List all tables in the public schema
|
|
71
|
+
*/
|
|
15
72
|
listTables(): Promise<string[]>;
|
|
73
|
+
/**
|
|
74
|
+
* Get table schema information securely
|
|
75
|
+
*/
|
|
16
76
|
getTableSchema(table: string): Promise<TableSchema>;
|
|
77
|
+
/**
|
|
78
|
+
* Get last modified timestamp using PostgreSQL-specific methods
|
|
79
|
+
*/
|
|
17
80
|
getLastModified(table: string): Promise<Date | null>;
|
|
81
|
+
/**
|
|
82
|
+
* Close the database connection
|
|
83
|
+
*/
|
|
18
84
|
close(): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Map PostgreSQL data types to standard types
|
|
87
|
+
*/
|
|
19
88
|
private mapPostgresType;
|
|
89
|
+
/**
|
|
90
|
+
* Legacy connect method for backward compatibility
|
|
91
|
+
* @deprecated Use constructor with ConnectorConfig instead
|
|
92
|
+
*/
|
|
20
93
|
connectLegacy(credentials: SourceCredentials): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Legacy test connection method for backward compatibility
|
|
96
|
+
* @deprecated Use testConnection() instead
|
|
97
|
+
*/
|
|
21
98
|
testConnectionLegacy(): Promise<{
|
|
22
99
|
success: boolean;
|
|
23
100
|
tableCount?: number;
|
|
24
101
|
error?: string;
|
|
25
102
|
}>;
|
|
103
|
+
/**
|
|
104
|
+
* Legacy get table metadata method for backward compatibility
|
|
105
|
+
* @deprecated Use getRowCount() and getMaxTimestamp() instead
|
|
106
|
+
*/
|
|
26
107
|
getTableMetadata(tableName: string, timestampColumn?: string): Promise<{
|
|
27
108
|
rowCount: number;
|
|
28
109
|
lastUpdate?: Date;
|
|
29
110
|
}>;
|
|
111
|
+
/**
|
|
112
|
+
* Legacy query method for backward compatibility
|
|
113
|
+
* @deprecated Direct SQL queries are not allowed for security reasons
|
|
114
|
+
*/
|
|
30
115
|
query<T = unknown>(_sql: string): Promise<T[]>;
|
|
31
116
|
}
|
|
32
117
|
//# sourceMappingURL=postgres.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/connectors/postgres.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/connectors/postgres.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,SAAS,CAAS;IAE1B;;;OAGG;gBACS,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAM7E;;OAEG;IACH,OAAO,CAAC,OAAO;IAyCf;;OAEG;cACa,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIpE;;OAEG;cACa,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAqC7G;;OAEG;IACG,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA+DvF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA8BpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBrC;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA+CzD;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAyC1D;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;;OAGG;IAEG,aAAa,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlE;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA2BhG;;;OAGG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,eAAe,SAAe,GAC7B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;IAqBnD;;;OAGG;IAEG,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAKrD"}
|