lokicms-plugin-sql 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/federation/cache-layer.d.ts +58 -0
  2. package/dist/federation/cache-layer.d.ts.map +1 -0
  3. package/dist/federation/cache-layer.js +210 -0
  4. package/dist/federation/cache-layer.js.map +1 -0
  5. package/dist/federation/index.d.ts +12 -0
  6. package/dist/federation/index.d.ts.map +1 -0
  7. package/dist/federation/index.js +9 -0
  8. package/dist/federation/index.js.map +1 -0
  9. package/dist/federation/source-manager.d.ts +57 -0
  10. package/dist/federation/source-manager.d.ts.map +1 -0
  11. package/dist/federation/source-manager.js +238 -0
  12. package/dist/federation/source-manager.js.map +1 -0
  13. package/dist/federation/sync-engine.d.ts +68 -0
  14. package/dist/federation/sync-engine.d.ts.map +1 -0
  15. package/dist/federation/sync-engine.js +288 -0
  16. package/dist/federation/sync-engine.js.map +1 -0
  17. package/dist/index.d.ts +80 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +79 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/plugin.d.ts +28 -0
  22. package/dist/plugin.d.ts.map +1 -0
  23. package/dist/plugin.js +798 -0
  24. package/dist/plugin.js.map +1 -0
  25. package/dist/providers/base.d.ts +142 -0
  26. package/dist/providers/base.d.ts.map +1 -0
  27. package/dist/providers/base.js +161 -0
  28. package/dist/providers/base.js.map +1 -0
  29. package/dist/providers/index.d.ts +22 -0
  30. package/dist/providers/index.d.ts.map +1 -0
  31. package/dist/providers/index.js +74 -0
  32. package/dist/providers/index.js.map +1 -0
  33. package/dist/providers/mariadb.d.ts +83 -0
  34. package/dist/providers/mariadb.d.ts.map +1 -0
  35. package/dist/providers/mariadb.js +293 -0
  36. package/dist/providers/mariadb.js.map +1 -0
  37. package/dist/providers/mysql.d.ts +78 -0
  38. package/dist/providers/mysql.d.ts.map +1 -0
  39. package/dist/providers/mysql.js +284 -0
  40. package/dist/providers/mysql.js.map +1 -0
  41. package/dist/providers/postgresql.d.ts +77 -0
  42. package/dist/providers/postgresql.d.ts.map +1 -0
  43. package/dist/providers/postgresql.js +296 -0
  44. package/dist/providers/postgresql.js.map +1 -0
  45. package/dist/providers/sqlite.d.ts +80 -0
  46. package/dist/providers/sqlite.d.ts.map +1 -0
  47. package/dist/providers/sqlite.js +283 -0
  48. package/dist/providers/sqlite.js.map +1 -0
  49. package/dist/query/builder.d.ts +74 -0
  50. package/dist/query/builder.d.ts.map +1 -0
  51. package/dist/query/builder.js +279 -0
  52. package/dist/query/builder.js.map +1 -0
  53. package/dist/query/index.d.ts +10 -0
  54. package/dist/query/index.d.ts.map +1 -0
  55. package/dist/query/index.js +8 -0
  56. package/dist/query/index.js.map +1 -0
  57. package/dist/query/transformer.d.ts +74 -0
  58. package/dist/query/transformer.d.ts.map +1 -0
  59. package/dist/query/transformer.js +236 -0
  60. package/dist/query/transformer.js.map +1 -0
  61. package/dist/types.d.ts +350 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +38 -0
  64. package/dist/types.js.map +1 -0
  65. package/dist/vectors/adapter.d.ts +128 -0
  66. package/dist/vectors/adapter.d.ts.map +1 -0
  67. package/dist/vectors/adapter.js +79 -0
  68. package/dist/vectors/adapter.js.map +1 -0
  69. package/dist/vectors/index.d.ts +41 -0
  70. package/dist/vectors/index.d.ts.map +1 -0
  71. package/dist/vectors/index.js +87 -0
  72. package/dist/vectors/index.js.map +1 -0
  73. package/dist/vectors/lokijs-vector.d.ts +112 -0
  74. package/dist/vectors/lokijs-vector.d.ts.map +1 -0
  75. package/dist/vectors/lokijs-vector.js +217 -0
  76. package/dist/vectors/lokijs-vector.js.map +1 -0
  77. package/dist/vectors/mariadb-vector.d.ts +56 -0
  78. package/dist/vectors/mariadb-vector.d.ts.map +1 -0
  79. package/dist/vectors/mariadb-vector.js +263 -0
  80. package/dist/vectors/mariadb-vector.js.map +1 -0
  81. package/dist/vectors/mysql-vector.d.ts +56 -0
  82. package/dist/vectors/mysql-vector.d.ts.map +1 -0
  83. package/dist/vectors/mysql-vector.js +235 -0
  84. package/dist/vectors/mysql-vector.js.map +1 -0
  85. package/dist/vectors/pgvector.d.ts +52 -0
  86. package/dist/vectors/pgvector.d.ts.map +1 -0
  87. package/dist/vectors/pgvector.js +190 -0
  88. package/dist/vectors/pgvector.js.map +1 -0
  89. package/dist/vectors/sqlite-vec.d.ts +80 -0
  90. package/dist/vectors/sqlite-vec.d.ts.map +1 -0
  91. package/dist/vectors/sqlite-vec.js +362 -0
  92. package/dist/vectors/sqlite-vec.js.map +1 -0
  93. package/package.json +64 -0
@@ -0,0 +1,77 @@
1
+ /**
2
+ * PostgreSQL Provider
3
+ *
4
+ * PostgreSQL database provider with pgvector support detection.
5
+ */
6
+ import type { ProviderCapabilities, QueryResult, DatabaseSchema, TableInfo } from '../types.js';
7
+ import { BaseProvider, BaseProviderOptions } from './base.js';
8
+ /**
9
+ * PostgreSQL Provider
10
+ */
11
+ export declare class PostgreSQLProvider extends BaseProvider {
12
+ private pool;
13
+ private client;
14
+ private capabilities;
15
+ constructor(options: BaseProviderOptions);
16
+ /**
17
+ * Connect to PostgreSQL
18
+ */
19
+ connect(): Promise<void>;
20
+ /**
21
+ * Disconnect from PostgreSQL
22
+ */
23
+ disconnect(): Promise<void>;
24
+ /**
25
+ * Detect database capabilities
26
+ */
27
+ private detectCapabilities;
28
+ /**
29
+ * Get capabilities
30
+ */
31
+ getCapabilities(): Promise<ProviderCapabilities>;
32
+ /**
33
+ * Execute a query
34
+ */
35
+ query<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<QueryResult<T>>;
36
+ /**
37
+ * Execute a non-query statement
38
+ */
39
+ execute(sql: string, params?: unknown[]): Promise<number>;
40
+ /**
41
+ * Begin transaction
42
+ */
43
+ beginTransaction(): Promise<void>;
44
+ /**
45
+ * Commit transaction
46
+ */
47
+ commit(): Promise<void>;
48
+ /**
49
+ * Rollback transaction
50
+ */
51
+ rollback(): Promise<void>;
52
+ /**
53
+ * Get database schema
54
+ */
55
+ getSchema(): Promise<DatabaseSchema>;
56
+ /**
57
+ * Get table info
58
+ */
59
+ getTableInfo(tableName: string, schema?: string): Promise<TableInfo | null>;
60
+ /**
61
+ * Escape identifier
62
+ */
63
+ escapeIdentifier(name: string): string;
64
+ /**
65
+ * Get parameter placeholder
66
+ */
67
+ getPlaceholder(index: number): string;
68
+ /**
69
+ * Map column type
70
+ */
71
+ protected mapColumnType(type: string): string;
72
+ /**
73
+ * Enable pgvector extension
74
+ */
75
+ enableVectors(): Promise<boolean>;
76
+ }
77
+ //# sourceMappingURL=postgresql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgresql.d.ts","sourceRoot":"","sources":["../../src/providers/postgresql.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,SAAS,EAEV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAkB9D;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,IAAI,CAAkC;IAC9C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,YAAY,CAAqC;gBAE7C,OAAO,EAAE,mBAAmB;IAIxC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;OAEG;YACW,kBAAkB;IAqChC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAOtD;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAiB1B;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAU/D;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYvC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAgC1C;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IA2DnF;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAItC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIrC;;OAEG;cACgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAmBtD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;CAaxC"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * PostgreSQL Provider
3
+ *
4
+ * PostgreSQL database provider with pgvector support detection.
5
+ */
6
+ import { BaseProvider } from './base.js';
7
+ // Dynamic import for pg
8
+ let pg = null;
9
+ async function getPg() {
10
+ if (!pg) {
11
+ try {
12
+ pg = await import('pg');
13
+ }
14
+ catch {
15
+ throw new Error('pg package not installed. Install with: npm install pg');
16
+ }
17
+ }
18
+ return pg;
19
+ }
20
+ /**
21
+ * PostgreSQL Provider
22
+ */
23
+ export class PostgreSQLProvider extends BaseProvider {
24
+ pool = null;
25
+ client = null;
26
+ capabilities = null;
27
+ constructor(options) {
28
+ super({ ...options, type: 'postgresql' });
29
+ }
30
+ /**
31
+ * Connect to PostgreSQL
32
+ */
33
+ async connect() {
34
+ if (this.connected)
35
+ return;
36
+ const { Pool } = await getPg();
37
+ const config = this.config;
38
+ this.pool = new Pool({
39
+ connectionString: config.connectionString,
40
+ host: config.host,
41
+ port: config.port ?? 5432,
42
+ database: config.database,
43
+ user: config.user,
44
+ password: config.password,
45
+ ssl: config.ssl,
46
+ max: 10,
47
+ idleTimeoutMillis: 30000,
48
+ connectionTimeoutMillis: 5000,
49
+ });
50
+ // Test connection
51
+ const testClient = await this.pool.connect();
52
+ testClient.release();
53
+ this.connected = true;
54
+ this.logger.info('PostgreSQL connected');
55
+ // Detect capabilities
56
+ this.capabilities = await this.detectCapabilities();
57
+ }
58
+ /**
59
+ * Disconnect from PostgreSQL
60
+ */
61
+ async disconnect() {
62
+ if (this.client) {
63
+ this.client.release();
64
+ this.client = null;
65
+ }
66
+ if (this.pool) {
67
+ await this.pool.end();
68
+ this.pool = null;
69
+ }
70
+ this.connected = false;
71
+ this.logger.info('PostgreSQL disconnected');
72
+ }
73
+ /**
74
+ * Detect database capabilities
75
+ */
76
+ async detectCapabilities() {
77
+ const caps = {
78
+ json: true, // PostgreSQL has native JSONB
79
+ vectors: false,
80
+ fullText: true,
81
+ fullTextMethod: 'tsvector',
82
+ transactions: true,
83
+ };
84
+ // Check for pgvector extension
85
+ try {
86
+ const result = await this.query("SELECT extversion FROM pg_extension WHERE extname = 'vector'");
87
+ if (result.rows.length > 0) {
88
+ caps.vectors = true;
89
+ caps.vectorInfo = `pgvector ${result.rows[0].extversion}`;
90
+ }
91
+ }
92
+ catch {
93
+ // Extension not available
94
+ }
95
+ // Get max connections
96
+ try {
97
+ const result = await this.query('SHOW max_connections');
98
+ if (result.rows.length > 0) {
99
+ caps.maxConnections = parseInt(result.rows[0].max_connections, 10);
100
+ }
101
+ }
102
+ catch {
103
+ // Ignore
104
+ }
105
+ return caps;
106
+ }
107
+ /**
108
+ * Get capabilities
109
+ */
110
+ async getCapabilities() {
111
+ if (!this.capabilities) {
112
+ this.capabilities = await this.detectCapabilities();
113
+ }
114
+ return this.capabilities;
115
+ }
116
+ /**
117
+ * Execute a query
118
+ */
119
+ async query(sql, params) {
120
+ this.assertConnected();
121
+ this.logQuery(sql, params);
122
+ const client = this.client ?? this.pool;
123
+ const result = await client.query(sql, params);
124
+ return {
125
+ rows: result.rows,
126
+ rowCount: result.rowCount ?? 0,
127
+ fields: result.fields?.map((f) => ({
128
+ name: f.name,
129
+ dataType: String(f.dataTypeID),
130
+ })),
131
+ };
132
+ }
133
+ /**
134
+ * Execute a non-query statement
135
+ */
136
+ async execute(sql, params) {
137
+ this.assertConnected();
138
+ this.assertWritable();
139
+ this.logQuery(sql, params);
140
+ const client = this.client ?? this.pool;
141
+ const result = await client.query(sql, params);
142
+ return result.rowCount ?? 0;
143
+ }
144
+ /**
145
+ * Begin transaction
146
+ */
147
+ async beginTransaction() {
148
+ this.assertConnected();
149
+ if (this.inTransaction) {
150
+ throw new Error('Transaction already in progress');
151
+ }
152
+ this.client = await this.pool.connect();
153
+ await this.client.query('BEGIN');
154
+ this.inTransaction = true;
155
+ }
156
+ /**
157
+ * Commit transaction
158
+ */
159
+ async commit() {
160
+ if (!this.inTransaction || !this.client) {
161
+ throw new Error('No transaction in progress');
162
+ }
163
+ await this.client.query('COMMIT');
164
+ this.client.release();
165
+ this.client = null;
166
+ this.inTransaction = false;
167
+ }
168
+ /**
169
+ * Rollback transaction
170
+ */
171
+ async rollback() {
172
+ if (!this.inTransaction || !this.client) {
173
+ throw new Error('No transaction in progress');
174
+ }
175
+ await this.client.query('ROLLBACK');
176
+ this.client.release();
177
+ this.client = null;
178
+ this.inTransaction = false;
179
+ }
180
+ /**
181
+ * Get database schema
182
+ */
183
+ async getSchema() {
184
+ this.assertConnected();
185
+ // Get tables
186
+ const tablesResult = await this.query(`SELECT table_name, table_schema
187
+ FROM information_schema.tables
188
+ WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
189
+ AND table_type = 'BASE TABLE'
190
+ ORDER BY table_schema, table_name`);
191
+ const tables = [];
192
+ for (const row of tablesResult.rows) {
193
+ const info = await this.getTableInfo(row.table_name, row.table_schema);
194
+ if (info)
195
+ tables.push(info);
196
+ }
197
+ // Get views
198
+ const viewsResult = await this.query(`SELECT table_name
199
+ FROM information_schema.views
200
+ WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
201
+ ORDER BY table_name`);
202
+ return {
203
+ tables,
204
+ views: viewsResult.rows.map((r) => r.table_name),
205
+ };
206
+ }
207
+ /**
208
+ * Get table info
209
+ */
210
+ async getTableInfo(tableName, schema = 'public') {
211
+ this.assertConnected();
212
+ // Get columns
213
+ const columnsResult = await this.query(`SELECT column_name, data_type, is_nullable, column_default
214
+ FROM information_schema.columns
215
+ WHERE table_name = $1 AND table_schema = $2
216
+ ORDER BY ordinal_position`, [tableName, schema]);
217
+ if (columnsResult.rows.length === 0) {
218
+ return null;
219
+ }
220
+ // Get primary key columns
221
+ const pkResult = await this.query(`SELECT a.attname as column_name
222
+ FROM pg_index i
223
+ JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey)
224
+ JOIN pg_class c ON c.oid = i.indrelid
225
+ JOIN pg_namespace n ON n.oid = c.relnamespace
226
+ WHERE c.relname = $1 AND n.nspname = $2 AND i.indisprimary`, [tableName, schema]);
227
+ const pkColumns = new Set(pkResult.rows.map((r) => r.column_name));
228
+ // Get row count estimate
229
+ const countResult = await this.query(`SELECT reltuples::bigint as estimate
230
+ FROM pg_class c
231
+ JOIN pg_namespace n ON n.oid = c.relnamespace
232
+ WHERE c.relname = $1 AND n.nspname = $2`, [tableName, schema]);
233
+ const columns = columnsResult.rows.map((row) => ({
234
+ name: row.column_name,
235
+ type: row.data_type,
236
+ nullable: row.is_nullable === 'YES',
237
+ primaryKey: pkColumns.has(row.column_name),
238
+ defaultValue: row.column_default,
239
+ }));
240
+ return {
241
+ name: tableName,
242
+ schema,
243
+ columns,
244
+ rowCount: countResult.rows[0]?.estimate ?? 0,
245
+ };
246
+ }
247
+ /**
248
+ * Escape identifier
249
+ */
250
+ escapeIdentifier(name) {
251
+ return `"${name.replace(/"/g, '""')}"`;
252
+ }
253
+ /**
254
+ * Get parameter placeholder
255
+ */
256
+ getPlaceholder(index) {
257
+ return `$${index + 1}`;
258
+ }
259
+ /**
260
+ * Map column type
261
+ */
262
+ mapColumnType(type) {
263
+ const typeMap = {
264
+ string: 'VARCHAR(255)',
265
+ text: 'TEXT',
266
+ integer: 'INTEGER',
267
+ bigint: 'BIGINT',
268
+ float: 'REAL',
269
+ double: 'DOUBLE PRECISION',
270
+ boolean: 'BOOLEAN',
271
+ date: 'DATE',
272
+ datetime: 'TIMESTAMP WITH TIME ZONE',
273
+ json: 'JSONB',
274
+ blob: 'BYTEA',
275
+ vector: 'vector', // pgvector type
276
+ };
277
+ return typeMap[type.toLowerCase()] ?? type;
278
+ }
279
+ /**
280
+ * Enable pgvector extension
281
+ */
282
+ async enableVectors() {
283
+ this.assertConnected();
284
+ this.assertWritable();
285
+ try {
286
+ await this.execute('CREATE EXTENSION IF NOT EXISTS vector');
287
+ this.capabilities = await this.detectCapabilities();
288
+ return this.capabilities.vectors;
289
+ }
290
+ catch (error) {
291
+ this.logger.error(`Failed to enable pgvector: ${error}`);
292
+ return false;
293
+ }
294
+ }
295
+ }
296
+ //# sourceMappingURL=postgresql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgresql.js","sourceRoot":"","sources":["../../src/providers/postgresql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * SQLite Provider
3
+ *
4
+ * SQLite database provider with sqlite-vec support detection.
5
+ */
6
+ import type { ProviderCapabilities, QueryResult, DatabaseSchema, TableInfo } from '../types.js';
7
+ import { BaseProvider, BaseProviderOptions } from './base.js';
8
+ /**
9
+ * SQLite Provider
10
+ */
11
+ export declare class SQLiteProvider extends BaseProvider {
12
+ private db;
13
+ private capabilities;
14
+ constructor(options: BaseProviderOptions);
15
+ /**
16
+ * Connect to SQLite
17
+ */
18
+ connect(): Promise<void>;
19
+ /**
20
+ * Disconnect from SQLite
21
+ */
22
+ disconnect(): Promise<void>;
23
+ /**
24
+ * Detect database capabilities
25
+ */
26
+ private detectCapabilities;
27
+ /**
28
+ * Get capabilities
29
+ */
30
+ getCapabilities(): Promise<ProviderCapabilities>;
31
+ /**
32
+ * Execute a query
33
+ */
34
+ query<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<QueryResult<T>>;
35
+ /**
36
+ * Execute a non-query statement
37
+ */
38
+ execute(sql: string, params?: unknown[]): Promise<number>;
39
+ /**
40
+ * Begin transaction
41
+ */
42
+ beginTransaction(): Promise<void>;
43
+ /**
44
+ * Commit transaction
45
+ */
46
+ commit(): Promise<void>;
47
+ /**
48
+ * Rollback transaction
49
+ */
50
+ rollback(): Promise<void>;
51
+ /**
52
+ * Get database schema
53
+ */
54
+ getSchema(): Promise<DatabaseSchema>;
55
+ /**
56
+ * Get table info
57
+ */
58
+ getTableInfo(tableName: string): Promise<TableInfo | null>;
59
+ /**
60
+ * Escape identifier
61
+ */
62
+ escapeIdentifier(name: string): string;
63
+ /**
64
+ * Get parameter placeholder
65
+ */
66
+ getPlaceholder(_index: number): string;
67
+ /**
68
+ * Map column type
69
+ */
70
+ protected mapColumnType(type: string): string;
71
+ /**
72
+ * Load sqlite-vec extension
73
+ */
74
+ loadVecExtension(path: string): Promise<boolean>;
75
+ /**
76
+ * Create FTS5 virtual table
77
+ */
78
+ createFTS5Table(tableName: string, columns: string[], contentTable?: string): Promise<void>;
79
+ }
80
+ //# sourceMappingURL=sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/providers/sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,SAAS,EAEV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AA8C9D;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,EAAE,CAAsC;IAChD,OAAO,CAAC,YAAY,CAAqC;gBAE7C,OAAO,EAAE,mBAAmB;IAIxC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;OAEG;YACW,kBAAkB;IAgChC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAOtD;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAyB1B;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAU/D;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWvC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IA6B1C;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAqChE;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAItC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAItC;;OAEG;cACgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAoBtD;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAatD;;OAEG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;CAkBjB"}