rawsql-ts 0.11.10-beta → 0.11.12-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/esm/index.min.js +12 -12
  2. package/dist/esm/index.min.js.map +4 -4
  3. package/dist/esm/src/models/SqlPrintToken.d.ts +6 -4
  4. package/dist/esm/src/models/SqlPrintToken.js +2 -0
  5. package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
  6. package/dist/esm/src/parsers/FunctionExpressionParser.js +5 -4
  7. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
  8. package/dist/esm/src/parsers/SelectQueryParser.js +3 -2
  9. package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
  10. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +40 -0
  11. package/dist/esm/src/parsers/SqlPrintTokenParser.js +103 -8
  12. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  13. package/dist/esm/src/parsers/ValueParser.js +4 -4
  14. package/dist/esm/src/parsers/ValueParser.js.map +1 -1
  15. package/dist/esm/src/reporting/models/DataFlowGraph.d.ts +3 -1
  16. package/dist/esm/src/reporting/models/DataFlowGraph.js +5 -27
  17. package/dist/esm/src/reporting/models/DataFlowGraph.js.map +1 -1
  18. package/dist/esm/src/reporting/models/DataFlowNode.d.ts +8 -2
  19. package/dist/esm/src/reporting/models/DataFlowNode.js +34 -10
  20. package/dist/esm/src/reporting/models/DataFlowNode.js.map +1 -1
  21. package/dist/esm/src/reporting/services/ProcessHandler.d.ts +6 -42
  22. package/dist/esm/src/reporting/services/ProcessHandler.js +9 -164
  23. package/dist/esm/src/reporting/services/ProcessHandler.js.map +1 -1
  24. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js +11 -1
  25. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js.map +1 -1
  26. package/dist/esm/src/transformers/SqlFormatter.d.ts +8 -1
  27. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  28. package/dist/esm/src/transformers/SqlPrinter.d.ts +55 -7
  29. package/dist/esm/src/transformers/SqlPrinter.js +151 -32
  30. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  31. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  32. package/dist/index.min.js +10 -10
  33. package/dist/index.min.js.map +4 -4
  34. package/dist/src/models/SqlPrintToken.d.ts +6 -4
  35. package/dist/src/models/SqlPrintToken.js +2 -0
  36. package/dist/src/models/SqlPrintToken.js.map +1 -1
  37. package/dist/src/parsers/FunctionExpressionParser.js +5 -4
  38. package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
  39. package/dist/src/parsers/SelectQueryParser.js +3 -2
  40. package/dist/src/parsers/SelectQueryParser.js.map +1 -1
  41. package/dist/src/parsers/SqlPrintTokenParser.d.ts +40 -0
  42. package/dist/src/parsers/SqlPrintTokenParser.js +103 -8
  43. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  44. package/dist/src/parsers/ValueParser.js +4 -4
  45. package/dist/src/parsers/ValueParser.js.map +1 -1
  46. package/dist/src/reporting/models/DataFlowGraph.d.ts +3 -1
  47. package/dist/src/reporting/models/DataFlowGraph.js +5 -27
  48. package/dist/src/reporting/models/DataFlowGraph.js.map +1 -1
  49. package/dist/src/reporting/models/DataFlowNode.d.ts +8 -2
  50. package/dist/src/reporting/models/DataFlowNode.js +34 -10
  51. package/dist/src/reporting/models/DataFlowNode.js.map +1 -1
  52. package/dist/src/reporting/services/ProcessHandler.d.ts +6 -42
  53. package/dist/src/reporting/services/ProcessHandler.js +9 -164
  54. package/dist/src/reporting/services/ProcessHandler.js.map +1 -1
  55. package/dist/src/transformers/QueryFlowDiagramGenerator.js +11 -1
  56. package/dist/src/transformers/QueryFlowDiagramGenerator.js.map +1 -1
  57. package/dist/src/transformers/SqlFormatter.d.ts +8 -1
  58. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  59. package/dist/src/transformers/SqlPrinter.d.ts +55 -7
  60. package/dist/src/transformers/SqlPrinter.js +151 -32
  61. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  62. package/dist/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +1 -1
@@ -8,14 +8,15 @@ import { LinePrinter } from "./LinePrinter";
8
8
  * - Line break styles for commas and AND operators
9
9
  * - Keyword case transformation
10
10
  * - Comment handling
11
- * - CTE (Common Table Expression) formatting
11
+ * - WITH clause formatting styles
12
12
  *
13
13
  * @example
14
14
  * const printer = new SqlPrinter({
15
15
  * indentChar: ' ',
16
16
  * indentSize: 1,
17
17
  * keywordCase: 'upper',
18
- * commaBreak: 'after'
18
+ * commaBreak: 'after',
19
+ * withClauseStyle: 'cte-oneline'
19
20
  * });
20
21
  * const formatted = printer.print(sqlToken);
21
22
  */
@@ -25,6 +26,8 @@ export class SqlPrinter {
25
26
  */
26
27
  constructor(options) {
27
28
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
29
+ /** Track whether we are currently inside a WITH clause for full-oneline formatting */
30
+ this.insideWithClause = false;
28
31
  this.indentChar = (_a = options === null || options === void 0 ? void 0 : options.indentChar) !== null && _a !== void 0 ? _a : '';
29
32
  this.indentSize = (_b = options === null || options === void 0 ? void 0 : options.indentSize) !== null && _b !== void 0 ? _b : 0;
30
33
  // The default newline character is set to a blank space (' ') to enable one-liner formatting.
@@ -35,7 +38,7 @@ export class SqlPrinter {
35
38
  this.keywordCase = (_f = options === null || options === void 0 ? void 0 : options.keywordCase) !== null && _f !== void 0 ? _f : 'none';
36
39
  this.exportComment = (_g = options === null || options === void 0 ? void 0 : options.exportComment) !== null && _g !== void 0 ? _g : false;
37
40
  this.strictCommentPlacement = (_h = options === null || options === void 0 ? void 0 : options.strictCommentPlacement) !== null && _h !== void 0 ? _h : false;
38
- this.cteOneline = (_j = options === null || options === void 0 ? void 0 : options.cteOneline) !== null && _j !== void 0 ? _j : false;
41
+ this.withClauseStyle = (_j = options === null || options === void 0 ? void 0 : options.withClauseStyle) !== null && _j !== void 0 ? _j : 'standard';
39
42
  this.linePrinter = new LinePrinter(this.indentChar, this.indentSize, this.newline);
40
43
  // Initialize
41
44
  this.indentIncrementContainers = new Set((_k = options === null || options === void 0 ? void 0 : options.indentIncrementContainerTypes) !== null && _k !== void 0 ? _k : [
@@ -57,10 +60,13 @@ export class SqlPrinter {
57
60
  SqlPrintTokenContainerType.CaseKeyValuePair,
58
61
  SqlPrintTokenContainerType.CaseThenValue,
59
62
  SqlPrintTokenContainerType.ElseClause,
60
- SqlPrintTokenContainerType.CaseElseValue
63
+ SqlPrintTokenContainerType.CaseElseValue,
64
+ SqlPrintTokenContainerType.SimpleSelectQuery
65
+ // Note: CommentBlock is intentionally excluded from indentIncrementContainers
66
+ // because it serves as a grouping mechanism without affecting indentation.
61
67
  // CaseExpression, SwitchCaseArgument, CaseKeyValuePair, and ElseClause
62
- // are not included by default to maintain backward compatibility with tests
63
- //SqlPrintTokenContainerType.CommonTable
68
+ // are not included by default to maintain backward compatibility with tests.
69
+ // SqlPrintTokenContainerType.CommonTable is also excluded by default.
64
70
  ]);
65
71
  }
66
72
  /**
@@ -75,13 +81,19 @@ export class SqlPrinter {
75
81
  print(token, level = 0) {
76
82
  // initialize
77
83
  this.linePrinter = new LinePrinter(this.indentChar, this.indentSize, this.newline);
84
+ this.insideWithClause = false; // Reset WITH clause context
78
85
  if (this.linePrinter.lines.length > 0 && level !== this.linePrinter.lines[0].level) {
79
86
  this.linePrinter.lines[0].level = level;
80
87
  }
81
- this.appendToken(token, level);
88
+ this.appendToken(token, level, undefined);
82
89
  return this.linePrinter.print();
83
90
  }
84
91
  appendToken(token, level, parentContainerType) {
92
+ // Track WITH clause context for full-oneline formatting
93
+ const wasInsideWithClause = this.insideWithClause;
94
+ if (token.containerType === SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
95
+ this.insideWithClause = true;
96
+ }
85
97
  if (this.shouldSkipToken(token)) {
86
98
  return;
87
99
  }
@@ -100,9 +112,18 @@ export class SqlPrinter {
100
112
  this.handleJoinClauseToken(token, level);
101
113
  }
102
114
  else if (token.type === SqlPrintTokenType.comment) {
103
- this.handleCommentToken(token);
115
+ // Handle comments as regular tokens - let the standard processing handle everything
116
+ if (this.exportComment) {
117
+ this.linePrinter.appendText(token.text);
118
+ }
119
+ }
120
+ else if (token.type === SqlPrintTokenType.space) {
121
+ this.handleSpaceToken(token, parentContainerType);
122
+ }
123
+ else if (token.type === SqlPrintTokenType.commentNewline) {
124
+ this.handleCommentNewlineToken(token, level);
104
125
  }
105
- else if (token.containerType === SqlPrintTokenContainerType.CommonTable && this.cteOneline) {
126
+ else if (token.containerType === SqlPrintTokenContainerType.CommonTable && this.withClauseStyle === 'cte-oneline') {
106
127
  this.handleCteOnelineToken(token, level);
107
128
  return; // Return early to avoid processing innerTokens
108
129
  }
@@ -118,20 +139,43 @@ export class SqlPrinter {
118
139
  }
119
140
  let innerLevel = level;
120
141
  // indent level up
121
- if (this.newline !== ' ' && current.text !== '' && this.indentIncrementContainers.has(token.containerType)) { // Changed condition
122
- innerLevel++;
123
- this.linePrinter.appendNewline(innerLevel);
142
+ if (!this.isOnelineMode() && current.text !== '' && this.indentIncrementContainers.has(token.containerType)) {
143
+ // Skip newline for any container when inside WITH clause with full-oneline style
144
+ if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
145
+ innerLevel++;
146
+ this.linePrinter.appendNewline(innerLevel);
147
+ }
124
148
  }
125
149
  for (let i = 0; i < token.innerTokens.length; i++) {
126
150
  const child = token.innerTokens[i];
127
151
  this.appendToken(child, innerLevel, token.containerType);
128
152
  }
153
+ // Exit WITH clause context when we finish processing WithClause container
154
+ if (token.containerType === SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
155
+ this.insideWithClause = false;
156
+ // Add newline after WITH clause to separate it from main SELECT
157
+ this.linePrinter.appendNewline(level);
158
+ return; // Return early to avoid additional newline below
159
+ }
129
160
  // indent level down
130
161
  if (innerLevel !== level) {
131
- this.linePrinter.appendNewline(level);
162
+ // Skip newline for any container when inside WITH clause with full-oneline style
163
+ if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
164
+ this.linePrinter.appendNewline(level);
165
+ }
132
166
  }
133
167
  }
168
+ /**
169
+ * Determines if a token should be skipped during printing.
170
+ * Tokens are skipped if they have no content and no inner tokens,
171
+ * except for special token types that have semantic meaning despite empty text.
172
+ */
134
173
  shouldSkipToken(token) {
174
+ // Special tokens with semantic meaning should never be skipped
175
+ if (token.type === SqlPrintTokenType.commentNewline) {
176
+ return false;
177
+ }
178
+ // Skip tokens that have no content and no children
135
179
  return (!token.innerTokens || token.innerTokens.length === 0) && token.text === '';
136
180
  }
137
181
  applyKeywordCase(text) {
@@ -149,18 +193,28 @@ export class SqlPrinter {
149
193
  }
150
194
  handleCommaToken(token, level, parentContainerType) {
151
195
  const text = token.text;
152
- // Special handling for commas in WithClause when cteOneline is enabled
153
- if (this.cteOneline && parentContainerType === SqlPrintTokenContainerType.WithClause) {
196
+ // Skip comma newlines when inside WITH clause with full-oneline style
197
+ if (this.insideWithClause && this.withClauseStyle === 'full-oneline') {
198
+ this.linePrinter.appendText(text);
199
+ }
200
+ // Special handling for commas in WithClause when withClauseStyle is 'cte-oneline'
201
+ else if (this.withClauseStyle === 'cte-oneline' && parentContainerType === SqlPrintTokenContainerType.WithClause) {
154
202
  this.linePrinter.appendText(text);
155
203
  this.linePrinter.appendNewline(level);
156
204
  }
157
205
  else if (this.commaBreak === 'before') {
158
- this.linePrinter.appendNewline(level);
206
+ // Skip newline when inside WITH clause with full-oneline style
207
+ if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
208
+ this.linePrinter.appendNewline(level);
209
+ }
159
210
  this.linePrinter.appendText(text);
160
211
  }
161
212
  else if (this.commaBreak === 'after') {
162
213
  this.linePrinter.appendText(text);
163
- this.linePrinter.appendNewline(level);
214
+ // Skip newline when inside WITH clause with full-oneline style
215
+ if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
216
+ this.linePrinter.appendNewline(level);
217
+ }
164
218
  }
165
219
  else {
166
220
  this.linePrinter.appendText(text);
@@ -169,12 +223,18 @@ export class SqlPrinter {
169
223
  handleAndOperatorToken(token, level) {
170
224
  const text = this.applyKeywordCase(token.text);
171
225
  if (this.andBreak === 'before') {
172
- this.linePrinter.appendNewline(level);
226
+ // Skip newline when inside WITH clause with full-oneline style
227
+ if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
228
+ this.linePrinter.appendNewline(level);
229
+ }
173
230
  this.linePrinter.appendText(text);
174
231
  }
175
232
  else if (this.andBreak === 'after') {
176
233
  this.linePrinter.appendText(text);
177
- this.linePrinter.appendNewline(level);
234
+ // Skip newline when inside WITH clause with full-oneline style
235
+ if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
236
+ this.linePrinter.appendNewline(level);
237
+ }
178
238
  }
179
239
  else {
180
240
  this.linePrinter.appendText(text);
@@ -182,21 +242,75 @@ export class SqlPrinter {
182
242
  }
183
243
  handleJoinClauseToken(token, level) {
184
244
  const text = this.applyKeywordCase(token.text);
185
- // before join clause, add newline
186
- this.linePrinter.appendNewline(level);
245
+ // before join clause, add newline (skip when inside WITH clause with full-oneline style)
246
+ if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
247
+ this.linePrinter.appendNewline(level);
248
+ }
187
249
  this.linePrinter.appendText(text);
188
250
  }
189
- handleCommentToken(token) {
190
- // Handle comments - only output if exportComment is true
191
- if (this.exportComment) {
192
- this.linePrinter.appendText(token.text);
193
- // Always add a space after comment to ensure SQL structure safety
194
- this.linePrinter.appendText(' ');
251
+ /**
252
+ * Handles space tokens with context-aware filtering.
253
+ * Skips spaces in CommentBlocks when in specific CTE modes to prevent duplication.
254
+ */
255
+ handleSpaceToken(token, parentContainerType) {
256
+ if (this.shouldSkipCommentBlockSpace(parentContainerType)) {
257
+ return;
258
+ }
259
+ this.linePrinter.appendText(token.text);
260
+ }
261
+ /**
262
+ * Determines whether to skip space tokens in CommentBlocks.
263
+ * Prevents duplicate spacing in CTE full-oneline mode only.
264
+ */
265
+ shouldSkipCommentBlockSpace(parentContainerType) {
266
+ return parentContainerType === SqlPrintTokenContainerType.CommentBlock &&
267
+ this.insideWithClause &&
268
+ this.withClauseStyle === 'full-oneline';
269
+ }
270
+ /**
271
+ * Handles commentNewline tokens with conditional newline behavior.
272
+ * In multiline mode (newline !== ' '), adds a newline after comments.
273
+ * In oneliner mode (newline === ' '), does nothing to keep comments on same line.
274
+ * Skips newlines in CTE modes (full-oneline, cte-oneline) to maintain one-line format.
275
+ */
276
+ handleCommentNewlineToken(token, level) {
277
+ if (this.shouldSkipCommentNewline()) {
278
+ return;
279
+ }
280
+ if (!this.isOnelineMode()) {
281
+ this.linePrinter.appendNewline(level);
195
282
  }
196
283
  }
284
+ /**
285
+ * Determines whether to skip commentNewline tokens.
286
+ * Skips in CTE modes to maintain one-line formatting.
287
+ */
288
+ shouldSkipCommentNewline() {
289
+ return (this.insideWithClause && this.withClauseStyle === 'full-oneline') ||
290
+ this.withClauseStyle === 'cte-oneline';
291
+ }
292
+ /**
293
+ * Determines if the printer is in oneliner mode.
294
+ * Oneliner mode uses single spaces instead of actual newlines.
295
+ */
296
+ isOnelineMode() {
297
+ return this.newline === ' ';
298
+ }
299
+ /**
300
+ * Handles CTE tokens with one-liner formatting.
301
+ * Creates a nested SqlPrinter instance for proper CTE oneline formatting.
302
+ */
197
303
  handleCteOnelineToken(token, level) {
198
- // Handle CTE with one-liner formatting when cteOneline is enabled
199
- const onelinePrinter = new SqlPrinter({
304
+ const onelinePrinter = this.createCteOnelinePrinter();
305
+ const onelineResult = onelinePrinter.print(token, level);
306
+ const cleanedResult = this.cleanDuplicateSpaces(onelineResult);
307
+ this.linePrinter.appendText(cleanedResult);
308
+ }
309
+ /**
310
+ * Creates a SqlPrinter instance configured for CTE oneline formatting.
311
+ */
312
+ createCteOnelinePrinter() {
313
+ return new SqlPrinter({
200
314
  indentChar: '',
201
315
  indentSize: 0,
202
316
  newline: ' ',
@@ -205,10 +319,15 @@ export class SqlPrinter {
205
319
  keywordCase: this.keywordCase,
206
320
  exportComment: this.exportComment,
207
321
  strictCommentPlacement: this.strictCommentPlacement,
208
- cteOneline: false, // Prevent recursive CTE oneline processing
322
+ withClauseStyle: 'standard', // Prevent recursive processing
209
323
  });
210
- const onelineResult = onelinePrinter.print(token, level);
211
- this.linePrinter.appendText(onelineResult);
324
+ }
325
+ /**
326
+ * Removes duplicate consecutive spaces while preserving single spaces.
327
+ * Simple and safe space normalization for CTE oneline mode.
328
+ */
329
+ cleanDuplicateSpaces(text) {
330
+ return text.replace(/\s{2,}/g, ' ');
212
331
  }
213
332
  }
214
333
  //# sourceMappingURL=SqlPrinter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACvG,OAAO,EAAoB,WAAW,EAAiB,MAAM,eAAe,CAAC;AA4C7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,UAAU;IA2BnB;;OAEG;IACH,YAAY,OAA2B;;QACnC,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,CAAC,CAAC;QAE3C,8FAA8F;QAC9F,0EAA0E;QAC1E,IAAI,CAAC,OAAO,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,GAAG,CAAC;QAEvC,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,MAAM,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,MAAM,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,MAAM,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,mCAAI,KAAK,CAAC;QACrD,IAAI,CAAC,sBAAsB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,mCAAI,KAAK,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnF,aAAa;QACb,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,CACpC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,6BAA6B,mCAAI;YACtC,0BAA0B,CAAC,YAAY;YACvC,0BAA0B,CAAC,UAAU;YACrC,0BAA0B,CAAC,WAAW;YACtC,0BAA0B,CAAC,aAAa;YACxC,0BAA0B,CAAC,YAAY;YACvC,0BAA0B,CAAC,qBAAqB;YAChD,0BAA0B,CAAC,iBAAiB;YAC5C,0BAA0B,CAAC,aAAa;YACxC,0BAA0B,CAAC,YAAY;YACvC,0BAA0B,CAAC,WAAW;YACtC,0BAA0B,CAAC,YAAY;YACvC,0BAA0B,CAAC,cAAc;YACzC,0BAA0B,CAAC,yBAAyB,EAAE,0BAA0B,CAAC,MAAM;YACvF,0BAA0B,CAAC,UAAU;YACrC,0BAA0B,CAAC,kBAAkB;YAC7C,0BAA0B,CAAC,gBAAgB;YAC3C,0BAA0B,CAAC,aAAa;YACxC,0BAA0B,CAAC,UAAU;YACrC,0BAA0B,CAAC,aAAa;YACxC,uEAAuE;YACvE,4EAA4E;YAC5E,wCAAwC;SAC3C,CACJ,CAAC;IACN,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAoB,EAAE,QAAgB,CAAC;QACzC,aAAa;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACjF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAEO,WAAW,CAAC,KAAoB,EAAE,KAAa,EAAE,mBAAgD;QACrG,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAElD,+BAA+B;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACzF,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,KAAK,CAAC,aAAa,KAAK,YAAY,EAAE,CAAC;YAC9C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAClD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,KAAK,CAAC,aAAa,KAAK,0BAA0B,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3F,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzC,OAAO,CAAC,+CAA+C;QAC3D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,sCAAsC;QACtC,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,kBAAkB;QAClB,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,oBAAoB;YAC9H,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC;QAED,oBAAoB;QACpB,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,KAAoB;QACxC,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;IACvF,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACjC,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,kBAAkB,CAAC,KAAoB,EAAE,KAAa;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,gBAAgB,CAAC,KAAoB,EAAE,KAAa,EAAE,mBAAgD;QAC1G,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAExB,uEAAuE;QACvE,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,KAAK,0BAA0B,CAAC,UAAU,EAAE,CAAC;YACnF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,KAAoB,EAAE,KAAa;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,KAAoB,EAAE,KAAa;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,kCAAkC;QAClC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,kBAAkB,CAAC,KAAoB;QAC3C,yDAAyD;QACzD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,kEAAkE;YAClE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,KAAoB,EAAE,KAAa;QAC7D,kEAAkE;QAClE,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC;YAClC,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,UAAU,EAAE,KAAK,EAAE,2CAA2C;SACjE,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;CACJ"}
1
+ {"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACvG,OAAO,EAAoB,WAAW,EAAiB,MAAM,eAAe,CAAC;AA6C7E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,UAAU;IA8BnB;;OAEG;IACH,YAAY,OAA2B;;QANvC,sFAAsF;QAC9E,qBAAgB,GAAY,KAAK,CAAC;QAMtC,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,CAAC,CAAC;QAE3C,8FAA8F;QAC9F,0EAA0E;QAC1E,IAAI,CAAC,OAAO,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,GAAG,CAAC;QAEvC,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,MAAM,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,MAAM,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,MAAM,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,mCAAI,KAAK,CAAC;QACrD,IAAI,CAAC,sBAAsB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,mCAAI,KAAK,CAAC;QACvE,IAAI,CAAC,eAAe,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,mCAAI,UAAU,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnF,aAAa;QACb,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,CACpC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,6BAA6B,mCAAI;YACtC,0BAA0B,CAAC,YAAY;YACvC,0BAA0B,CAAC,UAAU;YACrC,0BAA0B,CAAC,WAAW;YACtC,0BAA0B,CAAC,aAAa;YACxC,0BAA0B,CAAC,YAAY;YACvC,0BAA0B,CAAC,qBAAqB;YAChD,0BAA0B,CAAC,iBAAiB;YAC5C,0BAA0B,CAAC,aAAa;YACxC,0BAA0B,CAAC,YAAY;YACvC,0BAA0B,CAAC,WAAW;YACtC,0BAA0B,CAAC,YAAY;YACvC,0BAA0B,CAAC,cAAc;YACzC,0BAA0B,CAAC,yBAAyB,EAAE,0BAA0B,CAAC,MAAM;YACvF,0BAA0B,CAAC,UAAU;YACrC,0BAA0B,CAAC,kBAAkB;YAC7C,0BAA0B,CAAC,gBAAgB;YAC3C,0BAA0B,CAAC,aAAa;YACxC,0BAA0B,CAAC,UAAU;YACrC,0BAA0B,CAAC,aAAa;YACxC,0BAA0B,CAAC,iBAAiB;YAC5C,8EAA8E;YAC9E,2EAA2E;YAC3E,uEAAuE;YACvE,6EAA6E;YAC7E,sEAAsE;SACzE,CACJ,CAAC;IACN,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAoB,EAAE,QAAgB,CAAC;QACzC,aAAa;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC,4BAA4B;QAC3D,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACjF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAEO,WAAW,CAAC,KAAoB,EAAE,KAAa,EAAE,mBAAgD;QACrG,wDAAwD;QACxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClD,IAAI,KAAK,CAAC,aAAa,KAAK,0BAA0B,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,EAAE,CAAC;YAC3G,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAElD,+BAA+B;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACzF,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,KAAK,CAAC,aAAa,KAAK,YAAY,EAAE,CAAC;YAC9C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAClD,oFAAoF;YACpF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,cAAc,EAAE,CAAC;YACzD,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,KAAK,CAAC,aAAa,KAAK,0BAA0B,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;YAClH,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzC,OAAO,CAAC,+CAA+C;QAC3D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,sCAAsC;QACtC,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,kBAAkB;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1G,iFAAiF;YACjF,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,EAAE,CAAC;gBACtE,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC;QAED,0EAA0E;QAC1E,IAAI,KAAK,CAAC,aAAa,KAAK,0BAA0B,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,EAAE,CAAC;YAC3G,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,gEAAgE;YAChE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,OAAO,CAAC,iDAAiD;QAC7D,CAAC;QAED,oBAAoB;QACpB,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACvB,iFAAiF;YACjF,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,KAAoB;QACxC,+DAA+D;QAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,cAAc,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,mDAAmD;QACnD,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;IACvF,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACjC,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,kBAAkB,CAAC,KAAoB,EAAE,KAAa;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,gBAAgB,CAAC,KAAoB,EAAE,KAAa,EAAE,mBAAgD;QAC1G,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAExB,sEAAsE;QACtE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,EAAE,CAAC;YACnE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,kFAAkF;aAC7E,IAAI,IAAI,CAAC,eAAe,KAAK,aAAa,IAAI,mBAAmB,KAAK,0BAA0B,CAAC,UAAU,EAAE,CAAC;YAC/G,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACtC,+DAA+D;YAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,+DAA+D;YAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,KAAoB,EAAE,KAAa;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7B,+DAA+D;YAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,+DAA+D;YAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,KAAoB,EAAE,KAAa;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,yFAAyF;QACzF,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,KAAoB,EAAE,mBAAgD;QAC3F,IAAI,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxD,OAAO;QACX,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACK,2BAA2B,CAAC,mBAAgD;QAChF,OAAO,mBAAmB,KAAK,0BAA0B,CAAC,YAAY;YAC/D,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACK,yBAAyB,CAAC,KAAoB,EAAE,KAAa;QACjE,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;YAClC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,wBAAwB;QAC5B,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,CAAC;YAClE,IAAI,CAAC,eAAe,KAAK,aAAa,CAAC;IAClD,CAAC;IAED;;;OAGG;IACK,aAAa;QACjB,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC;IAChC,CAAC;IAID;;;OAGG;IACK,qBAAqB,CAAC,KAAoB,EAAE,KAAa;QAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACtD,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC3B,OAAO,IAAI,UAAU,CAAC;YAClB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,eAAe,EAAE,UAAU,EAAE,+BAA+B;SAC/D,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;CAEJ"}