@memberjunction/codegen-lib 2.0.0 → 2.1.1

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.
@@ -74,34 +74,39 @@ let SQLCodeGenBase = class SQLCodeGenBase {
74
74
  const baselineEntities = entities.filter(e => e.IncludeInAPI);
75
75
  const includedEntities = baselineEntities.filter(e => config_1.configInfo.excludeSchemas.find(s => s.toLowerCase() === e.SchemaName.toLowerCase()) === undefined); //only include entities that are NOT in the excludeSchemas list
76
76
  const excludedEntities = baselineEntities.filter(e => config_1.configInfo.excludeSchemas.find(s => s.toLowerCase() === e.SchemaName.toLowerCase()) !== undefined); //only include entities that ARE in the excludeSchemas list in this array
77
- // STEP 2(a) - generate all the SQL files and execute them
77
+ // STEP 2(a) - clean out all *.generated.sql and *.permissions.generated.sql files from the directory
78
+ this.deleteGeneratedEntityFiles(directory, baselineEntities);
79
+ // STEP 2(b) - generate all the SQL files and execute them
78
80
  const step2StartTime = new Date();
79
- if (!await this.generateAndExecuteEntitySQLToSeparateFiles(ds, includedEntities, directory, false)) {
80
- (0, logging_1.logError)('Error generating and executing all entities SQL to separate files');
81
+ const genResult = await this.generateAndExecuteEntitySQLToSeparateFiles(ds, includedEntities, directory, false, true);
82
+ if (!genResult.Success) {
83
+ (0, logging_1.logError)('Error generating all entities SQL to separate files');
81
84
  return false;
82
85
  }
83
- // STEP 2(b) - for the excludedEntities, while we don't want to generate SQL, we do want to generate the permissions files for them
84
- if (!await this.generateAndExecuteEntitySQLToSeparateFiles(ds, excludedEntities, directory, true)) {
85
- (0, logging_1.logError)('Error generating and executing permissions SQL for excluded entities to separate files');
86
+ // STEP 2(c) - for the excludedEntities, while we don't want to generate SQL, we do want to generate the permissions files for them
87
+ const genResult2 = await this.generateAndExecuteEntitySQLToSeparateFiles(ds, excludedEntities, directory, true, true);
88
+ if (!genResult2.Success) {
89
+ (0, logging_1.logError)('Error generating permissions SQL for excluded entities to separate files');
86
90
  return false;
87
91
  }
88
- (0, logging_1.logStatus)(` Time to Generate/Execute Entity SQL: ${(new Date().getTime() - step2StartTime.getTime()) / 1000} seconds`);
89
- // now that we've generated the SQL, let's create a combined file in each schema sub-directory for convenience for a DBA
90
- this.createCombinedEntitySQLFiles(directory, baselineEntities);
92
+ (0, logging_1.logStatus)(` Time to generate entity SQL: ${(new Date().getTime() - step2StartTime.getTime()) / 1000} seconds`);
93
+ // STEP 2(d) now that we've generated the SQL, let's create a combined file in each schema sub-directory for convenience for a DBA
94
+ const allEntityFiles = this.createCombinedEntitySQLFiles(directory, baselineEntities);
95
+ // STEP 2(e) ---- FINALLY, we now execute all the combined files by schema;
96
+ const step2eStartTime = new Date();
97
+ if (!await this.SQLUtilityObject.executeSQLFiles(allEntityFiles, true)) {
98
+ (0, logging_1.logError)('Error executing combined entity SQL files');
99
+ return false;
100
+ }
101
+ const step2eEndTime = new Date();
102
+ (0, logging_1.logStatus)(` Time to Execute Combined Entity SQL: ${(step2eEndTime.getTime() - step2eStartTime.getTime()) / 1000} seconds`);
91
103
  const manageMD = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(manage_metadata_1.ManageMetadataBase);
92
104
  // STEP 3 - re-run the process to manage entity fields since the Step 1 and 2 above might have resulted in differences in base view columns compared to what we had at first
93
- if (!await manageMD.manageEntityFields(ds, config_1.configInfo.excludeSchemas, true)) {
105
+ // we CAN skip the entity field values part because that wouldn't change from the first time we ran it
106
+ if (!await manageMD.manageEntityFields(ds, config_1.configInfo.excludeSchemas, true, true)) {
94
107
  (0, logging_1.logError)('Error managing entity fields');
95
108
  return false;
96
109
  }
97
- // no logStatus/timer for this because manageEntityFields() has its own internal logging for this including the total, so it is redundant to log it here
98
- // STEP 4- Apply permissions, executing all .permissions files
99
- const step4StartTime = new Date();
100
- if (!await this.applyPermissions(ds, directory, baselineEntities)) {
101
- (0, logging_1.logError)('Error applying permissions');
102
- return false;
103
- }
104
- (0, logging_1.logStatus)(` Time to Apply Permissions: ${(new Date().getTime() - step4StartTime.getTime()) / 1000} seconds`);
105
110
  // STEP 5 - execute any custom SQL scripts that should run afterwards
106
111
  const step5StartTime = new Date();
107
112
  if (!await this.runCustomSQLScripts(ds, 'after-sql'))
@@ -125,7 +130,7 @@ let SQLCodeGenBase = class SQLCodeGenBase {
125
130
  if (scripts) {
126
131
  for (let i = 0; i < scripts.length; ++i) {
127
132
  const s = scripts[i];
128
- if (!await this.SQLUtilityObject.executeSQLFile(ds, s.scriptFile, true)) {
133
+ if (!await this.SQLUtilityObject.executeSQLFile(s.scriptFile)) {
129
134
  (0, logging_1.logError)(`Error executing custom '${when}' SQL script ${s.scriptFile}`);
130
135
  bSuccess = false; // keep going if we have more scripts, but make sure we return false
131
136
  }
@@ -150,7 +155,7 @@ let SQLCodeGenBase = class SQLCodeGenBase {
150
155
  for (const f of files) {
151
156
  const fullPath = path_1.default.join(directory, f);
152
157
  if (fs.existsSync(fullPath)) {
153
- if (!await this.SQLUtilityObject.executeSQLFile(ds, fullPath, true))
158
+ if (!await this.SQLUtilityObject.executeSQLFile(fullPath))
154
159
  innerSuccess = false; // we keep going, just note that something failed
155
160
  }
156
161
  else {
@@ -181,7 +186,8 @@ let SQLCodeGenBase = class SQLCodeGenBase {
181
186
  * @param directory The directory to save the generated SQL files to
182
187
  * @param onlyPermissions If true, only the permissions files will be generated and executed, not the actual SQL files. Use this if you are simply setting permission changes but no actual changes to the entities have occured.
183
188
  */
184
- async generateAndExecuteEntitySQLToSeparateFiles(ds, entities, directory, onlyPermissions, writeFiles = true, batchSize = 5) {
189
+ async generateAndExecuteEntitySQLToSeparateFiles(ds, entities, directory, onlyPermissions, skipExecution = false, writeFiles = true, batchSize = 5) {
190
+ const files = [];
185
191
  try {
186
192
  let bFail = false;
187
193
  const totalEntities = entities.length;
@@ -191,46 +197,80 @@ let SQLCodeGenBase = class SQLCodeGenBase {
191
197
  const pkeyField = e.Fields.find(f => f.IsPrimaryKey);
192
198
  if (!pkeyField) {
193
199
  (0, logging_1.logError)(`SKIPPING ENTITY: Entity ${e.Name}, because it does not have a primary key field defined. A table must have a primary key defined to quality to be a MemberJunction entity`);
194
- return false;
200
+ return { Success: false, Files: [] };
195
201
  }
196
- return this.generateAndExecuteSingleEntitySQLToSeparateFiles(ds, e, directory, onlyPermissions, writeFiles);
202
+ return this.generateAndExecuteSingleEntitySQLToSeparateFiles(ds, e, directory, onlyPermissions, skipExecution, writeFiles);
197
203
  });
198
204
  const results = await Promise.all(promises);
199
- if (results.includes(false)) {
200
- bFail = true; // keep going, but will return false at the end
201
- }
205
+ results.forEach(r => {
206
+ if (!r.Success)
207
+ bFail = true; // keep going, but will return false at the end
208
+ files.push(...r.Files); // add the files to the main files array
209
+ });
202
210
  }
203
- return !bFail;
211
+ return { Success: !bFail, Files: files };
204
212
  }
205
213
  catch (err) {
206
214
  (0, logging_1.logError)(err);
207
- return false;
215
+ return { Success: false, Files: files };
216
+ }
217
+ }
218
+ deleteGeneratedEntityFiles(directory, entities) {
219
+ try {
220
+ // for the schemas associated with the specified entities, clean out all the generated files
221
+ const schemaNames = entities.map(e => e.SchemaName).filter((value, index, self) => self.indexOf(value) === index);
222
+ for (const s of schemaNames) {
223
+ const fullPath = path_1.default.join(directory, s);
224
+ // now, within each schema directory, clean out all the generated files
225
+ // the generated files map this pattern: *.generated.sql or *.permissions.generated.sql
226
+ if (fs.statSync(fullPath).isDirectory()) {
227
+ const files = fs.readdirSync(fullPath).filter(f => f.endsWith('.generated.sql') || f.endsWith('.permissions.generated.sql'));
228
+ for (const f of files) {
229
+ const filePath = path_1.default.join(fullPath, f);
230
+ fs.unlinkSync(filePath);
231
+ }
232
+ }
233
+ }
234
+ }
235
+ catch (e) {
236
+ (0, logging_1.logError)(e);
208
237
  }
209
238
  }
210
- async createCombinedEntitySQLFiles(directory, entities) {
239
+ createCombinedEntitySQLFiles(directory, entities) {
211
240
  // first, get a disinct list of schemanames from the entities
241
+ const files = [];
212
242
  const schemaNames = entities.map(e => e.SchemaName).filter((value, index, self) => self.indexOf(value) === index);
213
243
  for (const s of schemaNames) {
214
244
  // generate the all-entities.sql file and all-entities.permissions.sql file in each schema folder
215
245
  const fullPath = path_1.default.join(directory, s);
216
246
  if (fs.statSync(fullPath).isDirectory()) {
217
247
  (0, util_1.combineFiles)(fullPath, '_all_entities.sql', '*.generated.sql', true);
248
+ files.push(path_1.default.join(fullPath, '_all_entities.sql'));
218
249
  (0, util_1.combineFiles)(fullPath, '_all_entities.permissions.sql', '*.permissions.generated.sql', true);
250
+ files.push(path_1.default.join(fullPath, '_all_entities.permissions.sql'));
219
251
  }
220
252
  }
253
+ return files;
221
254
  }
222
- async generateAndExecuteSingleEntitySQLToSeparateFiles(ds, entity, directory, onlyPermissions, writeFiles = true) {
255
+ async generateAndExecuteSingleEntitySQLToSeparateFiles(ds, entity, directory, onlyPermissions, skipExecution = false, writeFiles = true) {
223
256
  try {
224
- const { sql, permissionsSQL } = await this.generateSingleEntitySQLToSeparateFiles(ds, entity, directory, onlyPermissions, writeFiles); // this creates the files and returns a single string with all the SQL we can then execute
225
- return await this.SQLUtilityObject.executeSQLScript(ds, sql, true) &&
226
- await this.SQLUtilityObject.executeSQLScript(ds, permissionsSQL, true);
257
+ const { sql, permissionsSQL, files } = await this.generateSingleEntitySQLToSeparateFiles(ds, entity, directory, onlyPermissions, skipExecution, writeFiles); // this creates the files and returns a single string with all the SQL we can then execute
258
+ if (!skipExecution) {
259
+ return {
260
+ Success: await this.SQLUtilityObject.executeSQLScript(ds, sql + "\n\nGO\n\n" + permissionsSQL, true), // combine the SQL and permissions and execute it,
261
+ Files: files
262
+ };
263
+ }
264
+ else
265
+ return { Success: true, Files: files };
227
266
  }
228
267
  catch (err) {
229
268
  (0, logging_1.logError)(err);
230
- return false;
269
+ return { Success: false, Files: [] };
231
270
  }
232
271
  }
233
- async generateSingleEntitySQLToSeparateFiles(ds, entity, directory, onlyPermissions, writeFiles = true) {
272
+ async generateSingleEntitySQLToSeparateFiles(ds, entity, directory, onlyPermissions, skipExecution = false, writeFiles = true) {
273
+ const files = [];
234
274
  try {
235
275
  // create the directory if it doesn't exist
236
276
  if (writeFiles && !fs.existsSync(directory))
@@ -246,16 +286,21 @@ let SQLCodeGenBase = class SQLCodeGenBase {
246
286
  // generate the base view
247
287
  const s = this.generateSingleEntitySQLFileHeader(entity, entity.BaseView) + await this.generateBaseView(ds, entity);
248
288
  const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('view', entity.SchemaName, entity.BaseView, false, true));
249
- if (writeFiles)
289
+ if (writeFiles) {
250
290
  fs.writeFileSync(filePath, s);
291
+ files.push(filePath);
292
+ }
251
293
  sRet += s + '\nGO\n';
252
294
  }
253
295
  // always generate permissions for the base view
254
296
  const s = this.generateSingleEntitySQLFileHeader(entity, 'Permissions for ' + entity.BaseView) + this.generateViewPermissions(entity);
255
297
  if (s.length > 0)
256
298
  permissionsSQL += s + '\nGO\n';
257
- if (writeFiles)
258
- fs.writeFileSync(path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('view', entity.SchemaName, entity.BaseView, true, true)), s);
299
+ if (writeFiles) {
300
+ const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('view', entity.SchemaName, entity.BaseView, true, true));
301
+ fs.writeFileSync(filePath, s);
302
+ files.push(filePath);
303
+ }
259
304
  // now, append the permissions to the return string IF we did NOT generate the base view - because if we generated the base view, that
260
305
  // means we already generated the permissions for it above and it is part of sRet already, but we always save it to a file, (per above line)
261
306
  if (!entity.BaseViewGenerated)
@@ -266,15 +311,21 @@ let SQLCodeGenBase = class SQLCodeGenBase {
266
311
  if (!onlyPermissions && entity.spCreateGenerated) {
267
312
  // generate the create SP
268
313
  const s = this.generateSingleEntitySQLFileHeader(entity, spName) + this.generateSPCreate(entity);
269
- if (writeFiles)
270
- fs.writeFileSync(path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, false, true)), s);
314
+ if (writeFiles) {
315
+ const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, false, true));
316
+ fs.writeFileSync(filePath, s);
317
+ files.push(filePath);
318
+ }
271
319
  sRet += s + '\nGO\n';
272
320
  }
273
321
  const s = this.generateSPPermissions(entity, spName, exports.SPType.Create) + '\n\n';
274
322
  if (s.length > 0)
275
323
  permissionsSQL += s + '\nGO\n';
276
- if (writeFiles)
277
- fs.writeFileSync(path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, true, true)), s);
324
+ if (writeFiles) {
325
+ const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, true, true));
326
+ fs.writeFileSync(filePath, s);
327
+ files.push(filePath);
328
+ }
278
329
  // now, append the permissions to the return string IF we did NOT generate the proc - because if we generated the proc, that
279
330
  // means we already generated the permissions for it above and it is part of sRet already, but we always save it to a file, (per above line)
280
331
  if (!entity.spCreateGenerated)
@@ -286,15 +337,21 @@ let SQLCodeGenBase = class SQLCodeGenBase {
286
337
  if (!onlyPermissions && entity.spUpdateGenerated) {
287
338
  // generate the update SP
288
339
  const s = this.generateSingleEntitySQLFileHeader(entity, spName) + this.generateSPUpdate(entity);
289
- if (writeFiles)
290
- fs.writeFileSync(path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, false, true)), s);
340
+ if (writeFiles) {
341
+ const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, false, true));
342
+ fs.writeFileSync(filePath, s);
343
+ files.push(filePath);
344
+ }
291
345
  sRet += s + '\nGO\n';
292
346
  }
293
347
  const s = this.generateSPPermissions(entity, spName, exports.SPType.Update) + '\n\n';
294
348
  if (s.length > 0)
295
349
  permissionsSQL += s + '\nGO\n';
296
- if (writeFiles)
297
- fs.writeFileSync(path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, true, true)), s);
350
+ if (writeFiles) {
351
+ const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, true, true));
352
+ fs.writeFileSync(filePath, s);
353
+ files.push(filePath);
354
+ }
298
355
  // now, append the permissions to the return string IF we did NOT generate the proc - because if we generated the proc, that
299
356
  // means we already generated the permissions for it above and it is part of sRet already, but we always save it to a file, (per above line)
300
357
  if (!entity.spUpdateGenerated)
@@ -306,15 +363,21 @@ let SQLCodeGenBase = class SQLCodeGenBase {
306
363
  if (!onlyPermissions && entity.spDeleteGenerated) {
307
364
  // generate the delete SP
308
365
  const s = this.generateSingleEntitySQLFileHeader(entity, spName) + this.generateSPDelete(entity);
309
- if (writeFiles)
310
- fs.writeFileSync(path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, false, true)), s);
366
+ if (writeFiles) {
367
+ const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, false, true));
368
+ fs.writeFileSync(filePath, s);
369
+ files.push(filePath);
370
+ }
311
371
  sRet += s + '\nGO\n';
312
372
  }
313
373
  const s = this.generateSPPermissions(entity, spName, exports.SPType.Delete) + '\n\n';
314
374
  if (s.length > 0)
315
375
  permissionsSQL += s + '\nGO\n';
316
- if (writeFiles)
317
- fs.writeFileSync(path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, true, true)), s);
376
+ if (writeFiles) {
377
+ const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('sp', entity.SchemaName, spName, true, true));
378
+ fs.writeFileSync(filePath, s);
379
+ files.push(filePath);
380
+ }
318
381
  // now, append the permissions to the return string IF we did NOT generate the proc - because if we generated the proc, that
319
382
  // means we already generated the permissions for it above and it is part of sRet already, but we always save it to a file, (per above line)
320
383
  if (!entity.spDeleteGenerated)
@@ -327,22 +390,26 @@ let SQLCodeGenBase = class SQLCodeGenBase {
327
390
  if (!onlyPermissions) {
328
391
  // only write the actual sql out if we're not only generating permissions
329
392
  const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('full_text_search_function', entity.SchemaName, entity.BaseTable, false, true));
330
- if (writeFiles)
393
+ if (writeFiles) {
331
394
  fs.writeFileSync(filePath, ft.sql);
395
+ files.push(filePath);
396
+ }
332
397
  sRet += ft.sql + '\nGO\n';
333
398
  }
334
399
  const sP = this.generateFullTextSearchFunctionPermissions(entity, ft.functionName) + '\n\n';
335
400
  if (sP.length > 0)
336
401
  permissionsSQL += sP + '\nGO\n';
337
402
  const filePath = path_1.default.join(directory, this.SQLUtilityObject.getDBObjectFileName('full_text_search_function', entity.SchemaName, entity.BaseTable, true, true));
338
- if (writeFiles)
403
+ if (writeFiles) {
339
404
  fs.writeFileSync(filePath, sP);
405
+ files.push(filePath);
406
+ }
340
407
  // now, append the permissions to the return string IF we did NOT generate the function - because if we generated the function, that
341
408
  // means we already generated the permissions for it above and it is part of sRet already, but we always save it to a file, (per above line)
342
409
  if (!entity.FullTextSearchFunctionGenerated)
343
410
  sRet += sP + '\nGO\n';
344
411
  }
345
- return { sql: sRet, permissionsSQL: permissionsSQL };
412
+ return { sql: sRet, permissionsSQL: permissionsSQL, files: files };
346
413
  }
347
414
  catch (err) {
348
415
  (0, logging_1.logError)(err);
@@ -600,38 +667,37 @@ ${whereClause}GO${permissions}
600
667
  let sOutput = '';
601
668
  let fieldCount = 0;
602
669
  const manageMD = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(manage_metadata_1.ManageMetadataBase);
603
- for (let i = 0; i < entityFields.length; i++) {
604
- const ef = entityFields[i];
605
- if (ef.RelatedEntityID && ef.IncludeRelatedEntityNameFieldInBaseView) {
606
- const { nameField, nameFieldIsVirtual } = this.getIsNameFieldForSingleEntity(ef.RelatedEntity);
607
- if (nameField !== '') {
608
- // only add to the output, if we found a name field for the related entity.
609
- ef._RelatedEntityTableAlias = ef.RelatedEntityClassName + '_' + ef.Name;
610
- ef._RelatedEntityNameFieldIsVirtual = nameFieldIsVirtual;
611
- // This next section generates a field name for the new virtual field and makes sure it doesn't collide with a field in the base table
612
- const candidateName = this.stripID(ef.Name);
613
- // check to make sure candidateName is not already a field name in the base table (other than a virtual field of course, as that is what we're creating)
614
- // because if it is, we need to change it to something else
615
- const bFound = entityFields.find(f => f.IsVirtual === false && f.Name.trim().toLowerCase() === candidateName.trim().toLowerCase()) !== undefined;
616
- if (bFound)
617
- ef._RelatedEntityNameFieldMap = candidateName + '_Virtual';
618
- else
619
- ef._RelatedEntityNameFieldMap = candidateName;
620
- // now we have a safe field name alias for the new virtual field in the _RelatedEntityNameFieldMap property, so use it...
621
- sOutput += `${fieldCount == 0 ? '' : ','}\n ${ef._RelatedEntityTableAlias}.[${nameField}] AS [${ef._RelatedEntityNameFieldMap}]`;
622
- // check to see if the database already knows about the RelatedEntityNameFieldMap or not
623
- if (ef.RelatedEntityNameFieldMap === null ||
624
- ef.RelatedEntityNameFieldMap === undefined ||
625
- ef.RelatedEntityNameFieldMap.trim().length === 0) {
626
- // the database doesn't yet know about this RelatedEntityNameFieldMap, so we need to update it
627
- // first update the actul field in the metadata object so it can be used from this point forward
628
- // and it also reflects what the DB will hold
629
- ef.RelatedEntityNameFieldMap = ef._RelatedEntityNameFieldMap;
630
- // then update the database itself
631
- await manageMD.updateEntityFieldRelatedEntityNameFieldMap(ds, ef.ID, ef.RelatedEntityNameFieldMap);
632
- }
633
- fieldCount++;
670
+ // next get the fields that are related entities and have the IncludeRelatedEntityNameFieldInBaseView flag set to true
671
+ const qualifyingFields = entityFields.filter(f => f.RelatedEntityID && f.IncludeRelatedEntityNameFieldInBaseView);
672
+ for (const ef of qualifyingFields) {
673
+ const { nameField, nameFieldIsVirtual } = this.getIsNameFieldForSingleEntity(ef.RelatedEntity);
674
+ if (nameField !== '') {
675
+ // only add to the output, if we found a name field for the related entity.
676
+ ef._RelatedEntityTableAlias = ef.RelatedEntityClassName + '_' + ef.Name;
677
+ ef._RelatedEntityNameFieldIsVirtual = nameFieldIsVirtual;
678
+ // This next section generates a field name for the new virtual field and makes sure it doesn't collide with a field in the base table
679
+ const candidateName = this.stripID(ef.Name);
680
+ // check to make sure candidateName is not already a field name in the base table (other than a virtual field of course, as that is what we're creating)
681
+ // because if it is, we need to change it to something else
682
+ const bFound = entityFields.find(f => f.IsVirtual === false && f.Name.trim().toLowerCase() === candidateName.trim().toLowerCase()) !== undefined;
683
+ if (bFound)
684
+ ef._RelatedEntityNameFieldMap = candidateName + '_Virtual';
685
+ else
686
+ ef._RelatedEntityNameFieldMap = candidateName;
687
+ // now we have a safe field name alias for the new virtual field in the _RelatedEntityNameFieldMap property, so use it...
688
+ sOutput += `${fieldCount === 0 ? '' : ','}\n ${ef._RelatedEntityTableAlias}.[${nameField}] AS [${ef._RelatedEntityNameFieldMap}]`;
689
+ // check to see if the database already knows about the RelatedEntityNameFieldMap or not
690
+ if (ef.RelatedEntityNameFieldMap === null ||
691
+ ef.RelatedEntityNameFieldMap === undefined ||
692
+ ef.RelatedEntityNameFieldMap.trim().length === 0) {
693
+ // the database doesn't yet know about this RelatedEntityNameFieldMap, so we need to update it
694
+ // first update the actul field in the metadata object so it can be used from this point forward
695
+ // and it also reflects what the DB will hold
696
+ ef.RelatedEntityNameFieldMap = ef._RelatedEntityNameFieldMap;
697
+ // then update the database itself
698
+ await manageMD.updateEntityFieldRelatedEntityNameFieldMap(ds, ef.ID, ef.RelatedEntityNameFieldMap);
634
699
  }
700
+ fieldCount++;
635
701
  }
636
702
  }
637
703
  return sOutput;
@@ -1 +1 @@
1
- {"version":3,"file":"sql_codegen.js","sourceRoot":"","sources":["../../src/Database/sql_codegen.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAmG;AACnG,6CAAsD;AACtD,uCAAyB;AACzB,gDAAwB;AAExB,+BAAuC;AAEvC,6CAA4E;AAC5E,uDAAuD;AAEvD,mFAAmE;AACnE,uCAA4C;AAE5C,mDAAiE;AAGpD,QAAA,MAAM,GAAG;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACR,CAAC;AAKb;;;;GAIG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAc;IAApB;QACO,sBAAiB,GAAmB,iBAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAiB,oBAAc,CAAC,CAAC;IAsgChI,CAAC;IArgCG,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,EAAc,EAAE,QAAsB,EAAE,SAAiB;QAC/F,IAAI,CAAC;YACD,2GAA2G;YAC3G,8EAA8E;YAC9E,oFAAoF;YACpF,2FAA2F;YAC3F,MAAM,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;YACnC,IAAI,CAAE,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,YAAY,CAAC;gBAClD,OAAO,KAAK,CAAC;YACjB,IAAA,mBAAS,EAAC,sCAAsC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAC,IAAI,UAAU,CAAC,CAAC;YAE7G,wFAAwF;YACxF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,+DAA+D;YACzN,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,yEAAyE;YAEnO,0DAA0D;YAC1D,MAAM,cAAc,GAAS,IAAI,IAAI,EAAE,CAAC;YACxC,IAAI,CAAE,MAAM,IAAI,CAAC,0CAA0C,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClG,IAAA,kBAAQ,EAAC,mEAAmE,CAAC,CAAC;gBAC9E,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,mIAAmI;YACnI,IAAI,CAAE,MAAM,IAAI,CAAC,0CAA0C,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;gBACjG,IAAA,kBAAQ,EAAC,wFAAwF,CAAC,CAAC;gBACnG,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAA,mBAAS,EAAC,2CAA2C,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,GAAC,IAAI,UAAU,CAAC,CAAC;YAEvH,wHAAwH;YACxH,IAAI,CAAC,4BAA4B,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAE/D,MAAM,QAAQ,GAAG,iBAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAqB,oCAAkB,CAAC,CAAA;YACtG,4KAA4K;YAC5K,IAAI,CAAE,MAAM,QAAQ,CAAC,kBAAkB,CAAC,EAAE,EAAE,mBAAU,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC3E,IAAA,kBAAQ,EAAC,8BAA8B,CAAC,CAAC;gBACzC,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,wJAAwJ;YAExJ,8DAA8D;YAC9D,MAAM,cAAc,GAAS,IAAI,IAAI,EAAE,CAAC;YACxC,IAAI,CAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBACjE,IAAA,kBAAQ,EAAC,4BAA4B,CAAC,CAAC;gBACvC,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAA,mBAAS,EAAC,iCAAiC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,GAAC,IAAI,UAAU,CAAC,CAAC;YAE7G,qEAAqE;YACrE,MAAM,cAAc,GAAS,IAAI,IAAI,EAAE,CAAC;YACxC,IAAI,CAAE,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,WAAW,CAAC;gBACjD,OAAO,KAAK,CAAC;YAEjB,IAAA,mBAAS,EAAC,sCAAsC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,GAAC,IAAI,UAAU,CAAC,CAAC;YAElH,IAAA,mBAAS,EAAC,yDAAyD,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;YAExI,8DAA8D;YAC9D,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;YAC1B,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;YAEnB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACT,IAAA,kBAAQ,EAAC,GAAG,CAAC,CAAC;YACd,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,EAAc,EAAE,IAAY;QACzD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAA,yBAAgB,EAAC,IAAI,CAAC,CAAC;YACvC,IAAI,QAAQ,GAAY,IAAI,CAAC;YAE7B,IAAI,OAAO,EAAE,CAAC;gBACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACrB,IAAI,CAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;wBACvE,IAAA,kBAAQ,EAAC,2BAA2B,IAAI,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;wBACxE,QAAQ,GAAG,KAAK,CAAC,CAAC,oEAAoE;oBAC1F,CAAC;gBACL,CAAC;YACL,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,IAAA,kBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAGM,KAAK,CAAC,gBAAgB,CAAC,EAAc,EAAE,SAAiB,EAAE,QAAsB,EAAE,YAAoB,CAAC;QAC1G,IAAI,CAAC;YACD,IAAI,QAAQ,GAAG,IAAI,CAAC;YAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACnC,yCAAyC;oBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;oBACnD,IAAI,YAAY,GAAY,IAAI,CAAC;oBACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;wBACpB,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBACzC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC;gCAC/D,YAAY,GAAG,KAAK,CAAC,CAAC,iDAAiD;wBAC/E,CAAC;6BACI,CAAC;4BACF,oFAAoF;4BACpF,sBAAsB;4BACtB,IAAA,kBAAQ,EAAC,oBAAoB,QAAQ,8BAA8B,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;wBACjF,CAAC;oBACL,CAAC;oBACD,OAAO,YAAY,CAAC;gBACxB,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,IAAA,kBAAQ,EAAC,8EAA8E,CAAC,EAAE,CAAC,CAAC;oBAC5F,QAAQ,GAAG,KAAK,CAAC,CAAC,+CAA+C;gBACrE,CAAC;YACL,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACT,IAAA,kBAAQ,EAAC,GAAG,CAAC,CAAC;YACd,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAGD;;;;;;OAMG;IACI,KAAK,CAAC,0CAA0C,CAAC,EAAc,EAAE,QAAsB,EAAE,SAAiB,EAAE,eAAwB,EAAE,aAAsB,IAAI,EAAE,YAAoB,CAAC;QAC1L,IAAI,CAAC;YACD,IAAI,KAAK,GAAY,KAAK,CAAC;YAC3B,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;YAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACnC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;oBACpD,IAAI,CAAC,SAAS,EAAE,CAAC;wBACb,IAAA,kBAAQ,EAAC,2BAA2B,CAAC,CAAC,IAAI,0IAA0I,CAAC,CAAC;wBACtL,OAAO,KAAK,CAAC;oBACjB,CAAC;oBACD,OAAO,IAAI,CAAC,gDAAgD,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;gBAChH,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,KAAK,GAAG,IAAI,CAAC,CAAC,+CAA+C;gBACjE,CAAC;YACL,CAAC;YAED,OAAO,CAAC,KAAK,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACT,IAAA,kBAAQ,EAAC,GAAG,CAAC,CAAC;YACd,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,SAAiB,EAAE,QAAsB;QAC/E,6DAA6D;QAC7D,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;QAClH,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC1B,iGAAiG;YACjG,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtC,IAAA,mBAAY,EAAC,QAAQ,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBACrE,IAAA,mBAAY,EAAC,QAAQ,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,IAAI,CAAC,CAAC;YACjG,CAAC;QACL,CAAC;IACL,CAAC;IAIM,KAAK,CAAC,gDAAgD,CAAC,EAAc,EAAE,MAAkB,EAAE,SAAiB,EAAE,eAAwB,EAAE,aAAsB,IAAI;QACrK,IAAI,CAAC;YACD,MAAM,EAAC,GAAG,EAAE,cAAc,EAAC,GAAG,MAAM,IAAI,CAAC,sCAAsC,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,0FAA0F;YAC/N,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC;gBAC3D,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACT,IAAA,kBAAQ,EAAC,GAAG,CAAC,CAAC;YACd,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,sCAAsC,CAAC,EAAc,EAAE,MAAkB,EAAE,SAAiB,EAAE,eAAwB,EAAE,aAAsB,IAAI;QAC3J,IAAI,CAAC;YACD,2CAA2C;YAC3C,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;gBACvC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjD,gFAAgF;YAChF,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAC7C,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,2CAA2C;YAEnG,IAAI,IAAI,GAAW,EAAE,CAAA;YACrB,IAAI,cAAc,GAAW,EAAE,CAAA;YAC/B,cAAc;YACd,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACxE,yBAAyB;gBACzB,MAAM,CAAC,GAAG,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;gBAClH,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC1I,IAAI,UAAU;oBACV,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBACjC,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;YACzB,CAAC;YACD,gDAAgD;YAChD,MAAM,CAAC,GAAG,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAA;YACrI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBACZ,cAAc,IAAI,CAAC,GAAG,QAAQ,CAAC;YACnC,IAAI,UAAU;gBACV,EAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAEhJ,sIAAsI;YACtI,4IAA4I;YAC5I,IAAI,CAAC,MAAM,CAAC,iBAAiB;gBACzB,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;YAEzB,YAAY;YACZ,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAW,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,CAAC;gBAC7D,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC/C,yBAAyB;oBACzB,MAAM,CAAC,GAAG,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;oBAChG,IAAI,UAAU;wBACV,EAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACtI,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACzB,CAAC;gBACD,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;gBAC7E,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;oBACZ,cAAc,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACnC,IAAI,UAAU;oBACV,EAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAErI,4HAA4H;gBAC5H,4IAA4I;gBAC5I,IAAI,CAAC,MAAM,CAAC,iBAAiB;oBACzB,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;YAC7B,CAAC;YAED,YAAY;YACZ,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAW,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,CAAC;gBAC7D,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC/C,yBAAyB;oBACzB,MAAM,CAAC,GAAG,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;oBAChG,IAAI,UAAU;wBACV,EAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACtI,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACzB,CAAC;gBACD,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;gBAC7E,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;oBACZ,cAAc,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACnC,IAAI,UAAU;oBACV,EAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAErI,4HAA4H;gBAC5H,4IAA4I;gBAC5I,IAAI,CAAC,MAAM,CAAC,iBAAiB;oBACzB,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;YAC7B,CAAC;YAED,YAAY;YACZ,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAW,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,CAAC;gBAC7D,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC/C,yBAAyB;oBACzB,MAAM,CAAC,GAAG,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;oBAChG,IAAI,UAAU;wBACV,EAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACtI,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACzB,CAAC;gBACD,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;gBAC7E,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;oBACZ,cAAc,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACnC,IAAI,UAAU;oBACV,EAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAErI,4HAA4H;gBAC5H,4IAA4I;gBAC5I,IAAI,CAAC,MAAM,CAAC,iBAAiB;oBACzB,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;YAC7B,CAAC;YAED,8DAA8D;YAC9D,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBAC/B,wFAAwF;gBACxF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAClE,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,yEAAyE;oBACzE,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,2BAA2B,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBAChK,IAAI,UAAU;wBACV,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;oBACtC,IAAI,IAAI,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC;gBAC9B,CAAC;gBAED,MAAM,EAAE,GAAG,IAAI,CAAC,yCAAyC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;gBAC5F,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;oBACb,cAAc,IAAI,EAAE,GAAG,QAAQ,CAAC;gBAEpC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,2BAA2B,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC/J,IAAI,UAAU;oBACV,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAElC,oIAAoI;gBACpI,4IAA4I;gBAC5I,IAAI,CAAC,MAAM,CAAC,+BAA+B;oBACvC,IAAI,IAAI,EAAE,GAAG,QAAQ,CAAC;YAC9B,CAAC;YAED,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAC,CAAC;QACvD,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACT,IAAA,kBAAQ,EAAC,GAAG,CAAC,CAAA;YACb,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAEM,SAAS,CAAC,MAAkB,EAAE,IAAY;QAC7C,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,cAAM,CAAC,MAAM;gBACd,OAAO,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;YAC3G,KAAK,cAAM,CAAC,MAAM;gBACd,OAAO,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;YAC3G,KAAK,cAAM,CAAC,MAAM;gBACd,OAAO,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/G,CAAC;IACL,CAAC;IAEM,4BAA4B,CAAC,MAAkB;QAClD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,uHAAuH;QACvH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE9G,8DAA8D;QAC9D,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACxB,2IAA2I;YAC3I,IAAI,MAAM,CAAC,cAAc;gBACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACtI,IAAI,MAAM,CAAC,cAAc;gBACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACtI,IAAI,MAAM,CAAC,cAAc;gBACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1I,CAAC;QACD,IAAI,MAAM,CAAC,qBAAqB;YAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,2BAA2B,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAExI,OAAO,KAAK,CAAC;IACjB,CAAC;IAGM,KAAK,CAAC,iBAAiB,CAAC,EAAc,EAAE,MAAkB;QAC7D,IAAI,OAAO,GAAW,EAAE,CAAA;QACxB,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,aAAa;YACjD,qDAAqD;YACrD,OAAO,IAAI,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;;YAE5D,oEAAoE;YACpE,OAAO,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAE7D,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACjD,IAAI,MAAM,CAAC,iBAAiB;gBACxB,yCAAyC;gBACzC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;;gBAElD,4CAA4C;gBAC5C,OAAO,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC/F,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACjD,IAAI,MAAM,CAAC,iBAAiB;gBACxB,yCAAyC;gBACzC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;;gBAElD,4CAA4C;gBAC5C,OAAO,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC/F,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACjD,IAAI,MAAM,CAAC,iBAAiB;gBACxB,yCAAyC;gBACzC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;;gBAElD,4CAA4C;gBAC5C,OAAO,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC/F,CAAC;QAED,8DAA8D;QAC9D,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO,IAAI,MAAM,IAAI,CAAC,+BAA+B,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;QAC/E,CAAC;QACD,OAAO,OAAO,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,EAAc,EAAE,MAAkB;QACpE,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAU,GAAG,kBAAkB,CAAC;QAC3I,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;YAClC,4GAA4G;YAC5G,GAAG,IAAI;;;;oCAIiB,WAAW;;8CAED,WAAW;;KAEpD,CAAA;QACG,CAAC;QAED,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAChC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9H,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,CAAC,IAAI,qDAAqD,CAAC,CAAC;YACnI,wCAAwC;YACxC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3E,GAAG,IAAI;;;;mDAIgC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS;;;8CAG1C,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;;;;;;;mDAOlC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS;;;gDAGxC,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;;0BAE7D,cAAc;;gCAER,cAAc;yBACrB,WAAW;;;KAG/B,CAAA;QACG,CAAC;QAED,MAAM,YAAY,GAAW,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtK,IAAI,MAAM,CAAC,+BAA+B,EAAE,CAAC;YACzC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxH,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,sDAAsD,MAAM,CAAC,IAAI,qDAAqD,CAAC,CAAC;YAC5I,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/E,wBAAwB;gBACxB,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,kCAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,CAAC;oBACF,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;gBAE9H,MAAM,CAAC,GAAiB,MAAM,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAChE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,CAAC,CAAC,sBAAsB,GAAG,YAAY,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;oBACf,MAAM,IAAI,KAAK,CAAC,0DAA0D,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACjG,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,kDAAkD;YAClD,GAAG,IAAI;;;gCAGa,MAAM,CAAC,UAAU,IAAI,YAAY;oCAC7B,MAAM,CAAC,UAAU,IAAI,YAAY;;kCAEnC,MAAM,CAAC,UAAU,IAAI,YAAY;;;;6BAItC,QAAQ;4BACT,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;sCAC7B,oBAAoB;;;KAGrD,CAAA;YACO,GAAG,IAAI,IAAI,CAAC,yCAAyC,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC;QAC7F,CAAC;QAED,OAAO,EAAC,GAAG,EAAC,YAAY,EAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,EAAc,EAAE,MAAkB;QACjE,MAAM,IAAI,GAAG;;;;;;;;;;oBAUD,MAAM,CAAC,SAAS;mCACD,MAAM,CAAC,UAAU;;SAE3C,CAAA;QACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAC3B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;;YAE3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IAEM,gCAAgC;QACnC,OAAO;;gBAEC,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE;;;;;;;;;CAS1C,CAAA;IACG,CAAC;IAEM,iCAAiC,CAAC,MAAkB,EAAE,QAAgB;QACzE,OAAO;;aAEF,MAAM,CAAC,IAAI;WACb,QAAQ;gBACH,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE;;;;;CAK1C,CAAA;IACG,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAc,EAAE,MAAkB;QACrD,MAAM,QAAQ,GAAW,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpF,MAAM,kBAAkB,GAAW,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5E,MAAM,mBAAmB,GAAW,MAAM,IAAI,CAAC,mCAAmC,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtG,MAAM,uBAAuB,GAAW,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClF,MAAM,WAAW,GAAW,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,WAAW,GAAW,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC;MAC7D,kBAAkB,KAAK,iBAAU,CAAC,kBAAkB;CACzD,CAAC,CAAC,CAAC,EAAE,CAAC;QACC,OAAO;;mCAEoB,MAAM,CAAC,IAAI;mCACX,MAAM,CAAC,UAAU;mCACjB,MAAM,CAAC,SAAS;mCAChB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;uBAE5D,MAAM,CAAC,UAAU,MAAM,QAAQ;;;eAGvC,MAAM,CAAC,UAAU,MAAM,QAAQ;;;MAGxC,kBAAkB,KAAK,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,mBAAmB;;OAErF,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS,QAAQ,kBAAkB,GAAG,uBAAuB,CAAC,CAAC,CAAC,IAAI,GAAG,uBAAuB,CAAC,CAAC,CAAC,EAAE;EACtI,WAAW,KAAK,WAAW;KACxB,CAAA;IACD,CAAC;IAES,uBAAuB,CAAC,MAAkB;QAChD,IAAI,OAAO,GAAW,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzD,MAAM,EAAE,GAAyB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,WAAW,GAAG,CAAA;QACjI,CAAC;QACD,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACjD,CAAC;IAES,qBAAqB,CAAC,YAA+B;QAC3D,IAAI,OAAO,GAAW,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,EAAE,GAAoB,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,uCAAuC,IAAI,EAAE,CAAC,wBAAwB,EAAE,CAAC;gBAClG,OAAO,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrC,OAAO,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAQ,cAAc,EAAE,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,uBAAuB,GAAG,IAAI,IAAI,EAAE,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,QAAQ,EAAE,CAAC,wBAAwB,gBAAgB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,wBAAwB,KAAK,EAAE,CAAC,sBAAsB,GAAG,CAAC;YAC5Z,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,mCAAmC,CAAC,EAAc,EAAE,YAA+B;QACrF,IAAI,OAAO,GAAW,EAAE,CAAC;QACzB,IAAI,UAAU,GAAW,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,iBAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAqB,oCAAkB,CAAC,CAAA;QACtG,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,EAAE,GAAoB,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,uCAAuC,EAAE,CAAC;gBACnE,MAAM,EAAC,SAAS,EAAE,kBAAkB,EAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;gBAC7F,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;oBACnB,2EAA2E;oBAC3E,EAAE,CAAC,wBAAwB,GAAG,EAAE,CAAC,sBAAsB,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;oBACxE,EAAE,CAAC,gCAAgC,GAAG,kBAAkB,CAAC;oBAEzD,sIAAsI;oBACtI,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC5C,yJAAyJ;oBACzJ,2DAA2D;oBAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,SAAS,CAAC;oBACjJ,IAAI,MAAM;wBACN,EAAE,CAAC,0BAA0B,GAAG,aAAa,GAAG,UAAU,CAAC;;wBAE3D,EAAE,CAAC,0BAA0B,GAAG,aAAa,CAAC;oBAElD,yHAAyH;oBACzH,OAAO,IAAI,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,wBAAwB,KAAK,SAAS,SAAS,EAAE,CAAC,0BAA0B,GAAG,CAAC;oBAEpI,wFAAwF;oBACxF,IAAI,EAAE,CAAC,yBAAyB,KAAK,IAAI;wBACrC,EAAE,CAAC,yBAAyB,KAAK,SAAS;wBAC1C,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACnD,8FAA8F;wBAC9F,gGAAgG;wBAChG,6CAA6C;wBAC7C,EAAE,CAAC,yBAAyB,GAAG,EAAE,CAAC,0BAA0B,CAAC;wBAC7D,kCAAkC;wBAClC,MAAM,QAAQ,CAAC,0CAA0C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC;oBACvG,CAAC;oBACD,UAAU,EAAE,CAAC;gBACjB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAES,6BAA6B,CAAC,UAAkB;QACtD,MAAM,EAAE,GAAa,IAAI,eAAQ,EAAE,CAAC,CAAC,8EAA8E;QACnH,MAAM,CAAC,GAAe,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE,CAAC;YACJ,MAAM,EAAE,GAAoB,CAAC,CAAC,SAAS,CAAC;YACxC,IAAI,CAAC,CAAC,SAAS;gBACX,OAAO,EAAC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,CAAC,SAAS,EAAC,CAAC;QACtE,CAAC;;YAEG,IAAA,mBAAS,EAAC,0CAA0C,UAAU,EAAE,CAAC,CAAC;QAEtE,OAAO,EAAC,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAC,CAAA;IACrD,CAAC;IAES,OAAO,CAAC,IAAY;QAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;;YAE1C,OAAO,IAAI,CAAC;IACpB,CAAC;IAGS,qBAAqB,CAAC,MAAkB,EAAE,MAAc,EAAE,IAAY;QAC5E,IAAI,OAAO,GAAW,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzD,MAAM,EAAE,GAAyB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvD,IACQ,CAAC,IAAI,IAAI,cAAM,CAAC,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC;gBACvC,CAAC,IAAI,IAAI,cAAM,CAAC,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC;gBACvC,CAAC,IAAI,IAAI,cAAM,CAAC,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC;gBAE3C,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB,MAAM,CAAC,UAAU,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,WAAW,GAAG,CAAA;QAC7H,CAAC;QACD,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACjD,CAAC;IAES,yCAAyC,CAAC,MAAkB,EAAE,YAAoB;QACxF,IAAI,OAAO,GAAW,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzD,MAAM,EAAE,GAAyB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,EAAE,CAAC,OAAO;gBACV,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,UAAU,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,WAAW,GAAG,CAAA;QAClI,CAAC;QACD,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACjD,CAAC;IAGS,gBAAgB,CAAC,MAAkB;QACzC,MAAM,MAAM,GAAW,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC;QACzF,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;QACxC,MAAM,mBAAmB,GAAY,QAAQ,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,kBAAkB,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/L,MAAM,QAAQ,GAAW,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,mBAAmB,CAAC,CAAC;QACjG,MAAM,WAAW,GAAW,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,CAAC;QAEtF,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,oBAAoB,GAAG,EAAE,CAAC;QAC9B,IAAI,mBAAmB,GAAG,EAAE,CAAC;QAC7B,IAAI,mBAAmB,GAAG,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;YACvC,oBAAoB,GAAG,kBAAkB,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ,YAAY,MAAM,CAAC,eAAe,CAAC,IAAI,sBAAsB,CAAC;QACjJ,CAAC;aAAM,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,kBAAkB,EAAE,CAAC;YACjF,uEAAuE;YACvE,oGAAoG;YACpG,wMAAwM;YAExM,0EAA0E;YAC1E,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,YAAY,IAAI,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;YACrH,0GAA0G;YAC1G,IAAI,eAAe,EAAE,CAAC;gBAClB,sHAAsH;gBACtH,6HAA6H;gBAC7H,qFAAqF;gBACrF,aAAa,GAAG,gCAAgC,MAAM,CAAC,eAAe,CAAC,IAAI,qBAAqB,CAAC;gBACjG,UAAU,GAAG,oBAAoB,MAAM,CAAC,eAAe,CAAC,IAAI;KACvE,CAAA;gBACW,oBAAoB,GAAG,kBAAkB,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ,YAAY,MAAM,CAAC,eAAe,CAAC,IAAI,gBAAgB,MAAM,CAAC,eAAe,CAAC,IAAI,sBAAsB,CAAC;YAC5L,CAAC;iBACI,CAAC;gBACF,8GAA8G;gBAC9G,uBAAuB;gBACvB,aAAa,GAAG,wDAAwD,MAAM,CAAC,eAAe,CAAC,IAAI,cAAc,CAAC;gBAElH,mBAAmB,GAAG,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC;gBAC7E,mBAAmB,GAAG,uBAAuB,CAAC;gBAE9C,oBAAoB,GAAG,kBAAkB,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ,YAAY,MAAM,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC;YACvI,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,oBAAoB,GAAG,kBAAkB,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ,UAAU,CAAC;YAC1F,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO;oBACR,oBAAoB,IAAI,OAAO,CAAC;gBACpC,oBAAoB,IAAI,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACvD,OAAO,GAAG,KAAK,CAAC;YACpB,CAAC;QACL,CAAC;QAED,OAAO;;6BAEc,MAAM,CAAC,SAAS;;4BAEjB,MAAM,CAAC,UAAU,MAAM,MAAM;;;oBAGrC,MAAM,CAAC,UAAU,MAAM,MAAM;MAC3C,QAAQ;;;;MAIR,aAAa;;OAEZ,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;;cAEhC,IAAI,CAAC,8BAA8B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,mBAAmB;;MAE5F,UAAU;;cAEF,IAAI,CAAC,8BAA8B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,mBAAmB;;;MAG7F,oBAAoB;;IAEtB,WAAW;KACV,CAAA;IACD,CAAC;IAGS,wBAAwB,CAAC,MAAkB;QACjD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,iBAAU,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACnI,IAAI,CAAC,cAAc;YACf,OAAO,EAAE,CAAC;QAEd,MAAM,gBAAgB,GAAG;;oBAEb,iBAAU,CAAC,kBAAkB,kBAAkB,MAAM,CAAC,SAAS;;0BAEzD,MAAM,CAAC,UAAU,cAAc,MAAM,CAAC,SAAS;;kBAEvD,MAAM,CAAC,UAAU,cAAc,MAAM,CAAC,SAAS;MAC3D,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;;;;;;WAMlC,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;;UAExC,iBAAU,CAAC,kBAAkB;;WAE5B,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;;;UAGxC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;GAE7F,CAAC;QACI,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAES,gBAAgB,CAAC,MAAkB;QACzC,MAAM,MAAM,GAAW,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC;QACzF,MAAM,aAAa,GAAW,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtF,MAAM,WAAW,GAAW,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,CAAC;QACtF,MAAM,iBAAiB,GAAY,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,iBAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,SAAS,CAAC;QAC7J,MAAM,gBAAgB,GAAW,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,IAAI,oBAAoB,GAAG;;;2CAGQ,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ;;0CAEvC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;qCAC9E,CAAC;QAE9B,OAAO;;6BAEc,MAAM,CAAC,SAAS;;4BAEjB,MAAM,CAAC,UAAU,MAAM,MAAM;;;oBAGrC,MAAM,CAAC,UAAU,MAAM,MAAM;MAC3C,aAAa;;;;;WAKR,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;;UAExC,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC;;UAElD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;;MAG7E,oBAAoB;;;EAGxB,WAAW;;EAEX,gBAAgB;SACT,CAAA;IACL,CAAC;IAES,6BAA6B,CAAC,YAA+B,EAAE,QAAiB;QACtF,IAAI,OAAO,GAAW,EAAE,EAAE,OAAO,GAAY,IAAI,CAAC;QAClD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACnD,MAAM,EAAE,GAAoB,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,uBAAuB,GAAY,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,kBAAkB,CAAC;YACjH,IACE,CAAC,EAAE,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,QAAQ,CAAC,CAAC;gBACpD,CAAC,EAAE,CAAC,SAAS;gBACb,CAAC,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,uBAAuB,IAAI,QAAQ,CAAC;gBAC1D,CAAC,EAAE,CAAC,kBAAkB,EAAG,CAAC;gBAC1B,IAAI,CAAC,OAAO;oBACV,OAAO,IAAI,SAAS,CAAC;;oBAErB,OAAO,GAAG,KAAK,CAAC;gBAElB,OAAO,IAAI,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACjD,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAES,8BAA8B,CAAC,MAAkB,EAAE,YAA+B,EAAE,MAAc;QACxG,MAAM,uBAAuB,GAAG,MAAM,CAAC,eAAe,CAAC,aAAa,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,kBAAkB,CAAC;QAChJ,IAAI,OAAO,GAAW,EAAE,EAAE,OAAO,GAAY,IAAI,CAAC;QAClD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACnD,MAAM,EAAE,GAAoB,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,uBAAuB,CAAC;gBAC9C,EAAE,CAAC,SAAS,KAAK,KAAK;gBACtB,EAAE,CAAC,cAAc;gBACjB,EAAE,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO;oBACR,OAAO,IAAI,iBAAiB,CAAA;;oBAE5B,OAAO,GAAG,KAAK,CAAC;gBAEpB,IAAI,MAAM,KAAK,EAAE,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;oBACzC,IAAI,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,gBAAgB;wBAC1C,OAAO,IAAI,cAAc,CAAC,CAAC,sFAAsF;;wBAEjH,OAAO,IAAI,MAAM,CAAC,CAAC,mEAAmE;gBAC9F,CAAC;qBACI,CAAC;oBACF,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,gGAAgG;oBAC7J,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;wBAC9B,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,gJAAgJ;oBAE7K,OAAO,IAAI,IAAI,CAAC;gBACpB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAGS,8BAA8B,CAAC,YAA+B;QACpE,IAAI,OAAO,GAAW,EAAE,EAAE,OAAO,GAAY,IAAI,CAAC;QAClD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACnD,MAAM,EAAE,GAAoB,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,EAAE,CAAC,YAAY;gBAChB,CAAC,EAAE,CAAC,SAAS;gBACb,EAAE,CAAC,cAAc;gBACjB,CAAC,EAAE,CAAC,aAAa;gBACjB,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO;oBACR,OAAO,IAAI,aAAa,CAAA;;oBAExB,OAAO,GAAG,KAAK,CAAC;gBAEpB,OAAO,IAAI,IAAI,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,oLAAoL;YACrO,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAGS,gBAAgB,CAAC,MAAkB;QACzC,MAAM,MAAM,GAAW,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC;QACzF,MAAM,eAAe,GAAW,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,WAAW,GAAW,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAM,CAAC,MAAM,CAAC,CAAC;QACtF,IAAI,UAAU,GAAW,EAAE,CAAC;QAC5B,IAAI,OAAO,GAAW,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,UAAU,KAAK,EAAE;gBACjB,UAAU,IAAI,IAAI,CAAC;YACvB,UAAU,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAEhD,IAAI,OAAO,KAAK,EAAE;gBACd,OAAO,IAAI,IAAI,CAAC;YACpB,OAAO,IAAI,IAAI,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;QAC/C,CAAC;QAED,4FAA4F;QAC5F,qGAAqG;QACrG,IAAI,UAAU,GAAW;UACvB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;CAClF,CAAA;QACO,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YAC/B,UAAU,GAAE;WACb,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;EAChD,UAAU,EAAE,CAAA;QACN,CAAC;aACI,CAAC;YACF,UAAU,GAAG;WACd,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,SAAS;;UAExC,iBAAU,CAAC,kBAAkB;EACrC,UAAU,eAAe,iBAAU,CAAC,kBAAkB,oFAAoF,CAAA;QACpI,CAAC;QAED,OAAO;;6BAEc,MAAM,CAAC,SAAS;;4BAEjB,MAAM,CAAC,UAAU,MAAM,MAAM;;;oBAGrC,MAAM,CAAC,UAAU,MAAM,MAAM;MAC3C,UAAU;;;qBAGK,eAAe;;EAElC,UAAU;;aAEC,OAAO;;IAEhB,WAAW;KACV,CAAA;IACD,CAAC;IAES,sBAAsB,CAAC,MAAkB;QAC/C,IAAI,OAAO,GAAW,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;YAE1B,2FAA2F;YAC3F,kDAAkD;YAClD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBAClD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC/C,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,EAAE,CAAC,eAAe,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;wBAC7D,IAAI,GAAG,GAAW,EAAE,CAAC;wBACrB,IAAI,EAAE,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;4BAC1B,mEAAmE;4BACnE,gGAAgG;4BAChG,2DAA2D;4BAC3D,GAAG,GAAG;6BACL,CAAC,CAAC,SAAS;;WAE7B,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,SAAS;;WAE7B,EAAE,CAAC,QAAQ,QAAQ,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;wBACxC,CAAC;6BACI,CAAC;4BACF,mEAAmE;4BACnE,oGAAoG;4BACpG,6CAA6C;4BAC7C,GAAG,GAAG;2BACP,CAAC,CAAC,SAAS,6CAA6C,MAAM,CAAC,SAAS;;WAExF,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,SAAS;;WAE7B,EAAE,CAAC,QAAQ;;WAEX,EAAE,CAAC,QAAQ,QAAQ,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;wBACxC,CAAC;wBACD,IAAI,OAAO,KAAK,EAAE;4BACd,OAAO,IAAI,QAAQ,CAAC;wBACxB,OAAO,IAAI,GAAG,CAAC;oBACnB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,CAAC;IACpD,CAAC;CACJ,CAAA;AAvgCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,sBAAa,EAAC,cAAc,CAAC;GACjB,cAAc,CAugC1B"}
1
+ {"version":3,"file":"sql_codegen.js","sourceRoot":"","sources":["../../src/Database/sql_codegen.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@ export declare function replaceAllSpaces(s: string): string;
2
2
  export declare function makeDirs(dirPaths: string[]): void;
3
3
  export declare function makeDir(dirPath: string): void;
4
4
  export declare function copyDir(sourceDir: string, destDir: string): void;
5
+ export declare function attemptDeleteFile(filePath: string, maxRetries: number, repeatDelay: number): Promise<void>;
5
6
  export declare function combineFiles(directory: string, combinedFileName: string, pattern: string, overwriteExistingFile: boolean): void;
6
7
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/Misc/util.ts"],"names":[],"mappings":"AAOA,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAI1C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI7C;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAQzD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAkC/H"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/Misc/util.ts"],"names":[],"mappings":"AAQA,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAI1C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI7C;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAQzD;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB9G;AAEH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAiC/H"}
package/dist/Misc/util.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.combineFiles = exports.copyDir = exports.makeDir = exports.makeDirs = exports.replaceAllSpaces = void 0;
3
+ exports.combineFiles = exports.attemptDeleteFile = exports.copyDir = exports.makeDir = exports.makeDirs = exports.replaceAllSpaces = void 0;
4
4
  const logging_1 = require("./logging");
5
+ const fs_extra_1 = require("fs-extra");
5
6
  const fs = require('fs');
6
7
  const fse = require('fs-extra');
7
8
  const glob = require('glob');
@@ -35,6 +36,28 @@ function copyDir(sourceDir, destDir) {
35
36
  }
36
37
  }
37
38
  exports.copyDir = copyDir;
39
+ async function attemptDeleteFile(filePath, maxRetries, repeatDelay) {
40
+ for (let i = 0; i < maxRetries; i++) {
41
+ try {
42
+ (0, fs_extra_1.unlinkSync)(filePath);
43
+ return; // if we get here without an exception, we're good, move on
44
+ }
45
+ catch (err) {
46
+ if (err.code === 'ENOENT') {
47
+ // file doesn't exist, so just ignore this and move on
48
+ return;
49
+ }
50
+ else if (err.code === 'EBUSY') {
51
+ await new Promise(resolve => setTimeout(resolve, repeatDelay));
52
+ }
53
+ else {
54
+ console.warn(` Failed to delete file ${filePath}: ${err.message}`);
55
+ return;
56
+ }
57
+ }
58
+ }
59
+ }
60
+ exports.attemptDeleteFile = attemptDeleteFile;
38
61
  function combineFiles(directory, combinedFileName, pattern, overwriteExistingFile) {
39
62
  const combinedFilePath = path.join(directory, combinedFileName);
40
63
  // Check if the combined file exists and if overwriteExistingFile is false, skip the process
@@ -65,7 +88,6 @@ function combineFiles(directory, combinedFileName, pattern, overwriteExistingFil
65
88
  });
66
89
  // Write the combined content to the specified file
67
90
  fs.writeFileSync(combinedFilePath, combinedContent);
68
- console.log(` Combined file created at ${combinedFilePath}`);
69
91
  }
70
92
  exports.combineFiles = combineFiles;
71
93
  //# sourceMappingURL=util.js.map