mythik 0.1.2 → 0.1.4

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 (104) hide show
  1. package/README.md +64 -16
  2. package/dist/actions/dispatcher.d.ts.map +1 -1
  3. package/dist/actions/dispatcher.js +21 -2
  4. package/dist/actions/dispatcher.js.map +1 -1
  5. package/dist/expressions/handlers/let.d.ts +6 -0
  6. package/dist/expressions/handlers/let.d.ts.map +1 -1
  7. package/dist/expressions/handlers/let.js +29 -4
  8. package/dist/expressions/handlers/let.js.map +1 -1
  9. package/dist/expressions/handlers/template.d.ts.map +1 -1
  10. package/dist/expressions/handlers/template.js +2 -1
  11. package/dist/expressions/handlers/template.js.map +1 -1
  12. package/dist/renderer/prop-schemas.js +1 -1
  13. package/dist/renderer/prop-schemas.js.map +1 -1
  14. package/dist/security/api-spec-validator.d.ts.map +1 -1
  15. package/dist/security/api-spec-validator.js +4 -0
  16. package/dist/security/api-spec-validator.js.map +1 -1
  17. package/dist/security/spec-validator.d.ts.map +1 -1
  18. package/dist/security/spec-validator.js +43 -31
  19. package/dist/security/spec-validator.js.map +1 -1
  20. package/dist/server.d.ts +7 -0
  21. package/dist/server.d.ts.map +1 -1
  22. package/dist/server.js +3 -0
  23. package/dist/server.js.map +1 -1
  24. package/dist/spec-stores/sql-versioned.d.ts +38 -0
  25. package/dist/spec-stores/sql-versioned.d.ts.map +1 -0
  26. package/dist/spec-stores/sql-versioned.js +186 -0
  27. package/dist/spec-stores/sql-versioned.js.map +1 -0
  28. package/dist/spec-stores/sql.d.ts +21 -0
  29. package/dist/spec-stores/sql.d.ts.map +1 -0
  30. package/dist/spec-stores/sql.js +65 -0
  31. package/dist/spec-stores/sql.js.map +1 -0
  32. package/dist/spec-stores/sqlserver-versioned.d.ts +5 -30
  33. package/dist/spec-stores/sqlserver-versioned.d.ts.map +1 -1
  34. package/dist/spec-stores/sqlserver-versioned.js +16 -245
  35. package/dist/spec-stores/sqlserver-versioned.js.map +1 -1
  36. package/dist/spec-stores/sqlserver.d.ts +4 -11
  37. package/dist/spec-stores/sqlserver.d.ts.map +1 -1
  38. package/dist/spec-stores/sqlserver.js +16 -66
  39. package/dist/spec-stores/sqlserver.js.map +1 -1
  40. package/dist/sql/ddl.d.ts +7 -0
  41. package/dist/sql/ddl.d.ts.map +1 -0
  42. package/dist/sql/ddl.js +134 -0
  43. package/dist/sql/ddl.js.map +1 -0
  44. package/dist/sql/drivers/mysql.d.ts +25 -0
  45. package/dist/sql/drivers/mysql.d.ts.map +1 -0
  46. package/dist/sql/drivers/mysql.js +329 -0
  47. package/dist/sql/drivers/mysql.js.map +1 -0
  48. package/dist/sql/drivers/postgres.d.ts +30 -0
  49. package/dist/sql/drivers/postgres.d.ts.map +1 -0
  50. package/dist/sql/drivers/postgres.js +321 -0
  51. package/dist/sql/drivers/postgres.js.map +1 -0
  52. package/dist/sql/drivers/sqlite.d.ts +28 -0
  53. package/dist/sql/drivers/sqlite.d.ts.map +1 -0
  54. package/dist/sql/drivers/sqlite.js +369 -0
  55. package/dist/sql/drivers/sqlite.js.map +1 -0
  56. package/dist/sql/drivers/sqlserver.d.ts +46 -0
  57. package/dist/sql/drivers/sqlserver.d.ts.map +1 -0
  58. package/dist/sql/drivers/sqlserver.js +405 -0
  59. package/dist/sql/drivers/sqlserver.js.map +1 -0
  60. package/dist/sql/errors.d.ts +22 -0
  61. package/dist/sql/errors.d.ts.map +1 -0
  62. package/dist/sql/errors.js +27 -0
  63. package/dist/sql/errors.js.map +1 -0
  64. package/dist/sql/factory.d.ts +3 -0
  65. package/dist/sql/factory.d.ts.map +1 -0
  66. package/dist/sql/factory.js +24 -0
  67. package/dist/sql/factory.js.map +1 -0
  68. package/dist/sql/index.d.ts +17 -0
  69. package/dist/sql/index.d.ts.map +1 -0
  70. package/dist/sql/index.js +9 -0
  71. package/dist/sql/index.js.map +1 -0
  72. package/dist/sql/named-params.d.ts +8 -0
  73. package/dist/sql/named-params.d.ts.map +1 -0
  74. package/dist/sql/named-params.js +182 -0
  75. package/dist/sql/named-params.js.map +1 -0
  76. package/dist/sql/types.d.ts +49 -0
  77. package/dist/sql/types.d.ts.map +1 -0
  78. package/dist/sql/types.js +2 -0
  79. package/dist/sql/types.js.map +1 -0
  80. package/dist/types.d.ts +1 -1
  81. package/dist/types.d.ts.map +1 -1
  82. package/docs/consumer/README.md +1 -1
  83. package/docs/consumer/WHERE-TO-LOOK.md +4 -4
  84. package/docs/consumer/ai-context-api.md +44 -0
  85. package/docs/consumer/ai-context-primitives.md +3 -0
  86. package/docs/consumer/ai-context-runtime-semantics.md +8 -3
  87. package/docs/consumer/ai-context.md +123 -39
  88. package/docs/consumer/reference-doc.md +30 -8
  89. package/docs/wiki/compiled/README.md +1 -1
  90. package/docs/wiki/compiled/_lint.md +13 -8
  91. package/docs/wiki/compiled/action-fetch.md +7 -2
  92. package/docs/wiki/compiled/concept-action-chains.md +62 -24
  93. package/docs/wiki/compiled/concept-package-layout.md +11 -9
  94. package/docs/wiki/compiled/concept-public-package-names.md +24 -13
  95. package/docs/wiki/compiled/concept-shape-animations.md +1 -1
  96. package/docs/wiki/compiled/concept-spec-stores-catalog.md +28 -16
  97. package/docs/wiki/compiled/concept-transactions.md +20 -12
  98. package/docs/wiki/compiled/expression-let-ref.md +36 -18
  99. package/docs/wiki/compiled/expression-template.md +28 -17
  100. package/docs/wiki/compiled/path-ui-loading-error.md +5 -0
  101. package/docs/wiki/compiled/pattern-fetch-vs-datasources.md +5 -0
  102. package/docs/wiki/compiled/pattern-loading-content-empty.md +3 -2
  103. package/docs/wiki/compiled/primitive-select.md +16 -2
  104. package/package.json +25 -2
@@ -0,0 +1,369 @@
1
+ import { compileNamedParams as compileSqlNamedParams } from '../named-params.js';
2
+ import { missingSqlDriverDependencyError, SqlDriverError } from '../errors.js';
3
+ const SQLITE_CAPABILITIES = {
4
+ dialect: 'sqlite',
5
+ namedParams: true,
6
+ positionalParams: true,
7
+ nativeJson: false,
8
+ nativeBoolean: false,
9
+ returning: true,
10
+ upsert: true,
11
+ transactions: true,
12
+ };
13
+ function isRecord(value) {
14
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
15
+ }
16
+ function sqliteConnectionOptions(connection) {
17
+ if (typeof connection === 'string') {
18
+ return { filename: connection };
19
+ }
20
+ if (isRecord(connection)) {
21
+ return connection;
22
+ }
23
+ return {};
24
+ }
25
+ function sqliteValue(value) {
26
+ if (value === undefined)
27
+ return null;
28
+ if (value === null)
29
+ return null;
30
+ if (typeof value === 'boolean')
31
+ return value ? 1 : 0;
32
+ if (typeof value === 'number' || typeof value === 'string' || typeof value === 'bigint')
33
+ return value;
34
+ if (Buffer.isBuffer(value))
35
+ return value;
36
+ if (value instanceof Date)
37
+ return value.toISOString();
38
+ return JSON.stringify(value);
39
+ }
40
+ function sqliteParams(params) {
41
+ if (params === undefined)
42
+ return undefined;
43
+ if (Array.isArray(params))
44
+ return params.map(sqliteValue);
45
+ const normalized = {};
46
+ for (const [key, value] of Object.entries(params)) {
47
+ normalized[key] = sqliteValue(value);
48
+ }
49
+ return normalized;
50
+ }
51
+ function bindAll(statement, params) {
52
+ if (params === undefined)
53
+ return statement.all();
54
+ if (Array.isArray(params))
55
+ return statement.all(...params);
56
+ return statement.all(params);
57
+ }
58
+ function bindRun(statement, params) {
59
+ if (params === undefined)
60
+ return statement.run();
61
+ if (Array.isArray(params))
62
+ return statement.run(...params);
63
+ return statement.run(params);
64
+ }
65
+ function isPlainSqlParams(params) {
66
+ return params !== undefined && !Array.isArray(params);
67
+ }
68
+ function hasReturning(statement) {
69
+ return /\breturning\b/i.test(statement);
70
+ }
71
+ function isScript(statement, params) {
72
+ return params === undefined && /;\s*\S/.test(statement.trim());
73
+ }
74
+ function trimStatement(statement) {
75
+ return statement.trim().replace(/;\s*$/, '');
76
+ }
77
+ function hasOrderBy(statement) {
78
+ return /\border\s+by\b/i.test(statement);
79
+ }
80
+ function normalizeStatement(statement, params) {
81
+ const source = typeof statement === 'string' ? { sql: statement, params } : statement;
82
+ if (isPlainSqlParams(source.params)) {
83
+ return compileSqlNamedParams('sqlite', source.sql, source.params);
84
+ }
85
+ return source;
86
+ }
87
+ function requireIdentifier(identifier) {
88
+ if (identifier.trim() === '') {
89
+ throw new SqlDriverError('SQL identifier cannot be empty.', {
90
+ code: 'SQL_IDENTIFIER_INVALID',
91
+ dialect: 'sqlite',
92
+ });
93
+ }
94
+ return identifier;
95
+ }
96
+ function whereClause(where) {
97
+ const sql = trimStatement(where.sql);
98
+ return /^where\b/i.test(sql) ? sql : `WHERE ${sql}`;
99
+ }
100
+ function requireObjectParams(statement, purpose) {
101
+ if (statement.params === undefined)
102
+ return {};
103
+ if (!isRecord(statement.params)) {
104
+ throw new SqlDriverError(`${purpose} requires named object params.`, {
105
+ code: 'SQL_PARAMS_INVALID',
106
+ dialect: 'sqlite',
107
+ });
108
+ }
109
+ return statement.params;
110
+ }
111
+ function resultInsertId(rows, fallback) {
112
+ if (fallback !== undefined)
113
+ return fallback;
114
+ const first = rows[0];
115
+ if (first && Object.prototype.hasOwnProperty.call(first, 'id'))
116
+ return first.id;
117
+ return undefined;
118
+ }
119
+ function uniqueParamName(base, used) {
120
+ const safeBase = base.replace(/[^A-Za-z0-9_]/g, '_').replace(/^[^A-Za-z_]+/, '') || 'value';
121
+ let name = safeBase;
122
+ let suffix = 1;
123
+ while (used.has(name)) {
124
+ suffix += 1;
125
+ name = `${safeBase}_${suffix}`;
126
+ }
127
+ used.add(name);
128
+ return name;
129
+ }
130
+ async function loadBetterSqlite() {
131
+ try {
132
+ const mod = await import('better-sqlite3');
133
+ return mod.default;
134
+ }
135
+ catch (error) {
136
+ throw missingSqlDriverDependencyError({
137
+ label: 'SQLite',
138
+ dialect: 'sqlite',
139
+ packageName: 'better-sqlite3',
140
+ cause: error,
141
+ });
142
+ }
143
+ }
144
+ export function createSqliteDriver(config, deps = {}) {
145
+ let db;
146
+ const loadDatabase = deps.loadDatabase ?? loadBetterSqlite;
147
+ function mapError(error, code = 'SQL_DRIVER_QUERY_FAILED') {
148
+ if (error instanceof SqlDriverError)
149
+ return error;
150
+ return new SqlDriverError(error instanceof Error ? error.message : 'SQLite driver error.', {
151
+ code,
152
+ dialect: 'sqlite',
153
+ cause: error,
154
+ });
155
+ }
156
+ async function database() {
157
+ if (db)
158
+ return db;
159
+ let Database;
160
+ try {
161
+ Database = await loadDatabase();
162
+ }
163
+ catch (error) {
164
+ if (error instanceof SqlDriverError)
165
+ throw error;
166
+ throw missingSqlDriverDependencyError({
167
+ label: 'SQLite',
168
+ dialect: 'sqlite',
169
+ packageName: 'better-sqlite3',
170
+ cause: error,
171
+ });
172
+ }
173
+ const { filename = ':memory:', ...options } = sqliteConnectionOptions(config.connection);
174
+ db = new Database(filename, options);
175
+ return db;
176
+ }
177
+ const driver = {
178
+ dialect: 'sqlite',
179
+ capabilities: SQLITE_CAPABILITIES,
180
+ async connect() {
181
+ await database();
182
+ },
183
+ async close() {
184
+ db?.close();
185
+ db = undefined;
186
+ },
187
+ async query(statement, params) {
188
+ try {
189
+ const currentDb = await database();
190
+ return runQueryOn(currentDb, statement, params);
191
+ }
192
+ catch (error) {
193
+ throw mapError(error);
194
+ }
195
+ },
196
+ async exec(statement, params) {
197
+ try {
198
+ const currentDb = await database();
199
+ return runExecOn(currentDb, statement, params);
200
+ }
201
+ catch (error) {
202
+ throw mapError(error);
203
+ }
204
+ },
205
+ async transaction(run) {
206
+ const currentDb = await database();
207
+ currentDb.exec('BEGIN');
208
+ try {
209
+ const tx = {
210
+ query: async (statement, params) => {
211
+ try {
212
+ return runQueryOn(currentDb, statement, params);
213
+ }
214
+ catch (error) {
215
+ throw mapError(error);
216
+ }
217
+ },
218
+ exec: async (statement, params) => {
219
+ try {
220
+ return runExecOn(currentDb, statement, params);
221
+ }
222
+ catch (error) {
223
+ throw mapError(error);
224
+ }
225
+ },
226
+ };
227
+ const result = await run(tx);
228
+ currentDb.exec('COMMIT');
229
+ return result;
230
+ }
231
+ catch (error) {
232
+ currentDb.exec('ROLLBACK');
233
+ throw error;
234
+ }
235
+ },
236
+ quoteIdent(identifier) {
237
+ return `"${requireIdentifier(identifier).replace(/"/g, '""')}"`;
238
+ },
239
+ quoteQualified(...identifiers) {
240
+ return identifiers.map((identifier) => driver.quoteIdent(identifier)).join('.');
241
+ },
242
+ compileNamedParams(statement, params) {
243
+ return compileSqlNamedParams('sqlite', statement, params);
244
+ },
245
+ paginate(statement, limit, offset) {
246
+ const cleanLimit = Math.trunc(limit);
247
+ const cleanOffset = Math.trunc(offset);
248
+ if (!Number.isFinite(cleanLimit) || cleanLimit < 0 || !Number.isFinite(cleanOffset) || cleanOffset < 0) {
249
+ throw new SqlDriverError('SQLite pagination limit and offset must be finite non-negative numbers.', {
250
+ code: 'SQL_PAGINATION_INVALID',
251
+ dialect: 'sqlite',
252
+ });
253
+ }
254
+ const base = trimStatement(statement);
255
+ const ordered = hasOrderBy(base) ? base : `${base} ORDER BY 1`;
256
+ return `${ordered} LIMIT ${cleanLimit} OFFSET ${cleanOffset}`;
257
+ },
258
+ countQuery(statement) {
259
+ return `SELECT COUNT(*) AS total FROM (${trimStatement(statement)}) AS _mythik_count`;
260
+ },
261
+ totalsQuery(statement) {
262
+ return `SELECT * FROM (${trimStatement(statement)}) AS _mythik_totals`;
263
+ },
264
+ buildInsertReturning(table, values, returning = ['*']) {
265
+ const columns = Object.keys(values);
266
+ if (columns.length === 0) {
267
+ throw new SqlDriverError('SQLite insert requires at least one value.', {
268
+ code: 'SQL_VALUES_EMPTY',
269
+ dialect: 'sqlite',
270
+ });
271
+ }
272
+ const used = new Set();
273
+ const params = {};
274
+ const placeholders = columns.map((column) => {
275
+ const name = uniqueParamName(column, used);
276
+ params[name] = values[column];
277
+ return `@${name}`;
278
+ });
279
+ const projection = returning.includes('*') ? '*' : returning.map((column) => driver.quoteIdent(column)).join(', ');
280
+ return {
281
+ sql: `INSERT INTO ${driver.quoteIdent(table)} (${columns.map((column) => driver.quoteIdent(column)).join(', ')}) VALUES (${placeholders.join(', ')}) RETURNING ${projection}`,
282
+ params,
283
+ };
284
+ },
285
+ buildUpdateReturning(table, values, where, returning = ['*']) {
286
+ const columns = Object.keys(values);
287
+ if (columns.length === 0) {
288
+ throw new SqlDriverError('SQLite update requires at least one value.', {
289
+ code: 'SQL_VALUES_EMPTY',
290
+ dialect: 'sqlite',
291
+ });
292
+ }
293
+ const params = { ...requireObjectParams(where, 'SQLite update') };
294
+ const used = new Set(Object.keys(params));
295
+ const assignments = columns.map((column) => {
296
+ const name = uniqueParamName(`set_${column}`, used);
297
+ params[name] = values[column];
298
+ return `${driver.quoteIdent(column)} = @${name}`;
299
+ });
300
+ const projection = returning.includes('*') ? '*' : returning.map((column) => driver.quoteIdent(column)).join(', ');
301
+ return {
302
+ sql: `UPDATE ${driver.quoteIdent(table)} SET ${assignments.join(', ')} ${whereClause(where)} RETURNING ${projection}`,
303
+ params,
304
+ };
305
+ },
306
+ buildDelete(table, where) {
307
+ return {
308
+ sql: `DELETE FROM ${driver.quoteIdent(table)} ${whereClause(where)}`,
309
+ params: where.params,
310
+ };
311
+ },
312
+ buildUpsert(table, values, keys) {
313
+ if (keys.length === 0) {
314
+ throw new SqlDriverError('SQLite upsert requires at least one conflict key.', {
315
+ code: 'SQL_KEYS_EMPTY',
316
+ dialect: 'sqlite',
317
+ });
318
+ }
319
+ const insert = driver.buildInsertReturning(table, values, ['*']);
320
+ const columns = Object.keys(values);
321
+ const conflict = keys.map((key) => driver.quoteIdent(key)).join(', ');
322
+ const updateColumns = columns.filter((column) => !keys.includes(column));
323
+ const action = updateColumns.length === 0
324
+ ? 'DO NOTHING'
325
+ : `DO UPDATE SET ${updateColumns
326
+ .map((column) => `${driver.quoteIdent(column)} = excluded.${driver.quoteIdent(column)}`)
327
+ .join(', ')}`;
328
+ return {
329
+ sql: insert.sql.replace(/\sRETURNING\s\*$/i, ` ON CONFLICT (${conflict}) ${action} RETURNING *`),
330
+ params: insert.params,
331
+ };
332
+ },
333
+ async tableExists(table) {
334
+ const rows = await driver.query("SELECT name FROM sqlite_master WHERE type IN ('table', 'view') AND name = @table UNION ALL SELECT name FROM sqlite_temp_master WHERE type IN ('table', 'view') AND name = @table", { table });
335
+ return rows.length > 0;
336
+ },
337
+ mapError,
338
+ };
339
+ function runQueryOn(currentDb, statement, params) {
340
+ const normalized = normalizeStatement(statement, params);
341
+ return bindAll(currentDb.prepare(normalized.sql), sqliteParams(normalized.params));
342
+ }
343
+ function runExecOn(currentDb, statement, params) {
344
+ const normalized = normalizeStatement(statement, params);
345
+ const sql = normalized.sql;
346
+ if (isScript(sql, normalized.params)) {
347
+ currentDb.exec(sql);
348
+ return { rows: [], affectedRows: 0 };
349
+ }
350
+ const prepared = currentDb.prepare(sql);
351
+ const boundParams = sqliteParams(normalized.params);
352
+ if (hasReturning(sql)) {
353
+ const rows = bindAll(prepared, boundParams);
354
+ return {
355
+ rows,
356
+ affectedRows: rows.length,
357
+ insertId: resultInsertId(rows, undefined),
358
+ };
359
+ }
360
+ const result = bindRun(prepared, boundParams);
361
+ return {
362
+ rows: [],
363
+ affectedRows: result.changes,
364
+ insertId: result.lastInsertRowid,
365
+ };
366
+ }
367
+ return driver;
368
+ }
369
+ //# sourceMappingURL=sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../src/sql/drivers/sqlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { SqlDriver, SqlDriverConfig } from '../types.js';
2
+ interface MssqlRequest {
3
+ input(name: string, type: unknown, value: unknown): MssqlRequest;
4
+ query(sql: string): Promise<{
5
+ recordset?: Record<string, unknown>[];
6
+ rowsAffected?: number[];
7
+ }>;
8
+ }
9
+ interface MssqlConnection {
10
+ request(): MssqlRequest;
11
+ close(): Promise<void>;
12
+ }
13
+ interface MssqlTransaction {
14
+ begin(): Promise<void>;
15
+ commit(): Promise<void>;
16
+ rollback(): Promise<void>;
17
+ request(): MssqlRequest;
18
+ }
19
+ interface MssqlConnectionPoolConstructor {
20
+ new (config: unknown): {
21
+ connect(): Promise<MssqlConnection>;
22
+ };
23
+ }
24
+ interface MssqlTransactionConstructor {
25
+ new (connection: MssqlConnection): MssqlTransaction;
26
+ }
27
+ interface MssqlModuleShape {
28
+ ConnectionPool: MssqlConnectionPoolConstructor;
29
+ Transaction?: MssqlTransactionConstructor;
30
+ NVarChar: ((length: unknown) => unknown) & unknown;
31
+ MAX: unknown;
32
+ Int?: unknown;
33
+ BigInt?: unknown;
34
+ Bit?: unknown;
35
+ Float?: unknown;
36
+ DateTime2?: unknown;
37
+ }
38
+ type MssqlModuleImport = MssqlModuleShape & {
39
+ default?: MssqlModuleShape;
40
+ };
41
+ export interface SqlServerDriverDeps {
42
+ loadMssql?: () => Promise<MssqlModuleImport>;
43
+ }
44
+ export declare function createSqlServerDriver(config: SqlDriverConfig, deps?: SqlServerDriverDeps): SqlDriver;
45
+ export {};
46
+ //# sourceMappingURL=sqlserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlserver.d.ts","sourceRoot":"","sources":["../../../src/sql/drivers/sqlserver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAA8D,MAAM,aAAa,CAAC;AAE1H,UAAU,YAAY;IACpB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IACjE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACjG;AAED,UAAU,eAAe;IACvB,OAAO,IAAI,YAAY,CAAC;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,YAAY,CAAC;CACzB;AAED,UAAU,8BAA8B;IACtC,KAAK,MAAM,EAAE,OAAO,GAAG;QAAE,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;KAAE,CAAC;CAChE;AAED,UAAU,2BAA2B;IACnC,KAAK,UAAU,EAAE,eAAe,GAAG,gBAAgB,CAAC;CACrD;AAED,UAAU,gBAAgB;IACxB,cAAc,EAAE,8BAA8B,CAAC;IAC/C,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,OAAO,CAAC;IACnD,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,KAAK,iBAAiB,GAAG,gBAAgB,GAAG;IAAE,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9C;AA6KD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,GAAE,mBAAwB,GAAG,SAAS,CAqRxG"}