rawsql-ts 0.11.35-beta → 0.11.37-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 (92) hide show
  1. package/dist/esm/index.js.map +1 -1
  2. package/dist/esm/index.min.js +28 -27
  3. package/dist/esm/index.min.js.map +3 -3
  4. package/dist/esm/src/index.d.ts +1 -0
  5. package/dist/esm/src/index.js.map +1 -1
  6. package/dist/esm/src/models/BinarySelectQuery.d.ts +2 -0
  7. package/dist/esm/src/models/BinarySelectQuery.js +2 -0
  8. package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
  9. package/dist/esm/src/models/Clause.d.ts +2 -0
  10. package/dist/esm/src/models/Clause.js +2 -0
  11. package/dist/esm/src/models/Clause.js.map +1 -1
  12. package/dist/esm/src/models/SelectQuery.d.ts +2 -0
  13. package/dist/esm/src/models/SelectQuery.js.map +1 -1
  14. package/dist/esm/src/models/SimpleSelectQuery.d.ts +2 -0
  15. package/dist/esm/src/models/SimpleSelectQuery.js +2 -0
  16. package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
  17. package/dist/esm/src/models/ValuesQuery.d.ts +2 -0
  18. package/dist/esm/src/models/ValuesQuery.js +2 -0
  19. package/dist/esm/src/models/ValuesQuery.js.map +1 -1
  20. package/dist/esm/src/parsers/CommonTableParser.d.ts +1 -0
  21. package/dist/esm/src/parsers/CommonTableParser.js +9 -2
  22. package/dist/esm/src/parsers/CommonTableParser.js.map +1 -1
  23. package/dist/esm/src/parsers/SelectClauseParser.js +7 -1
  24. package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
  25. package/dist/esm/src/parsers/SelectQueryParser.d.ts +6 -0
  26. package/dist/esm/src/parsers/SelectQueryParser.js +51 -12
  27. package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
  28. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +2 -1
  29. package/dist/esm/src/parsers/SqlPrintTokenParser.js +73 -4
  30. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  31. package/dist/esm/src/parsers/WithClauseParser.d.ts +1 -0
  32. package/dist/esm/src/parsers/WithClauseParser.js +27 -3
  33. package/dist/esm/src/parsers/WithClauseParser.js.map +1 -1
  34. package/dist/esm/src/transformers/CTEQueryDecomposer.d.ts +69 -0
  35. package/dist/esm/src/transformers/CTEQueryDecomposer.js +123 -0
  36. package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +1 -1
  37. package/dist/esm/src/transformers/SqlFormatter.d.ts +34 -16
  38. package/dist/esm/src/transformers/SqlFormatter.js +1 -1
  39. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  40. package/dist/esm/src/transformers/SqlPrinter.d.ts +25 -20
  41. package/dist/esm/src/transformers/SqlPrinter.js +51 -2
  42. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  43. package/dist/esm/src/utils/CommentEditor.d.ts +11 -0
  44. package/dist/esm/src/utils/CommentEditor.js +141 -29
  45. package/dist/esm/src/utils/CommentEditor.js.map +1 -1
  46. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  47. package/dist/index.min.js +31 -30
  48. package/dist/index.min.js.map +3 -3
  49. package/dist/src/index.d.ts +1 -0
  50. package/dist/src/index.js.map +1 -1
  51. package/dist/src/models/BinarySelectQuery.d.ts +2 -0
  52. package/dist/src/models/BinarySelectQuery.js +2 -0
  53. package/dist/src/models/BinarySelectQuery.js.map +1 -1
  54. package/dist/src/models/Clause.d.ts +2 -0
  55. package/dist/src/models/Clause.js +2 -0
  56. package/dist/src/models/Clause.js.map +1 -1
  57. package/dist/src/models/SelectQuery.d.ts +2 -0
  58. package/dist/src/models/SelectQuery.js.map +1 -1
  59. package/dist/src/models/SimpleSelectQuery.d.ts +2 -0
  60. package/dist/src/models/SimpleSelectQuery.js +2 -0
  61. package/dist/src/models/SimpleSelectQuery.js.map +1 -1
  62. package/dist/src/models/ValuesQuery.d.ts +2 -0
  63. package/dist/src/models/ValuesQuery.js +2 -0
  64. package/dist/src/models/ValuesQuery.js.map +1 -1
  65. package/dist/src/parsers/CommonTableParser.d.ts +1 -0
  66. package/dist/src/parsers/CommonTableParser.js +9 -2
  67. package/dist/src/parsers/CommonTableParser.js.map +1 -1
  68. package/dist/src/parsers/SelectClauseParser.js +7 -1
  69. package/dist/src/parsers/SelectClauseParser.js.map +1 -1
  70. package/dist/src/parsers/SelectQueryParser.d.ts +6 -0
  71. package/dist/src/parsers/SelectQueryParser.js +51 -12
  72. package/dist/src/parsers/SelectQueryParser.js.map +1 -1
  73. package/dist/src/parsers/SqlPrintTokenParser.d.ts +2 -1
  74. package/dist/src/parsers/SqlPrintTokenParser.js +73 -4
  75. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  76. package/dist/src/parsers/WithClauseParser.d.ts +1 -0
  77. package/dist/src/parsers/WithClauseParser.js +27 -3
  78. package/dist/src/parsers/WithClauseParser.js.map +1 -1
  79. package/dist/src/transformers/CTEQueryDecomposer.d.ts +69 -0
  80. package/dist/src/transformers/CTEQueryDecomposer.js +123 -0
  81. package/dist/src/transformers/CTEQueryDecomposer.js.map +1 -1
  82. package/dist/src/transformers/SqlFormatter.d.ts +34 -16
  83. package/dist/src/transformers/SqlFormatter.js +9 -1
  84. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  85. package/dist/src/transformers/SqlPrinter.d.ts +25 -20
  86. package/dist/src/transformers/SqlPrinter.js +51 -2
  87. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  88. package/dist/src/utils/CommentEditor.d.ts +11 -0
  89. package/dist/src/utils/CommentEditor.js +141 -29
  90. package/dist/src/utils/CommentEditor.js.map +1 -1
  91. package/dist/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +1 -1
@@ -6,43 +6,89 @@ import { SqlComponent } from '../models/SqlComponent';
6
6
  export class CommentEditor {
7
7
  /**
8
8
  * Add a comment to a SQL component
9
+ * For SelectQuery components, adds to headerComments for query-level comments
9
10
  * @param component The SQL component to add comment to
10
11
  * @param comment The comment text to add
11
12
  */
12
13
  static addComment(component, comment) {
13
- if (!component.comments) {
14
- component.comments = [];
14
+ // Check if this is a SelectQuery component - add to headerComments for query-level comments
15
+ if (this.isSelectQuery(component)) {
16
+ const selectQuery = component;
17
+ if (!selectQuery.headerComments) {
18
+ selectQuery.headerComments = [];
19
+ }
20
+ selectQuery.headerComments.push(comment);
21
+ }
22
+ else {
23
+ // For other components, add to regular comments
24
+ if (!component.comments) {
25
+ component.comments = [];
26
+ }
27
+ component.comments.push(comment);
15
28
  }
16
- component.comments.push(comment);
29
+ }
30
+ /**
31
+ * Check if a component implements SelectQuery interface
32
+ * Uses discriminator property for robust type detection
33
+ * @param component The component to check
34
+ * @returns true if the component is a SelectQuery
35
+ */
36
+ static isSelectQuery(component) {
37
+ // Use discriminator property for robust type detection
38
+ return '__selectQueryType' in component &&
39
+ component.__selectQueryType === 'SelectQuery';
17
40
  }
18
41
  /**
19
42
  * Edit an existing comment by index
43
+ * For SelectQuery components, edits headerComments
20
44
  * @param component The SQL component containing the comment
21
45
  * @param index The index of the comment to edit (0-based)
22
46
  * @param newComment The new comment text
23
47
  * @throws Error if index is invalid
24
48
  */
25
49
  static editComment(component, index, newComment) {
26
- var _a;
27
- if (!component.comments || index < 0 || index >= component.comments.length) {
28
- throw new Error(`Invalid comment index: ${index}. Component has ${((_a = component.comments) === null || _a === void 0 ? void 0 : _a.length) || 0} comments.`);
50
+ var _a, _b;
51
+ if (this.isSelectQuery(component)) {
52
+ const selectQuery = component;
53
+ if (!selectQuery.headerComments || index < 0 || index >= selectQuery.headerComments.length) {
54
+ throw new Error(`Invalid comment index: ${index}. Component has ${((_a = selectQuery.headerComments) === null || _a === void 0 ? void 0 : _a.length) || 0} comments.`);
55
+ }
56
+ selectQuery.headerComments[index] = newComment;
57
+ }
58
+ else {
59
+ if (!component.comments || index < 0 || index >= component.comments.length) {
60
+ throw new Error(`Invalid comment index: ${index}. Component has ${((_b = component.comments) === null || _b === void 0 ? void 0 : _b.length) || 0} comments.`);
61
+ }
62
+ component.comments[index] = newComment;
29
63
  }
30
- component.comments[index] = newComment;
31
64
  }
32
65
  /**
33
66
  * Delete a comment by index
67
+ * For SelectQuery components, deletes from headerComments
34
68
  * @param component The SQL component containing the comment
35
69
  * @param index The index of the comment to delete (0-based)
36
70
  * @throws Error if index is invalid
37
71
  */
38
72
  static deleteComment(component, index) {
39
- var _a;
40
- if (!component.comments || index < 0 || index >= component.comments.length) {
41
- throw new Error(`Invalid comment index: ${index}. Component has ${((_a = component.comments) === null || _a === void 0 ? void 0 : _a.length) || 0} comments.`);
73
+ var _a, _b;
74
+ if (this.isSelectQuery(component)) {
75
+ const selectQuery = component;
76
+ if (!selectQuery.headerComments || index < 0 || index >= selectQuery.headerComments.length) {
77
+ throw new Error(`Invalid comment index: ${index}. Component has ${((_a = selectQuery.headerComments) === null || _a === void 0 ? void 0 : _a.length) || 0} comments.`);
78
+ }
79
+ selectQuery.headerComments.splice(index, 1);
80
+ if (selectQuery.headerComments.length === 0) {
81
+ selectQuery.headerComments = null;
82
+ }
42
83
  }
43
- component.comments.splice(index, 1);
44
- if (component.comments.length === 0) {
45
- component.comments = null;
84
+ else {
85
+ if (!component.comments || index < 0 || index >= component.comments.length) {
86
+ throw new Error(`Invalid comment index: ${index}. Component has ${((_b = component.comments) === null || _b === void 0 ? void 0 : _b.length) || 0} comments.`);
87
+ }
88
+ component.comments.splice(index, 1);
89
+ if (component.comments.length === 0) {
90
+ component.comments = null;
91
+ }
46
92
  }
47
93
  }
48
94
  /**
@@ -50,14 +96,25 @@ export class CommentEditor {
50
96
  * @param component The SQL component to clear comments from
51
97
  */
52
98
  static deleteAllComments(component) {
53
- component.comments = null;
99
+ if (this.isSelectQuery(component)) {
100
+ const selectQuery = component;
101
+ selectQuery.headerComments = null;
102
+ }
103
+ else {
104
+ component.comments = null;
105
+ }
54
106
  }
55
107
  /**
56
108
  * Get all comments from a component
109
+ * For SelectQuery components, returns headerComments instead of regular comments
57
110
  * @param component The SQL component to get comments from
58
111
  * @returns Array of comment strings (empty array if no comments)
59
112
  */
60
113
  static getComments(component) {
114
+ if (this.isSelectQuery(component)) {
115
+ const selectQuery = component;
116
+ return selectQuery.headerComments || [];
117
+ }
61
118
  return component.comments || [];
62
119
  }
63
120
  /**
@@ -72,10 +129,25 @@ export class CommentEditor {
72
129
  const searchTerm = caseSensitive ? searchText : searchText.toLowerCase();
73
130
  const traverse = (component) => {
74
131
  if (component && component instanceof SqlComponent) {
132
+ let hasMatchingComment = false;
133
+ // Check regular comments
75
134
  if (component.comments && component.comments.some(c => {
76
135
  const commentText = caseSensitive ? c : c.toLowerCase();
77
136
  return commentText.includes(searchTerm);
78
137
  })) {
138
+ hasMatchingComment = true;
139
+ }
140
+ // Check headerComments for SelectQuery components
141
+ if (this.isSelectQuery(component)) {
142
+ const selectQuery = component;
143
+ if (selectQuery.headerComments && selectQuery.headerComments.some(c => {
144
+ const commentText = caseSensitive ? c : c.toLowerCase();
145
+ return commentText.includes(searchTerm);
146
+ })) {
147
+ hasMatchingComment = true;
148
+ }
149
+ }
150
+ if (hasMatchingComment) {
79
151
  results.push(component);
80
152
  }
81
153
  }
@@ -105,15 +177,34 @@ export class CommentEditor {
105
177
  static replaceInComments(root, searchText, replaceText, caseSensitive = false) {
106
178
  let replacementCount = 0;
107
179
  const traverse = (component) => {
108
- if (component && component instanceof SqlComponent && component.comments) {
109
- for (let i = 0; i < component.comments.length; i++) {
110
- const originalComment = component.comments[i];
111
- const flags = caseSensitive ? 'g' : 'gi';
112
- const regex = new RegExp(searchText.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), flags);
113
- const newComment = originalComment.replace(regex, replaceText);
114
- if (newComment !== originalComment) {
115
- component.comments[i] = newComment;
116
- replacementCount++;
180
+ if (component && component instanceof SqlComponent) {
181
+ // Handle regular comments
182
+ if (component.comments) {
183
+ for (let i = 0; i < component.comments.length; i++) {
184
+ const originalComment = component.comments[i];
185
+ const flags = caseSensitive ? 'g' : 'gi';
186
+ const regex = new RegExp(searchText.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), flags);
187
+ const newComment = originalComment.replace(regex, replaceText);
188
+ if (newComment !== originalComment) {
189
+ component.comments[i] = newComment;
190
+ replacementCount++;
191
+ }
192
+ }
193
+ }
194
+ // Handle headerComments for SelectQuery components
195
+ if (this.isSelectQuery(component)) {
196
+ const selectQuery = component;
197
+ if (selectQuery.headerComments) {
198
+ for (let i = 0; i < selectQuery.headerComments.length; i++) {
199
+ const originalComment = selectQuery.headerComments[i];
200
+ const flags = caseSensitive ? 'g' : 'gi';
201
+ const regex = new RegExp(searchText.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), flags);
202
+ const newComment = originalComment.replace(regex, replaceText);
203
+ if (newComment !== originalComment) {
204
+ selectQuery.headerComments[i] = newComment;
205
+ replacementCount++;
206
+ }
207
+ }
117
208
  }
118
209
  }
119
210
  }
@@ -140,8 +231,17 @@ export class CommentEditor {
140
231
  static countComments(root) {
141
232
  let count = 0;
142
233
  const traverse = (component) => {
143
- if (component && component instanceof SqlComponent && component.comments) {
144
- count += component.comments.length;
234
+ if (component && component instanceof SqlComponent) {
235
+ if (component.comments) {
236
+ count += component.comments.length;
237
+ }
238
+ // Count headerComments for SelectQuery components
239
+ if (this.isSelectQuery(component)) {
240
+ const selectQuery = component;
241
+ if (selectQuery.headerComments) {
242
+ count += selectQuery.headerComments.length;
243
+ }
244
+ }
145
245
  }
146
246
  // Traverse all properties recursively
147
247
  for (const key in component) {
@@ -166,10 +266,22 @@ export class CommentEditor {
166
266
  static getAllComments(root) {
167
267
  const results = [];
168
268
  const traverse = (component) => {
169
- if (component && component instanceof SqlComponent && component.comments) {
170
- component.comments.forEach((comment, index) => {
171
- results.push({ comment, component, index });
172
- });
269
+ if (component && component instanceof SqlComponent) {
270
+ // Add regular comments
271
+ if (component.comments) {
272
+ component.comments.forEach((comment, index) => {
273
+ results.push({ comment, component, index });
274
+ });
275
+ }
276
+ // Add headerComments for SelectQuery components
277
+ if (this.isSelectQuery(component)) {
278
+ const selectQuery = component;
279
+ if (selectQuery.headerComments) {
280
+ selectQuery.headerComments.forEach((comment, index) => {
281
+ results.push({ comment, component, index });
282
+ });
283
+ }
284
+ }
173
285
  }
174
286
  // Traverse all properties recursively
175
287
  for (const key in component) {
@@ -1 +1 @@
1
- {"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../../src/utils/CommentEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;;GAGG;AACH,MAAM,OAAO,aAAa;IACtB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,SAAuB,EAAE,OAAe;QACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtB,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,SAAuB,EAAE,KAAa,EAAE,UAAkB;;QACzE,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,mBAAmB,CAAA,MAAA,SAAS,CAAC,QAAQ,0CAAE,MAAM,KAAI,CAAC,YAAY,CAAC,CAAC;QACnH,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,SAAuB,EAAE,KAAa;;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,mBAAmB,CAAA,MAAA,SAAS,CAAC,QAAQ,0CAAE,MAAM,KAAI,CAAC,YAAY,CAAC,CAAC;QACnH,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC9B,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAuB;QAC5C,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,SAAuB;QACtC,OAAO,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,yBAAyB,CAAC,IAAkB,EAAE,UAAkB,EAAE,gBAAyB,KAAK;QACnG,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAEzE,MAAM,QAAQ,GAAG,CAAC,SAAc,EAAE,EAAE;YAChC,IAAI,SAAS,IAAI,SAAS,YAAY,YAAY,EAAE,CAAC;gBACjD,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAClD,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBACxD,OAAO,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC,CAAC,EAAE,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;YAED,sCAAsC;YACtC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC1B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACvD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAChC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACJ,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7B,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAkB,EAAE,UAAkB,EAAE,WAAmB,EAAE,gBAAyB,KAAK;QAChH,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,MAAM,QAAQ,GAAG,CAAC,SAAc,EAAE,EAAE;YAChC,IAAI,SAAS,IAAI,SAAS,YAAY,YAAY,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;oBACzC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;oBACnF,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBAE/D,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;wBACjC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;wBACnC,gBAAgB,EAAE,CAAC;oBACvB,CAAC;gBACL,CAAC;YACL,CAAC;YAED,sCAAsC;YACtC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC1B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACvD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAChC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACJ,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7B,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,IAAkB;QACnC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,MAAM,QAAQ,GAAG,CAAC,SAAc,EAAE,EAAE;YAChC,IAAI,SAAS,IAAI,SAAS,YAAY,YAAY,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvE,KAAK,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YACvC,CAAC;YAED,sCAAsC;YACtC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC1B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACvD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAChC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACJ,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7B,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,IAAkB;QACpC,MAAM,OAAO,GAAkE,EAAE,CAAC;QAElF,MAAM,QAAQ,GAAG,CAAC,SAAc,EAAE,EAAE;YAChC,IAAI,SAAS,IAAI,SAAS,YAAY,YAAY,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC1C,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;YACP,CAAC;YAED,sCAAsC;YACtC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC1B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACvD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAChC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACJ,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7B,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
1
+ {"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../../src/utils/CommentEditor.ts"],"names":[],"mappings":"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"}