typesql-cli 0.8.24 → 0.9.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/code-generator.d.ts +6 -1
- package/code-generator.d.ts.map +1 -1
- package/code-generator.js +4 -1
- package/code-generator.js.map +1 -1
- package/describe-dynamic-query.d.ts +2 -1
- package/describe-dynamic-query.d.ts.map +1 -1
- package/describe-dynamic-query.js +103 -1
- package/describe-dynamic-query.js.map +1 -1
- package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
- package/mysql-query-analyzer/select-columns.js +2 -1
- package/mysql-query-analyzer/select-columns.js.map +1 -1
- package/mysql-query-analyzer/traverse.d.ts +11 -4
- package/mysql-query-analyzer/traverse.d.ts.map +1 -1
- package/mysql-query-analyzer/traverse.js +6 -0
- package/mysql-query-analyzer/traverse.js.map +1 -1
- package/mysql-query-analyzer/types.d.ts +51 -0
- package/mysql-query-analyzer/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/sqlite-query-analyzer/code-generator.d.ts.map +1 -1
- package/sqlite-query-analyzer/code-generator.js +292 -42
- package/sqlite-query-analyzer/code-generator.js.map +1 -1
- package/sqlite-query-analyzer/parser.d.ts +10 -0
- package/sqlite-query-analyzer/parser.d.ts.map +1 -1
- package/sqlite-query-analyzer/parser.js +53 -23
- package/sqlite-query-analyzer/parser.js.map +1 -1
- package/sqlite-query-analyzer/traverse.d.ts.map +1 -1
- package/sqlite-query-analyzer/traverse.js +142 -52
- package/sqlite-query-analyzer/traverse.js.map +1 -1
- package/types.d.ts +2 -1
- package/types.d.ts.map +1 -1
@@ -11,6 +11,8 @@ const code_block_writer_1 = __importDefault(require("code-block-writer"));
|
|
11
11
|
const ts_nested_descriptor_1 = require("../ts-nested-descriptor");
|
12
12
|
const describe_query_1 = require("../describe-query");
|
13
13
|
const query_executor_1 = require("./query-executor");
|
14
|
+
const ts_dynamic_query_descriptor_1 = require("../ts-dynamic-query-descriptor");
|
15
|
+
const os_1 = require("os");
|
14
16
|
function validateAndGenerateCode(client, sql, queryName, sqliteDbSchema, isCrud = false) {
|
15
17
|
const { sql: processedSql } = (0, describe_query_1.preprocessSql)(sql);
|
16
18
|
const explainSqlResult = (0, query_executor_1.explainSql)(client.client, processedSql);
|
@@ -108,6 +110,7 @@ function createTsDescriptor(queryInfo, client) {
|
|
108
110
|
});
|
109
111
|
tsDescriptor.nestedDescriptor2 = nestedDescriptor2;
|
110
112
|
}
|
113
|
+
tsDescriptor.dynamicQuery2 = queryInfo.dynamicSqlQuery2;
|
111
114
|
return tsDescriptor;
|
112
115
|
}
|
113
116
|
function mapColumns(client, queryType, columns, returning = false) {
|
@@ -213,51 +216,293 @@ function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud =
|
|
213
216
|
const generateOrderBy = tsDescriptor.orderByColumns != null && tsDescriptor.orderByColumns.length > 0;
|
214
217
|
const uniqueParams = (0, code_generator_1.removeDuplicatedParameters2)(tsDescriptor.parameters);
|
215
218
|
const uniqueUpdateParams = (0, code_generator_1.removeDuplicatedParameters2)(tsDescriptor.data || []);
|
219
|
+
const orderByField = generateOrderBy ? `orderBy: [${orderByTypeName}, 'asc' | 'desc'][]` : undefined;
|
220
|
+
const paramsTypes = (0, code_generator_1.removeDuplicatedParameters2)(tsDescriptor.dynamicQuery2 == null ? tsDescriptor.parameters : (0, ts_dynamic_query_descriptor_1.mapToDynamicParams)(tsDescriptor.parameters));
|
221
|
+
let functionArguments = client == 'sqlite' ? `db: Database` : 'client: Client | Transaction';
|
222
|
+
functionArguments += queryType == 'Update' ? `, data: ${dataTypeName}` : '';
|
223
|
+
if (tsDescriptor.dynamicQuery2 == null) {
|
224
|
+
functionArguments += tsDescriptor.parameters.length > 0 || generateOrderBy ? ', params: ' + paramsTypeName : '';
|
225
|
+
}
|
226
|
+
else {
|
227
|
+
functionArguments += `, ${orderByField ? 'params' : 'params?'}: ${dynamicParamsTypeName}`;
|
228
|
+
}
|
229
|
+
const orNull = queryType == 'Select' ? ' | null' : '';
|
230
|
+
const returnType = tsDescriptor.multipleRowsResult ? `${resultTypeName}[]` : `${resultTypeName}${orNull}`;
|
231
|
+
const allParameters = (((_a = tsDescriptor.data) === null || _a === void 0 ? void 0 : _a.map((param) => fromDriver('data', param))) || [])
|
232
|
+
.concat(tsDescriptor.parameters.map(param => fromDriver('params', param)));
|
233
|
+
const queryParams = allParameters.length > 0 ? '[' + allParameters.join(', ') + ']' : '';
|
216
234
|
if (client == 'sqlite') {
|
217
235
|
writer.writeLine(`import { Database } from 'better-sqlite3';`);
|
218
236
|
}
|
219
237
|
if (client == 'libsql') {
|
220
238
|
writer.writeLine(`import { Client, Transaction } from '@libsql/client';`);
|
221
239
|
}
|
222
|
-
if (
|
240
|
+
if (tsDescriptor.dynamicQuery2 != null) {
|
241
|
+
writer.writeLine(`import { EOL } from 'os';`);
|
242
|
+
writer.blankLine();
|
243
|
+
writer.write(`export type ${dynamicParamsTypeName} = `).block(() => {
|
244
|
+
writer.writeLine(`select?: ${selectColumnsTypeName};`);
|
245
|
+
if (paramsTypes.length > 0) {
|
246
|
+
writer.writeLine(`params?: ${paramsTypeName};`);
|
247
|
+
}
|
248
|
+
writer.writeLine(`where?: ${whereTypeName}[];`);
|
249
|
+
if (orderByField) {
|
250
|
+
writer.writeLine(`${orderByField};`);
|
251
|
+
}
|
252
|
+
});
|
223
253
|
writer.blankLine();
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
254
|
+
(0, code_generator_1.writeTypeBlock)(writer, paramsTypes, paramsTypeName, false, tsDescriptor.dynamicQuery2 ? undefined : orderByField);
|
255
|
+
const resultTypes = tsDescriptor.dynamicQuery2 == null ? tsDescriptor.columns : (0, ts_dynamic_query_descriptor_1.mapToDynamicResultColumns)(tsDescriptor.columns);
|
256
|
+
(0, code_generator_1.writeTypeBlock)(writer, resultTypes, resultTypeName, false);
|
257
|
+
const selectFields = (0, ts_dynamic_query_descriptor_1.mapToDynamicSelectColumns)(tsDescriptor.columns);
|
258
|
+
(0, code_generator_1.writeTypeBlock)(writer, selectFields, selectColumnsTypeName, false);
|
259
|
+
writer.write(`const selectFragments = `).inlineBlock(() => {
|
260
|
+
var _a;
|
261
|
+
(_a = tsDescriptor.dynamicQuery2) === null || _a === void 0 ? void 0 : _a.select.forEach((fragment, index) => {
|
262
|
+
const field = tsDescriptor.columns[index].name;
|
263
|
+
writer.writeLine(`${field}: \`${fragment.fragmentWitoutAlias}\`,`);
|
229
264
|
});
|
230
265
|
});
|
231
|
-
|
232
|
-
|
266
|
+
writer.write(' as const;');
|
267
|
+
writer.blankLine();
|
268
|
+
writer.writeLine(`const NumericOperatorList = ['=', '<>', '>', '<', '>=', '<='] as const;`);
|
269
|
+
writer.writeLine(`type NumericOperator = typeof NumericOperatorList[number];`);
|
270
|
+
if ((0, code_generator_1.hasStringColumn)(tsDescriptor.columns)) {
|
271
|
+
writer.writeLine(`type StringOperator = '=' | '<>' | '>' | '<' | '>=' | '<=' | 'LIKE';`);
|
272
|
+
}
|
273
|
+
writer.writeLine(`type SetOperator = 'IN' | 'NOT IN';`);
|
274
|
+
writer.writeLine(`type BetweenOperator = 'BETWEEN';`);
|
275
|
+
writer.blankLine();
|
276
|
+
writer.write(`export type ${whereTypeName} =`).indent(() => {
|
277
|
+
tsDescriptor.columns.forEach(col => {
|
278
|
+
writer.writeLine(`| ['${col.name}', ${(0, code_generator_1.getOperator)(col.tsType)}, ${col.tsType} | null]`);
|
279
|
+
writer.writeLine(`| ['${col.name}', SetOperator, ${col.tsType}[]]`);
|
280
|
+
writer.writeLine(`| ['${col.name}', BetweenOperator, ${col.tsType} | null, ${col.tsType} | null]`);
|
281
|
+
});
|
282
|
+
});
|
283
|
+
writer.blankLine();
|
284
|
+
const asyncModified = client == 'libsql' ? 'async ' : '';
|
285
|
+
const returnTypeModifier = client == 'libsql' ? `Promise<${returnType}>` : returnType;
|
286
|
+
writer.write(`export ${asyncModified}function ${camelCaseName}(${functionArguments}): ${returnTypeModifier}`).block(() => {
|
287
|
+
var _a, _b, _c, _d, _e;
|
288
|
+
writer.write('const where = whereConditionsToObject(params?.where);').newLine();
|
289
|
+
if (orderByField != null) {
|
290
|
+
writer.writeLine(`const orderBy = orderByToObject(params.orderBy);`);
|
291
|
+
}
|
292
|
+
writer.write('const paramsValues: any = [];').newLine();
|
293
|
+
const hasCte = (((_a = tsDescriptor.dynamicQuery2) === null || _a === void 0 ? void 0 : _a.with.length) || 0) > 0;
|
294
|
+
if (hasCte) {
|
295
|
+
writer.writeLine(`let withClause = '';`);
|
296
|
+
(_b = tsDescriptor.dynamicQuery2) === null || _b === void 0 ? void 0 : _b.with.forEach((withFragment, index) => {
|
297
|
+
var _a;
|
298
|
+
const selectConditions = withFragment.dependOnFields.map(fieldIndex => 'params.select.' + tsDescriptor.columns[fieldIndex].name);
|
299
|
+
if (selectConditions.length > 0) {
|
300
|
+
selectConditions.unshift('params?.select == null');
|
301
|
+
}
|
302
|
+
const paramConditions = withFragment.dependOnParams.map(param => 'params.params?.' + param + ' != null');
|
303
|
+
const whereConditions = withFragment.dependOnFields.map(fieldIndex => 'where.' + tsDescriptor.columns[fieldIndex].name + ' != null');
|
304
|
+
const orderByConditions = ((_a = withFragment.dependOnOrderBy) === null || _a === void 0 ? void 0 : _a.map(orderBy => 'orderBy[\'' + orderBy + '\'] != null')) || [];
|
305
|
+
const allConditions = [...selectConditions, ...paramConditions, ...whereConditions, ...orderByConditions];
|
306
|
+
const paramValues = withFragment.parameters.map(param => 'params?.params?.' + param);
|
307
|
+
writer.write(`if (${allConditions.join(os_1.EOL + '\t|| ')})`).block(() => {
|
308
|
+
writer.write(`withClause += EOL + \`${withFragment.fragment}\`;`);
|
309
|
+
paramValues.forEach(paramValues => {
|
310
|
+
writer.writeLine(`paramsValues.push(${paramValues});`);
|
311
|
+
});
|
312
|
+
});
|
313
|
+
});
|
314
|
+
writer.write(`let sql = 'WITH ' + withClause + EOL + 'SELECT';`).newLine();
|
315
|
+
}
|
316
|
+
else {
|
317
|
+
writer.write(`let sql = 'SELECT';`).newLine();
|
318
|
+
}
|
319
|
+
(_c = tsDescriptor.dynamicQuery2) === null || _c === void 0 ? void 0 : _c.select.forEach((select, index) => {
|
320
|
+
writer.write(`if (params?.select == null || params.select.${tsDescriptor.columns[index].name})`).block(() => {
|
321
|
+
writer.writeLine(`sql = appendSelect(sql, \`${select.fragment}\`);`);
|
322
|
+
});
|
323
|
+
});
|
324
|
+
(_d = tsDescriptor.dynamicQuery2) === null || _d === void 0 ? void 0 : _d.from.forEach((from, index) => {
|
325
|
+
var _a;
|
326
|
+
if (index == 0) {
|
327
|
+
writer.writeLine(`sql += EOL + \`${from.fragment}\`;`);
|
328
|
+
}
|
329
|
+
else {
|
330
|
+
const selectConditions = from.dependOnFields.map(fieldIndex => 'params.select.' + tsDescriptor.columns[fieldIndex].name);
|
331
|
+
if (selectConditions.length > 0) {
|
332
|
+
selectConditions.unshift('params?.select == null');
|
333
|
+
}
|
334
|
+
const paramConditions = from.dependOnParams.map(param => 'params.params?.' + param + ' != null');
|
335
|
+
const whereConditions = from.dependOnFields.map(fieldIndex => 'where.' + tsDescriptor.columns[fieldIndex].name + ' != null');
|
336
|
+
const orderByConditions = ((_a = from.dependOnOrderBy) === null || _a === void 0 ? void 0 : _a.map(orderBy => 'orderBy[\'' + orderBy + '\'] != null')) || [];
|
337
|
+
const allConditions = [...selectConditions, ...paramConditions, ...whereConditions, ...orderByConditions];
|
338
|
+
const paramValues = from.parameters.map(param => 'params?.params?.' + param);
|
339
|
+
writer.write(`if (${allConditions.join(os_1.EOL + '\t|| ')})`).block(() => {
|
340
|
+
writer.write(`sql += EOL + \`${from.fragment}\`;`);
|
341
|
+
paramValues.forEach(paramValues => {
|
342
|
+
writer.writeLine(`paramsValues.push(${paramValues});`);
|
343
|
+
});
|
344
|
+
});
|
345
|
+
}
|
346
|
+
});
|
347
|
+
writer.writeLine(`sql += EOL + \`WHERE 1 = 1\`;`);
|
348
|
+
(_e = tsDescriptor.dynamicQuery2) === null || _e === void 0 ? void 0 : _e.where.forEach(fragment => {
|
349
|
+
const ifParamConditions = fragment.dependOnParams.map(param => 'params?.params?.' + param + ' != null');
|
350
|
+
const paramValues = fragment.parameters.map(param => 'params.params.' + param);
|
351
|
+
if (ifParamConditions.length > 0) {
|
352
|
+
writer.write(`if (${ifParamConditions.join(' || ')})`).block(() => {
|
353
|
+
writer.writeLine(`sql += EOL + \`${fragment.fragment}\`;`);
|
354
|
+
paramValues.forEach(paramValues => {
|
355
|
+
writer.writeLine(`paramsValues.push(${paramValues});`);
|
356
|
+
});
|
357
|
+
});
|
358
|
+
}
|
359
|
+
else {
|
360
|
+
writer.writeLine(`sql += EOL + '${fragment.fragment}';`);
|
361
|
+
}
|
362
|
+
});
|
363
|
+
writer.write(`params?.where?.forEach(condition => `).inlineBlock(() => {
|
364
|
+
writer.writeLine(`const where = whereCondition(condition);`);
|
365
|
+
writer.write(`if (where?.hasValue)`).block(() => {
|
366
|
+
writer.writeLine(`sql += EOL + 'AND ' + where.sql;`);
|
367
|
+
writer.write(`paramsValues.push(...where.values);`);
|
368
|
+
});
|
369
|
+
});
|
370
|
+
writer.write(');').newLine();
|
371
|
+
if (tsDescriptor.orderByColumns) {
|
372
|
+
writer.writeLine('sql += EOL + `ORDER BY ${escapeOrderBy(params.orderBy)}`;');
|
373
|
+
}
|
374
|
+
if (client == 'sqlite') {
|
375
|
+
writer.write('return db.prepare(sql)').newLine();
|
376
|
+
writer.indent().write('.raw(true)').newLine();
|
377
|
+
writer.indent().write(`.all(paramsValues)`).newLine();
|
378
|
+
writer.indent().write(`.map(data => mapArrayTo${resultTypeName}(data, params?.select))${tsDescriptor.multipleRowsResult ? '' : '[0]'};`);
|
379
|
+
}
|
380
|
+
if (client == 'libsql') {
|
381
|
+
writer.write('return client.execute({ sql, args: paramsValues })').newLine();
|
382
|
+
writer.indent().write('.then(res => res.rows)').newLine();
|
383
|
+
writer.indent().write(`.then(rows => rows.map(row => mapArrayTo${resultTypeName}(row, params?.select)))${tsDescriptor.multipleRowsResult ? '' : '[0]'};`);
|
384
|
+
}
|
385
|
+
});
|
386
|
+
writer.blankLine();
|
387
|
+
writer.write(`function mapArrayTo${resultTypeName}(data: any, select?: ${selectColumnsTypeName})`).block(() => {
|
388
|
+
writer.writeLine(`const result = {} as ${resultTypeName};`);
|
389
|
+
writer.writeLine(`let rowIndex = 0;`);
|
390
|
+
tsDescriptor.columns.forEach((tsField) => {
|
391
|
+
writer.write(`if (select == null || select.${tsField.name})`).block(() => {
|
392
|
+
writer.writeLine(`result.${tsField.name} = data[rowIndex++];`);
|
393
|
+
});
|
394
|
+
});
|
395
|
+
writer.write('return result;');
|
396
|
+
});
|
233
397
|
writer.blankLine();
|
234
|
-
writer.write(`
|
235
|
-
|
236
|
-
|
237
|
-
const orNull = field.notNull ? '' : ' | null';
|
238
|
-
writer.writeLine(`${field.name}${optionalOp}: ${field.tsType}${orNull};`);
|
398
|
+
writer.write(`function appendSelect(sql: string, selectField: string)`).block(() => {
|
399
|
+
writer.write(`if (sql == 'SELECT')`).block(() => {
|
400
|
+
writer.writeLine(`return sql + EOL + selectField;`);
|
239
401
|
});
|
240
|
-
|
241
|
-
writer.writeLine(`
|
402
|
+
writer.write(`else`).block(() => {
|
403
|
+
writer.writeLine(`return sql + ', ' + EOL + selectField;`);
|
404
|
+
});
|
405
|
+
});
|
406
|
+
writer.blankLine();
|
407
|
+
writer.write(`function whereConditionsToObject(whereConditions?: ${whereTypeName}[])`).block(() => {
|
408
|
+
writer.writeLine(`const obj = {} as any;`);
|
409
|
+
writer.write(`whereConditions?.forEach(condition => `).inlineBlock(() => {
|
410
|
+
writer.writeLine(`const where = whereCondition(condition);`);
|
411
|
+
writer.write(`if (where?.hasValue) `).block(() => {
|
412
|
+
writer.writeLine(`obj[condition[0]] = true;`);
|
413
|
+
});
|
414
|
+
});
|
415
|
+
writer.write(');');
|
416
|
+
writer.writeLine(`return obj;`);
|
417
|
+
});
|
418
|
+
if (orderByField != null) {
|
419
|
+
writer.blankLine();
|
420
|
+
writer.write(`function orderByToObject(orderBy: ${dynamicParamsTypeName}['orderBy'])`).block(() => {
|
421
|
+
writer.writeLine(`const obj = {} as any;`);
|
422
|
+
writer.write(`orderBy?.forEach(order => `).inlineBlock(() => {
|
423
|
+
writer.writeLine(`obj[order[0]] = true;`);
|
424
|
+
});
|
425
|
+
writer.write(');');
|
426
|
+
writer.writeLine(`return obj;`);
|
427
|
+
});
|
428
|
+
}
|
429
|
+
writer.blankLine();
|
430
|
+
writer.write(`type WhereConditionResult = `).block(() => {
|
431
|
+
writer.writeLine('sql: string;');
|
432
|
+
writer.writeLine('hasValue: boolean;');
|
433
|
+
writer.writeLine('values: any[];');
|
434
|
+
});
|
435
|
+
writer.blankLine();
|
436
|
+
writer.write(`function whereCondition(condition: ${whereTypeName}): WhereConditionResult | undefined `).block(() => {
|
437
|
+
writer.blankLine();
|
438
|
+
writer.writeLine('const selectFragment = selectFragments[condition[0]];');
|
439
|
+
writer.writeLine('const operator = condition[1];');
|
440
|
+
writer.blankLine();
|
441
|
+
if ((0, code_generator_1.hasStringColumn)(tsDescriptor.columns)) {
|
442
|
+
writer.write(`if (operator == 'LIKE') `).block(() => {
|
443
|
+
writer.write(`return `).block(() => {
|
444
|
+
writer.writeLine('sql: `${selectFragment} LIKE concat(\'%\', ?, \'%\')`,');
|
445
|
+
writer.writeLine('hasValue: condition[2] != null,');
|
446
|
+
writer.writeLine('values: [condition[2]]');
|
447
|
+
});
|
448
|
+
});
|
242
449
|
}
|
450
|
+
writer.write(`if (operator == 'BETWEEN') `).block(() => {
|
451
|
+
writer.write(`return `).block(() => {
|
452
|
+
writer.writeLine('sql: `${selectFragment} BETWEEN ? AND ?`,');
|
453
|
+
writer.writeLine('hasValue: condition[2] != null && condition[3] != null,');
|
454
|
+
writer.writeLine('values: [condition[2], condition[3]]');
|
455
|
+
});
|
456
|
+
});
|
457
|
+
writer.write(`if (operator == 'IN' || operator == 'NOT IN') `).block(() => {
|
458
|
+
writer.write(`return `).block(() => {
|
459
|
+
writer.writeLine('sql: `${selectFragment} ${operator} (${condition[2]?.map(_ => \'?\').join(\', \')})`,');
|
460
|
+
writer.writeLine('hasValue: condition[2] != null && condition[2].length > 0,');
|
461
|
+
writer.writeLine('values: condition[2]');
|
462
|
+
});
|
463
|
+
});
|
464
|
+
writer.write(`if (NumericOperatorList.includes(operator)) `).block(() => {
|
465
|
+
writer.write(`return `).block(() => {
|
466
|
+
writer.writeLine('sql: `${selectFragment} ${operator} ?`,');
|
467
|
+
writer.writeLine('hasValue: condition[2] != null,');
|
468
|
+
writer.writeLine('values: [condition[2]]');
|
469
|
+
});
|
470
|
+
});
|
243
471
|
});
|
244
472
|
}
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
473
|
+
if (tsDescriptor.dynamicQuery2 == null) {
|
474
|
+
if (uniqueUpdateParams.length > 0) {
|
475
|
+
writer.blankLine();
|
476
|
+
writer.write(`export type ${dataTypeName} =`).block(() => {
|
477
|
+
uniqueUpdateParams.forEach(field => {
|
478
|
+
const optionalOp = field.optional ? '?' : '';
|
479
|
+
const orNull = field.notNull ? '' : ' | null';
|
480
|
+
writer.writeLine(`${field.name}${optionalOp}: ${field.tsType}${orNull};`);
|
481
|
+
});
|
482
|
+
});
|
483
|
+
}
|
484
|
+
if (uniqueParams.length > 0 || generateOrderBy) {
|
485
|
+
writer.blankLine();
|
486
|
+
writer.write(`export type ${paramsTypeName} =`).block(() => {
|
487
|
+
uniqueParams.forEach((field) => {
|
488
|
+
const optionalOp = field.optional ? '?' : '';
|
489
|
+
const orNull = field.notNull ? '' : ' | null';
|
490
|
+
writer.writeLine(`${field.name}${optionalOp}: ${field.tsType}${orNull};`);
|
491
|
+
});
|
492
|
+
if (generateOrderBy) {
|
493
|
+
writer.writeLine(`orderBy: [${orderByTypeName}, 'asc' | 'desc'][];`);
|
494
|
+
}
|
495
|
+
});
|
496
|
+
}
|
497
|
+
writer.blankLine();
|
498
|
+
writer.write(`export type ${resultTypeName} =`).block(() => {
|
499
|
+
tsDescriptor.columns.forEach(field => {
|
500
|
+
const optionalOp = field.notNull ? '' : '?';
|
501
|
+
writer.writeLine(`${field.name}${optionalOp}: ${field.tsType};`);
|
502
|
+
});
|
250
503
|
});
|
251
|
-
|
252
|
-
|
253
|
-
let functionArguments = client == 'sqlite' ? `db: Database` : 'client: Client | Transaction';
|
254
|
-
functionArguments += queryType == 'Update' ? `, data: ${dataTypeName}` : '';
|
255
|
-
functionArguments += tsDescriptor.parameters.length > 0 || generateOrderBy ? ', params: ' + paramsTypeName : '';
|
256
|
-
const allParameters = (((_a = tsDescriptor.data) === null || _a === void 0 ? void 0 : _a.map((param) => fromDriver('data', param))) || [])
|
257
|
-
.concat(tsDescriptor.parameters.map(param => fromDriver('params', param)));
|
258
|
-
const queryParams = allParameters.length > 0 ? '[' + allParameters.join(', ') + ']' : '';
|
259
|
-
const orNull = queryType == 'Select' ? ' | null' : '';
|
260
|
-
const returnType = tsDescriptor.multipleRowsResult ? `${resultTypeName}[]` : `${resultTypeName}${orNull}`;
|
504
|
+
writer.blankLine();
|
505
|
+
}
|
261
506
|
if (isCrud) {
|
262
507
|
const crudFunction = client == 'libsql'
|
263
508
|
? `async function ${camelCaseName}(${functionArguments}): Promise<${returnType}>`
|
@@ -267,7 +512,7 @@ function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud =
|
|
267
512
|
writeExecuteCrudBlock(client, queryType, tableName, tsDescriptor.columns, idColumn, queryParams, paramsTypeName, dataTypeName, resultTypeName, writer);
|
268
513
|
});
|
269
514
|
}
|
270
|
-
if (!isCrud && (queryType == 'Select' || (queryType == 'Insert' && tsDescriptor.returning))) {
|
515
|
+
if (tsDescriptor.dynamicQuery2 == null && !isCrud && (queryType == 'Select' || (queryType == 'Insert' && tsDescriptor.returning))) {
|
271
516
|
if (client == 'sqlite') {
|
272
517
|
writer.write(`export function ${camelCaseName}(${functionArguments}): ${returnType}`).block(() => {
|
273
518
|
const processedSql = tsDescriptor.orderByColumns ? (0, code_generator_1.replaceOrderByParam)(sql) : sql;
|
@@ -335,7 +580,7 @@ function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud =
|
|
335
580
|
});
|
336
581
|
}
|
337
582
|
}
|
338
|
-
if (queryType == 'Select' || tsDescriptor.returning) {
|
583
|
+
if ((queryType == 'Select' || tsDescriptor.returning) && tsDescriptor.dynamicQuery2 == null) {
|
339
584
|
writer.blankLine();
|
340
585
|
writer.write(`function mapArrayTo${resultTypeName}(data: any) `).block(() => {
|
341
586
|
writer.write(`const result: ${resultTypeName} = `).block(() => {
|
@@ -347,7 +592,7 @@ function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud =
|
|
347
592
|
writer.writeLine('return result;');
|
348
593
|
});
|
349
594
|
}
|
350
|
-
else if (client == 'libsql' && !tsDescriptor.returning) {
|
595
|
+
else if (client == 'libsql' && !tsDescriptor.returning && tsDescriptor.dynamicQuery2 == null) {
|
351
596
|
writer.blankLine();
|
352
597
|
writer.write(`function mapArrayTo${resultTypeName}(data: any) `).block(() => {
|
353
598
|
writer.write(`const result: ${resultTypeName} = `).block(() => {
|
@@ -360,17 +605,22 @@ function generateCodeFromTsDescriptor(client, queryName, tsDescriptor, isCrud =
|
|
360
605
|
});
|
361
606
|
}
|
362
607
|
if (tsDescriptor.orderByColumns) {
|
608
|
+
const orderByType = tsDescriptor.dynamicQuery2 == null ? paramsTypeName : dynamicParamsTypeName;
|
609
|
+
if (orderByField != null) {
|
610
|
+
writer.blankLine();
|
611
|
+
writer.write(`const orderByFragments = `).inlineBlock(() => {
|
612
|
+
var _a;
|
613
|
+
(_a = tsDescriptor.orderByColumns) === null || _a === void 0 ? void 0 : _a.forEach((col) => {
|
614
|
+
writer.writeLine(`'${col}': \`${col}\`,`);
|
615
|
+
});
|
616
|
+
});
|
617
|
+
writer.write(' as const;');
|
618
|
+
}
|
363
619
|
writer.blankLine();
|
364
|
-
writer.writeLine(`
|
365
|
-
writer.blankLine();
|
366
|
-
writer.writeLine(`export type ${orderByTypeName} = typeof orderByFragments[number];`);
|
367
|
-
writer.blankLine();
|
368
|
-
writer.write(`function escapeOrderBy(orderBy: ${paramsTypeName}['orderBy']): string`).block(() => {
|
369
|
-
writer.writeLine(`return orderBy.map(order => \`\${escapeSQL(order[0])} \${order[1] == 'desc' ? 'desc' : 'asc'}\`).join(', ');`);
|
370
|
-
});
|
620
|
+
writer.writeLine(`export type ${orderByTypeName} = keyof typeof orderByFragments;`);
|
371
621
|
writer.blankLine();
|
372
|
-
writer.write(`
|
373
|
-
writer.writeLine(`return '
|
622
|
+
writer.write(`function escapeOrderBy(orderBy: ${orderByType}['orderBy']): string`).block(() => {
|
623
|
+
writer.writeLine(`return orderBy.map(order => \`\${orderByFragments[order[0]]} \${order[1] == 'desc' ? 'desc' : 'asc'}\`).join(', ');`);
|
374
624
|
});
|
375
625
|
}
|
376
626
|
if (tsDescriptor.nestedDescriptor2) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/code-generator.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA+D;AAE/D,qCAAoC;AACpC,sDAAiL;AACjL,0EAAgD;AAIhD,kEAAoF;AACpF,sDAAkD;AAClD,qDAA8C;AAE9C,SAAgB,uBAAuB,CAAC,MAAoC,EAAE,GAAW,EAAE,SAAiB,EAAE,cAA8B,EAAE,MAAM,GAAG,KAAK;IACxJ,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,IAAA,8BAAa,EAAC,GAAG,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,IAAA,2BAAU,EAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjE,IAAI,IAAA,eAAM,EAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAA,aAAI,EAAC;YACR,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW;SACjD,CAAC,CAAC;IACP,CAAC;IACD,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC;AAChB,CAAC;AAXD,0DAWC;AAED,SAAS,eAAe,CAAC,GAAiB,EAAE,aAAsB;IAC9D,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,IAAI,KAAK,IAAI,GAAG,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;IACjH,MAAM,UAAU,GAAe;QAC3B,UAAU,EAAE,GAAG,CAAC,MAAM;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,GAAG,CAAC,WAAW;QACrB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,YAAY,IAAI,IAAI,CAAC;KACpE,CAAA;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAgB,YAAY,CAAC,SAAuB,QAAQ,EAAE,SAAoB,EAAE,SAAiB,EAAE,QAAwB;IAE3H,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IAE/D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC;IAC5G,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzH,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAEhF,MAAM,YAAY,GAAiB;QAC/B,GAAG,EAAE,EAAE;QACP,SAAS;QACT,kBAAkB,EAAE,KAAK;QACzB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa;QAC1D,IAAI,EAAE,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAC,OAAA,KAAK,CAAC,IAAI,KAAI,MAAA,aAAa,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAA,CAAA,EAAA,CAAC,CAAC,CAAC,CAAC,EAAE;KAClG,CAAA;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC;AAChB,CAAC;AA5BD,oCA4BC;AAED,SAAS,YAAY,CAAC,SAAoB,EAAE,SAAiB;IACzD,MAAM,aAAa,GAAG,IAAA,uCAAsB,EAAC,SAAS,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,IAAA,2BAAU,EAAC,aAAa,CAAC,CAAC;IACnD,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,QAAQ;YACT,OAAO,YAAY,GAAG,gBAAgB,CAAC;QAC3C,KAAK,QAAQ;YACT,OAAO,YAAY,GAAG,gBAAgB,CAAC;QAC3C,KAAK,QAAQ;YACT,OAAO,QAAQ,GAAG,gBAAgB,CAAC;QACvC,KAAK,QAAQ;YACT,OAAO,YAAY,GAAG,gBAAgB,CAAC;IAC/C,CAAC;AACL,CAAC;AAED,SAAgB,cAAc,CAAC,GAAW,EAAE,SAAiB,EAAE,cAA8B,EAAE,MAAM,GAAG,KAAK,EAAE,SAAuB,QAAQ;IAC1I,MAAM,eAAe,GAAG,IAAA,iBAAQ,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACtD,IAAI,IAAA,eAAM,EAAC,eAAe,CAAC,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAC;IAC3B,CAAC;IACD,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACnF,OAAO,IAAA,cAAK,EAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AARD,wCAQC;AAED,SAAS,kBAAkB,CAAC,SAAoB,EAAE,MAAoB;;IAClE,MAAM,YAAY,GAAiB;QAC/B,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;QAChD,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;QACxF,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7F,IAAI,EAAE,MAAA,SAAS,CAAC,IAAI,0CAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClF,cAAc,EAAE,SAAS,CAAC,cAAc;KAC3C,CAAA;IACD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC1D,MAAM,UAAU,GAAkB;gBAC9B,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACzF,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAA,uCAAgB,EAAC,QAAQ,CAAC,CAAC;aAC5E,CAAA;YACD,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,YAAY,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IACvD,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,MAAoB,EAAE,SAAiC,EAAE,OAAqB,EAAE,YAAqB,KAAK;IAC1H,MAAM,mBAAmB,GAAwB;QAC7C;YACI,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;SAChB;QACD;YACI,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;SAChB;KACJ,CAAC;IAEF,MAAM,mBAAmB,GAAwB;QAC7C;YACI,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;SAChB;QACD;YACI,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;SAChB;KACJ,CAAA;IAED,IAAI,SAAS,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC1E,CAAC;IACD,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QACjD,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAA;IACnF,CAAC;IAED,MAAM,mBAAmB,GAAG,IAAA,mCAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,4BAA4B,iCAAM,GAAG,KAAE,UAAU,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAI,MAAM,CAAC,CAAC,CAAA;AAChI,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAqB,EAAE,KAAa,EAAE,MAAoB;IACjF,MAAM,OAAO,GAAa;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAkB,EAAE,MAAM,CAAC;QACtE,OAAO,EAAE,KAAK;KACjB,CAAA;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,+BAA+B,CAAC,GAAiB,EAAE,MAAoB;IAC5E,MAAM,MAAM,GAAsB;QAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,UAAwB,EAAE,MAAM,CAAC;QAC3D,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;KAC7C,CAAA;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,4BAA4B,CAAC,GAAe,EAAE,MAAoB;IACvE,MAAM,MAAM,GAAsB;QAC9B,IAAI,EAAE,GAAG,CAAC,UAAU;QACpB,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,IAAkB,EAAE,MAAM,CAAC;QACrD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACzB,CAAA;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,UAAsB,EAAE,MAAoB;IAC/D,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,SAAS;YACV,OAAO,QAAQ,CAAC;QACpB,KAAK,WAAW;YACZ,OAAO,UAAU,CAAC;QACtB,KAAK,MAAM;YACP,OAAO,QAAQ,CAAC;QACpB,KAAK,QAAQ;YACT,OAAO,UAAU,CAAC;QACtB,KAAK,SAAS;YACV,OAAO,QAAQ,CAAC;QACpB,KAAK,WAAW;YACZ,OAAO,UAAU,CAAC;QACtB,KAAK,MAAM;YACP,OAAO,QAAQ,CAAC;QACpB,KAAK,QAAQ;YACT,OAAO,UAAU,CAAC;QACtB,KAAK,MAAM;YACP,OAAO,MAAM,CAAC;QAClB,KAAK,MAAM;YACP,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;IACjE,CAAC;AACL,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAoB,EAAE,SAAiB,EAAE,YAA0B,EAAE,SAAkB,KAAK,EAAE,YAAoB,EAAE;;IAEtJ,MAAM,MAAM,GAAG,IAAI,2BAAe,CAAC;QAC/B,OAAO,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAA,uCAAsB,EAAC,SAAS,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,IAAA,2BAAU,EAAC,aAAa,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IACzC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;IAC7B,MAAM,YAAY,GAAG,eAAe,GAAG,MAAM,CAAC;IAC9C,MAAM,cAAc,GAAG,eAAe,GAAG,QAAQ,CAAC;IAClD,MAAM,cAAc,GAAG,eAAe,GAAG,QAAQ,CAAC;IAClD,MAAM,qBAAqB,GAAG,eAAe,GAAG,eAAe,CAAA;IAC/D,MAAM,qBAAqB,GAAG,eAAe,GAAG,QAAQ,CAAC;IACzD,MAAM,aAAa,GAAG,eAAe,GAAG,OAAO,CAAC;IAChD,MAAM,eAAe,GAAG,eAAe,GAAG,SAAS,CAAC;IACpD,MAAM,eAAe,GAAG,YAAY,CAAC,cAAc,IAAI,IAAI,IAAI,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IACtG,MAAM,YAAY,GAAG,IAAA,4CAA2B,EAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAG,IAAA,4CAA2B,EAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAEhF,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,SAAS,CAAC,uDAAuD,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,eAAe,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACrD,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9C,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,eAAe,cAAc,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACvD,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9C,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;YACH,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,CAAC,SAAS,CAAC,aAAa,eAAe,sBAAsB,CAAC,CAAA;YACxE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,KAAK,CAAC,eAAe,cAAc,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACvD,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,SAAS,EAAE,CAAC;IAEnB,IAAI,iBAAiB,GAAG,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,8BAA8B,CAAC;IAC7F,iBAAiB,IAAI,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,iBAAiB,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhH,MAAM,aAAa,GAAG,CAAC,CAAA,MAAA,YAAY,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAI,EAAE,CAAC;SACrF,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAE/E,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzF,MAAM,MAAM,GAAG,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,MAAM,EAAE,CAAC;IAE1G,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,YAAY,GAAG,MAAM,IAAI,QAAQ;YACnC,CAAC,CAAC,kBAAkB,aAAa,IAAI,iBAAiB,cAAc,UAAU,GAAG;YACjF,CAAC,CAAC,YAAY,aAAa,IAAI,iBAAiB,MAAM,UAAU,EAAE,CAAA;QACtE,MAAM,CAAC,KAAK,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACjD,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QAC3J,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,QAAQ,IAAI,CAAC,SAAS,IAAI,QAAQ,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1F,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,aAAa,IAAI,iBAAiB,MAAM,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC7F,MAAM,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,IAAA,oCAAmB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClF,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;gBACxC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACvB,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7C,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC9C,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,WAAW,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACxD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,cAAc,UAAU,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YAC7H,CAAC,CAAC,CAAC;QACP,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,yBAAyB,aAAa,IAAI,iBAAiB,cAAc,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC5G,MAAM,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,IAAA,oCAAmB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClF,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;gBACxC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACvB,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7C,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,aAAa,GAAG,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,WAAW,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAElF,MAAM,CAAC,KAAK,CAAC,yBAAyB,aAAa,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAElE,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;oBACxB,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC1D,IAAI,YAAY,CAAC,kBAAkB,EAAE,CAAC;wBAClC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,2CAA2C,cAAc,UAAU,CAAC,CAAC;oBAC/F,CAAC;yBACI,CAAC;wBACF,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,2BAA2B,cAAc,aAAa,CAAC,CAAC;oBAClF,CAAC;gBACL,CAAC;gBACD,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;oBACxB,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;wBACzB,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;wBAC1D,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,2BAA2B,cAAc,aAAa,CAAC,CAAC;oBAClF,CAAC;yBACI,CAAC;wBACF,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAC;oBAC7E,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,CAAC,SAAS,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACpH,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,aAAa,IAAI,iBAAiB,MAAM,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACjG,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACP,CAAC;QACD,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,yBAAyB,aAAa,IAAI,iBAAiB,cAAc,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChH,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;gBACxC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACvB,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7C,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,aAAa,GAAG,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,WAAW,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAClF,MAAM,CAAC,KAAK,CAAC,yBAAyB,aAAa,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBAClE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAC;YAC7E,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAI,SAAS,IAAI,QAAQ,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,sBAAsB,cAAc,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACxE,MAAM,CAAC,KAAK,CAAC,iBAAiB,cAAc,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC1D,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBACxC,MAAM,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;oBACpE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC;gBACpF,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC;SACI,IAAI,MAAM,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QACrD,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,sBAAsB,cAAc,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACxE,MAAM,CAAC,KAAK,CAAC,iBAAiB,cAAc,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC1D,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBACxC,MAAM,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;oBACpE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QAC9B,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,SAAS,CAAC,6BAA6B,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC;QACvH,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,SAAS,CAAC,eAAe,eAAe,qCAAqC,CAAC,CAAC;QACtF,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,mCAAmC,cAAc,sBAAsB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7F,MAAM,CAAC,SAAS,CAAC,8GAA8G,CAAC,CAAA;QACpI,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAChE,MAAM,CAAC,SAAS,CAAC,uDAAuD,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAI,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC;QACjD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3B,MAAM,YAAY,GAAG,IAAA,qCAAoB,EAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1E,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,eAAe,YAAY,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtD,MAAM,gBAAgB,GAAG,IAAA,mCAAkB,EAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9E,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBACrC,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAA;gBACF,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC/B,MAAM,kBAAkB,GAAG,IAAA,qCAAoB,EAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC/E,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;oBACjD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,gBAAgB,KAAK,kBAAkB,GAAG,CAAC,CAAC;gBACjF,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QAEN,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,SAAS,EAAE,CAAC;QAEnB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,YAAY,GAAG,IAAA,qCAAoB,EAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACb,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;oBACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,aAAa,UAAU,iBAAiB,MAAM,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBACvG,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpE,MAAM,CAAC,SAAS,CAAC,wBAAwB,aAAa,MAAM,MAAM,IAAI,CAAC,CAAC;wBACxE,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;4BACrD,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;wBAClC,CAAC,CAAC,CAAC;wBACH,MAAM,CAAC,SAAS,CAAC,iBAAiB,YAAY,iBAAiB,CAAC,CAAA;oBACpE,CAAC,CAAC,CAAA;gBACN,CAAC;qBACI,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAC1B,MAAM,CAAC,KAAK,CAAC,yBAAyB,aAAa,UAAU,iBAAiB,cAAc,YAAY,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBACtH,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpE,MAAM,CAAC,SAAS,CAAC,8BAA8B,aAAa,UAAU,MAAM,IAAI,CAAC,CAAC;wBAClF,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;4BACrD,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;wBAClC,CAAC,CAAC,CAAC;wBACH,MAAM,CAAC,SAAS,CAAC,iBAAiB,YAAY,iBAAiB,CAAC,CAAA;oBACpE,CAAC,CAAC,CAAA;gBACN,CAAC;YACL,CAAC;YACD,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;QAClG,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACpH,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;gBAChF,MAAM,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;gBAChE,MAAM,CAAC,SAAS,CAAC,qDAAqD,CAAC,CAAC;gBACxE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW,EAAE,WAAmB,EAAE,cAAsB,EAAE,MAAuB;IACxG,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACvB,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;IACjD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,WAAW,QAAQ,cAAc,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAoB,EAAE,SAAoB,EAAE,SAAiB,EAAE,OAA4B,EAAE,QAAgB,EAAE,WAAmB,EAAE,aAAqB,EAAE,YAAoB,EAAE,cAAsB,EAAE,MAAuB;IAC3P,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,QAAQ;YACT,OAAO,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QACjH,KAAK,QAAQ;YACT,OAAO,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QACjG,KAAK,QAAQ;YACT,OAAO,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QAC1G,KAAK,QAAQ;YACT,OAAO,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5G,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAoB,EAAE,SAAiB,EAAE,QAAgB,EAAE,OAA4B,EAAE,WAAmB,EAAE,cAAsB,EAAE,MAAuB;IAC7L,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACxC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,QAAQ,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,WAAW,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,cAAc,aAAa,CAAC,CAAC;IACjF,CAAC;SACI,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,sCAAsC,WAAW,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/E,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,2BAA2B,cAAc,aAAa,CAAC,CAAC;IAClF,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAoB,EAAE,SAAiB,EAAE,aAAqB,EAAE,cAAsB,EAAE,MAAuB;IAChJ,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,SAAS,CAAC,mDAAmD,aAAa,IAAI,CAAC,CAAC;IACvF,MAAM,CAAC,SAAS,CAAC,gEAAgE,CAAC,CAAC;IACnF,MAAM,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC;IACrE,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACpD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,SAAS,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;IACjF,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,SAAS,uEAAuE,CAAC,CAAC,OAAO,EAAE,CAAC;IACrI,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,cAAc,GAAG,CAAC,CAAC;IAChE,CAAC;SACI,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,OAAO,EAAE,CAAC;QACvE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IACvF,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAoB,EAAE,SAAiB,EAAE,QAAgB,EAAE,aAAqB,EAAE,cAAsB,EAAE,MAAuB;IAElK,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,SAAS,CAAC,iDAAiD,aAAa,IAAI,CAAC,CAAC;IACrF,MAAM,CAAC,SAAS,CAAC,8DAA8D,CAAC,CAAC;IACjF,MAAM,CAAC,SAAS,CAAC,+DAA+D,QAAQ,IAAI,CAAC,CAAC;IAC9F,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAClC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACvD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1F,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,QAAQ,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,cAAc,GAAG,CAAC,CAAC;IAChE,CAAC;SACI,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,OAAO,EAAE,CAAC;QACvE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IACvF,CAAC;AAEL,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAoB,EAAE,SAAiB,EAAE,QAAgB,EAAE,WAAmB,EAAE,cAAsB,EAAE,MAAuB;IAC/J,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACxC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,QAAQ,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,WAAW,QAAQ,cAAc,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAClF,CAAC;SACI,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,sCAAsC,WAAW,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/E,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IACvF,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,YAAoB,EAAE,KAAwB;IAC5D,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,YAAY,YAAY,GAAG,CAAC;QACvC,CAAC;aACI,CAAC;YACF,OAAO,GAAG,YAAY,uBAAuB,YAAY,OAAO,YAAY,EAAE,CAAA;QAClF,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,YAAoB,EAAE,KAAwB;;IAC9D,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QACzB,OAAO,GAAG,YAAY,IAAI,KAAK,CAAC,IAAI,iBAAiB,CAAC;IAC1D,CAAC;IACD,IAAI,MAAA,KAAK,CAAC,MAAM,0CAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AACD,SAAS,oBAAoB,CACzB,MAAuB,EACvB,QAAuB,EACvB,OAA4B,EAC5B,eAAuB,EACvB,cAAsB;IAEtB,MAAM,YAAY,GAAG,IAAA,qCAAoB,EAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,mBAAmB,GAAG,UAAU,YAAY,EAAE,CAAC;IACrD,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,CAAC,KAAK,CAAC,YAAY,mBAAmB,kBAAkB,cAAc,QAAQ,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAE7G,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,sDAAsD,OAAO,qBAAqB,OAAO,IAAI,CAAC,CAAA;QAC/G,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;YACvE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrC,MAAM,gBAAgB,GAAG,IAAA,mCAAkB,EAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9E,MAAM,SAAS,GAAG,GAAG,CAAC;gBACtB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;gBAC5C,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,SAAS,GAAG,GAAG,SAAS,CAAC,CAAC;YACrF,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBACvC,MAAM,YAAY,GAAG,IAAA,qCAAoB,EAAC,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC/E,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;gBACnD,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,IAAI,YAAY,YAAY,QAAQ,WAAW,GAAG,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAA;AACN,CAAC"}
|
1
|
+
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/code-generator.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,15 @@
|
|
1
1
|
import { Either } from "fp-ts/lib/Either";
|
2
2
|
import { SchemaDef, TypeSqlError } from "../types";
|
3
3
|
import { ColumnSchema } from "../mysql-query-analyzer/types";
|
4
|
+
import { TraverseResult2 } from '../mysql-query-analyzer/traverse';
|
5
|
+
type ParseAndTraverseResult = {
|
6
|
+
traverseResult: TraverseResult2;
|
7
|
+
namedParameters: string[];
|
8
|
+
nested: boolean;
|
9
|
+
dynamicQuery: boolean;
|
10
|
+
processedSql: string;
|
11
|
+
};
|
12
|
+
export declare function traverseSql(sql: string, dbSchema: ColumnSchema[]): Either<TypeSqlError, ParseAndTraverseResult>;
|
4
13
|
export declare function parseSql(sql: string, dbSchema: ColumnSchema[]): Either<TypeSqlError, SchemaDef>;
|
14
|
+
export {};
|
5
15
|
//# sourceMappingURL=parser.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAA0C,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG3F,OAAO,EAAc,YAAY,
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAA0C,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG3F,OAAO,EAAc,YAAY,EAA8E,MAAM,+BAA+B,CAAC;AAOrJ,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,KAAK,sBAAsB,GAAG;IAC1B,cAAc,EAAE,eAAe,CAAC;IAChC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB,CAAA;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAkB/G;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAQ/F"}
|